Una vez que haya creado un RAID Btrfs, puede agregar más dispositivos de almacenamiento al RAID para expandir el RAID. Pero, una vez que haya agregado más dispositivos de almacenamiento al RAID, Btrfs no distribuirá los datos / metadatos / datos del sistema existentes a los nuevos dispositivos de almacenamiento automáticamente. Por lo tanto, es posible que no obtenga el rendimiento deseado (velocidad de lectura / escritura) del RAID, y es posible que no pueda completar los nuevos dispositivos de almacenamiento con los datos redundantes necesarios. Por lo tanto, la matriz RAID puede no sobrevivir a la cantidad deseada de fallas en la unidad.
Para resolver estos problemas, el sistema de archivos Btrfs proporciona una herramienta de equilibrio incorporada. La utilidad de balance Btrfs distribuirá los datos / metadatos / datos del sistema de los dispositivos de almacenamiento existentes del RAID a los dispositivos de almacenamiento recién agregados.
En este artículo, le mostraré cómo usar la utilidad de balance Btrfs para difundir los datos / metadatos / datos del sistema de los dispositivos de almacenamiento existentes del RAID a los dispositivos de almacenamiento recién agregados. Entonces empecemos!
Abreviaturas
REDADA - Matriz redundante de discos económicos / independientes
MEGABYTE - Megabyte
GB - Gigabyte
Prerrequisitos
Para seguir este artículo, debe tener un RAID Btrfs que funcione o una configuración multidispositivo.
He creado un RAID Btrfs en RAID-0 configuración usando 4 dispositivos de almacenamiento sdb, sdc, sdd, y sde.
Como puede ver, el sistema de archivos Btrfs asignado 1 GB de espacio en disco para datos1 256 MB de espacio en disco para metadata2, y 4 MB de espacio en disco para system-data3 de cada uno de los dispositivos de almacenamiento en el RAID.
Acerca de 18.75 GB fuera de 20 GB aún no está asignado4 de cada uno de los dispositivos de almacenamiento del RAID.
$ sudo btrfs uso / datos del sistema de archivos
Escribir un script para generar archivos aleatorios
Para mostrarle cómo funciona la utilidad de equilibrio Btrfs, necesitamos generar algunos archivos aleatorios para llenar el sistema de archivos Btrfs. Creemos un script de shell que haga precisamente eso.
Crear un nuevo script de shell genfiles.sh en el directorio / usr / local / bin / de la siguiente manera:
$ sudo nano / usr / local / bin / genfiles.sh
Escriba las siguientes líneas de códigos en el genfiles.sh script de shell.
#!/ bin / bashsi bien es cierto
hacer
NOMBRE DE ARCHIVO = $ (uuidgen)
echo "[Creando] $ FILENAME"
dd if = / dev / random of = $ FILENAME bs = 1M count = 256 status = progress
echo "[Creado] $ FILENAME"
hecho
Una vez que haya terminado, presione
La genfiles.sh el script de shell ejecuta un infinito tiempo círculo.
si bien es ciertohacer
# otros códigos
hecho
La siguiente línea genera un UUID usando el uuidgen comando 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 la dd mando. El archivo tendrá un tamaño de 256 MB.
La siguiente línea imprime un mensaje en la consola después del archivo NOMBRE DEL ARCHIVO es generado.
Agregue permiso de ejecución al genfiles.sh script de shell de la siguiente manera:
$ sudo chmod + x / usr / local / bin / genfiles.sh
La genfiles.sh El script de shell ahora debería ser accesible como cualquier otro comando.
$ que genfiles.sh
Generación de archivos aleatorios en el sistema de archivos Btrfs
Queremos generar archivos aleatorios en el RAID Btrfs. Digamos que el Btrfs RAID está montado en el /datos directorio.
Navega al /datos directorio donde se monta el Btrfs RAID de la siguiente manera:
$ cd / datos
Como puede ver, no hay archivos disponibles en mi RAID 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.sh script de shell de la siguiente manera:
$ sudo genfiles.sh
La genfiles.sh El script de shell debería comenzar a generar archivos aleatorios en el /datos directorio.
La genfiles.sh el script está generando archivos aleatorios. Deje que la secuencia de comandos se ejecute durante un par de minutos, para que ocupe aproximadamente 2-3 GB de espacio en disco del RAID Btrfs.
Cuando quieras detener el genfiles.sh script de shell, presione
Como puede ver, algunos archivos aleatorios se generan en el RAID Btrfs.
$ ls -lh
Como puede ver, el RAID Btrfs asignó 2 GB de cada uno de los dispositivos de almacenamiento agregados al RAID. Anteriormente, el RAID Btrfs asignaba 1 GB de cada uno de los dispositivos de almacenamiento agregados al RAID.
El espacio en disco no asignado se ha reducido de 18.75 GB a 17.75 GB en todos los dispositivos de almacenamiento del RAID.
$ sudo btrfs uso / datos del sistema de archivos
Agregar otro dispositivo de almacenamiento al RAID Btrfs
Para mostrarle cómo equilibrar un RAID Btrfs después de agregar un nuevo dispositivo de almacenamiento, debe agregarle un nuevo dispositivo de almacenamiento.
He agregado un nuevo disco duro sdf a mi computadora, que quiero agregar al RAID Btrfs montado en el /datos directorio. Veamos como hacerlo.
$ sudo lsblk -e7
Navegue a un directorio diferente (i.mi., CASA directorio) del /datos directorio de la siguiente manera:
$ cd
Para agregar el dispositivo de almacenamiento sdf al RAID Btrfs montado en el /datos directorio, ejecute el siguiente comando:
$ sudo btrfs dispositivo agregar / dev / sdf / data
Como puede ver, el dispositivo de almacenamiento sdf se agrega al RAID Btrfs. El tamaño de RAID ha aumentado de 80 GB a 100 GB.
$ sudo btrfs uso / datos del sistema de archivos
Equilibrio del RAID Btrfs
Como puede ver, el dispositivo de almacenamiento recién agregado (sdf) del RAID (montado en el /datos directorio) tiene 20 GB sin asignar, y los otros dispositivos de almacenamiento (sdb, sdc, sdd, sde, etc.) tengo 17.75 GB sin asignar.
$ sudo btrfs uso / datos del sistema de archivos
Los datos1, metadatos2, y datos del sistema3 solo están disponibles en los dispositivos de almacenamiento existentes del RAID, no en el dispositivo de almacenamiento recién agregado.
Para distribuir los datos, metadatos y datos del sistema en todos los dispositivos de almacenamiento del RAID (incluido el dispositivo de almacenamiento recién agregado) montado en el /datos directorio, ejecute el siguiente comando:
$ sudo btrfs balance start --full-balance / data
Puede llevar un tiempo distribuir los datos, metadatos y datos del sistema en todos los dispositivos de almacenamiento del RAID si contiene una gran cantidad de datos.
Una vez que los dispositivos de almacenamiento del RAID estén correctamente equilibrados, debería ver el siguiente mensaje.
Como puede ver, una vez que se completa la operación de balance, el dispositivo de almacenamiento recién agregado tiene la misma cantidad de espacio en disco no asignado que los otros dispositivos de almacenamiento del RAID.
Después de la operación de balance, se asigna la misma cantidad de espacio en disco que los otros dispositivos de almacenamiento del RAID para los datos, metadatos y datos del sistema del dispositivo de almacenamiento recién agregado (sdf) del RAID.
Conclusión
En este artículo, he discutido el propósito de la utilidad de balance de Btrfs, así como también cómo balancear un sistema de archivos Btrfs RAID o multidispositivo después de agregar nuevos dispositivos de almacenamiento al sistema de archivos RAID o multidispositivo.