En un sistema de archivos BTRFS múltiple o RAID BTRFS, dependiendo de la configuración del sistema de archivos, puede haber múltiples copias de los bloques de datos/metadatos almacenados en diferentes ubicaciones de los dispositivos de almacenamiento agregados al sistema de archivos BTRFS. Cuando la herramienta BTRFS Scrub encuentra un bloque de datos/metadatos corruptos, busca todos los dispositivos de almacenamiento agregados al sistema de archivos BTRFS para copias duplicadas de ese bloque de datos/metadatos. Una vez que se encuentra una copia duplicada de ese bloque de datos/metadatos, el bloque de datos/metadatos corruptos se sobrescribe con el bloque de datos/metadatos correcto. Así es como la herramienta BTRFS Scrub repara los bloqueos de datos/metadatos corruptos en un sistema de archivos BTRFS de múltiples dispositivos o una redada BTRFS.
En este artículo, le mostraré cómo usar la herramienta BTRFS Scrub para encontrar y reparar bloques de datos/metadatos corruptos en un sistema de archivos BTRFS de múltiples dispositivos o RAID BTRFS. Entonces empecemos.
Abreviaturas
REDADA - Gama redundante de discos económicos/independientes
GB - Gigabyte
Requisitos previos
Para seguir este artículo, debe tener un sistema de archivos BTRFS de múltiples dispositivos en funcionamiento o una redada BTRFS.
He creado una redada BTRFS en Ataúd configuración (montada en el /datos directorio) Uso de 4 dispositivos de almacenamiento SDB, SDC, SDD, y SDE, Como puede ver en la captura de pantalla a continuación. Usaré esta redada BTRFS para la demostración de Scrub BTRFS en este artículo.
$ sudo BTRFS Uso /datos del sistema de archivos
Si necesita ayuda para instalar el sistema de archivos BTRFS en Ubuntu, consulte la instalación de mi artículo y use BTRFS en Ubuntu 20.04 LTS.
Si necesita ayuda para instalar el sistema de archivos BTRFS en Fedora, consulte la instalación de mi artículo y use BTRFS en Fedora 33.
Si necesita ayuda para crear una redada BTRFS, consulte mi artículo Cómo configurar BTRFS RAID.
Generación de archivos ficticios en el sistema de archivos BTRFS
Para mostrarle cómo funciona la herramienta BTRFS Scrub, necesitamos generar algunos archivos aleatorios para completar el sistema de archivos BTRFS. Creemos un script de shell que haga exactamente eso.
Crear un nuevo script de shell Genfiles.mierda en el /usr/local/bin/ Directorio de la siguiente manera:
$ sudo nano/usr/local/bin/genfiles.mierda
Escriba las siguientes líneas de códigos en el Genfiles.mierda guión de shell.
#!/bin/bash
mientras que es cierto
hacer
FileName = $ (uuidgen)
echo "[creando] $ nombre de archivo"
dd if =/dev/random of = $ filename bs = 1m count = 256 status = progreso
echo "[creado] $ nombre de archivo"
hecho
Una vez que haya terminado, presione + X seguido por Y y Para salvar el Genfiles.mierda guión de shell.
El Genfiles.mierda Shell Script ejecuta un infinito mientras bucle.
mientras que es cierto
hacer
# Otros códigos
hecho
La siguiente línea genera un uuid usando el uuidgen comandar y almacena el uuid en el NOMBRE DEL ARCHIVO variable.
La siguiente línea imprime un mensaje en la consola antes del archivo NOMBRE DEL ARCHIVO es generado.
La siguiente línea genera un nuevo archivo aleatorio NOMBRE DEL ARCHIVO utilizando el dd dominio. El archivo será 256 MB en tamaño.
La siguiente línea imprime un mensaje en la consola después del archivo NOMBRE DEL ARCHIVO es generado.
Agregar permiso de ejecución al Genfiles.mierda shell script de la siguiente manera:
s
El Genfiles.mierda El script de shell ahora debería ser accesible como cualquier otro comando.
$ que genfiles.mierda
Generemos algunos archivos aleatorios en la redada BTRFS montada en el /datos directorio.
Navegar al /datos Directorio donde la redada BTRFS se monta de la siguiente manera:
$ CD /datos
Como puede ver, no hay archivos disponibles en mi redada BTRFS en este momento.
$ ls -lh
Para generar algunos archivos aleatorios en el directorio de trabajo actual (/datos directorio en este caso), ejecute el Genfiles.mierda shell script de la siguiente manera:
$ sudo genfiles.mierda
El Genfiles.mierda shell script debe comenzar a generar archivos aleatorios en el /datos directorio.
El Genfiles.mierda Script está generando archivos aleatorios. Deje que el guión se ejecute durante un par de minutos, por lo que llena aproximadamente 2-3 GB de espacio en disco de la redada BTRFS.
Cuando quieras detener el Genfiles.mierda Script de shell, presione + C.
Como puede ver, se generan algunos archivos aleatorios en la redada BTRFS.
$ ls -lh
He generado alrededor de 13 GB de archivos aleatorios en la redada BTRFS montada en el /datos Directorio, como puede ver en la captura de pantalla a continuación.
$ sudo du -sh /datos
Trabajar con la herramienta BTRFS Scrub
En esta sección, les voy a mostrar cómo usar la herramienta BTRFS Scrub. Empecemos.
Puede iniciar el proceso de scrub en el sistema de archivos BTRFS montado en el /datos directorio con el siguiente comando:
$ sudo btrfs scrub start /datos
Se debe iniciar un proceso BTRFS Scrub en el sistema de archivos BTRFS montado en el /datos directorio.
Puede ver el estado del proceso de scrub BTRFS que se ejecuta en el sistema de archivos BTRFS montado en el /datos Directorio de la siguiente manera:
$ sudo btrfs scrub status /datos
Como puede ver, el proceso BTRFS Scrub está todavía correr.
El fregado de un sistema de archivos BTRFS o una redada BTRFS que tiene muchos archivos llevará mucho tiempo completar.
Una vez que se completa el proceso BTRFS Scrub, el estado debe cambiarse a finalizado, Como puede ver en la captura de pantalla a continuación.
$ sudo btrfs scrub status /datos
También puede ver el estado BTRFS Scrub para cada uno de los dispositivos de almacenamiento agregados al sistema de archivos BTRFS (montado en el /datos directorio) por separado de la siguiente manera:
$ sudo btrfs scrub status -d /data
Te he dicho que el proceso BTRFS Scrub lleva mucho tiempo completar en un sistema de archivos BTRFS BTRFS. Una gran ventaja de la herramienta BTRFS Scrub es que su proceso se puede pausar y reanudar en cualquier momento.
Veamos cómo hacer una pausa y reanudar un proceso BTRFS Scrub.
Primero, inicie un nuevo proceso BTRFS Scrub en el sistema de archivos BTRFS montado en el directorio /Data de la siguiente manera:
$ sudo btrfs scrub start /datos
Para cancelar o pausar el proceso BTRFS Scrub que se ejecuta actualmente en el sistema de archivos BTRFS montado en el /datos directorio, ejecute el siguiente comando:
$ sudo btrfs scrub cancelar /datos
El proceso de scrub BTRFS debe cancelarse o pausarse.
Como puede ver, el estado BTRFS Scrub es abortado. Entonces, el proceso BTRFS Scrub ya no se está ejecutando.
$ sudo btrfs scrub status /datos
Para reanudar el proceso BTRFS Scrub que ha cancelado o pausado, ejecute el siguiente comando:
$ sudo btrfs scrub currículum /datos
Se debe reanudar el proceso BTRFS Scrub.
Como puede ver, el estado BTRFS Scrub ahora es correr. Entonces, se reanuda el proceso de matorral BTRFS.
$ sudo btrfs scrub status /datos
Después de que se completa el proceso BTRFS Scrub, el estado de Scrub BTRFS debe cambiarse a finalizado.
$ sudo btrfs scrub status /datos
Conclusión
En este artículo, le he mostrado cómo trabajar con la herramienta BTRFS Scrub para encontrar y corregir bloques de datos/metadatos corruptos de un sistema de archivos múltiples de dispositivo BTRFS o RAID. Le he mostrado cómo cancelar/Pausa y reanudar un proceso de Scrub BTRFS una vez que se inicia también.