¿Cómo convertiría una configuración btrfs RAID5 (paridad única) existente a una configuración RAID6 de paridad dual si tuviera suficiente espacio libre disponible en el disco, usando los mismos discos, sin intercambiar datos?
Básicamente, ¿eso debería consistir simplemente en quitar un disco y conservar una unidad de redundancia para que btrfs redistribuya todo en las unidades restantes y vuelva a agregar ese disco eliminado?
Entonces, ¿cuál es el proceso recomendado?
Estaba pensando en algo parecido
btrfs device delete /dev/sdx /mnt/fs
btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs
btrfs device add /dev/sdx /mnt/fs
¿Necesito eliminar y agregar el disco, o puedo simplemente convertir la configuración directamente? Es decir
btrfs balance start -dconvert=raid6 -mconvert=raid6 /mnt/fs
Respuesta1
https://www.howtoforge.com/a-beginners-guide-to-btrfs-p2
Esto afirma que puede cambiar el nivel de incursión en una matriz en ejecución suponiendo que tenga suficiente espacio libre. Asegúrese de estar ejecutando el último kernel estable de Linux.
Ejemplo (desde el enlace): inicio del saldo btrfs -dconvert=raid1 -mconvert=raid1 /mnt
-dconvert es para los datos
-mconvert es para el metaarchivo (quieres duplicarlo, créeme)
/mnt es donde está montado el volumen BTRFS. Puedes hacer esto desmontado, pero no lo he intentado y quiero ser honesto.
Tienes raid0, raid1, raid5 y raid6. Si tiene suficiente espacio libre, creo que es n-2 o número de unidades [espacio libre] menos 2 para raid6. Aunque con BTRFS puede salirse con la suya con menos y, en su lugar, utilizar los datos para realizar las mediciones. Es posible tener funciones similares a raid6 con una cantidad de unidades inferior a la aceptable si almacena una pequeña cantidad de datos. Posible, pero no recomendado.
También tenga en cuenta que esto llevará un tiempo dependiendo de la cantidad de datos que tenga en las unidades. También existe una pequeña posibilidad de que el equilibrio falle y elimine por completo la matriz o la ponga en un modo inestable de solo lectura. Como siempre, mantenga copias de seguridad.
Respuesta2
- RAID5 requiere más de 3 unidades (n) con una eficiencia de espacio de 1-1/n
- RAID6 requiere más de 4 unidades (n) con una eficiencia de espacio de 1-2/n
Espacio total (aproximado) de una matriz de 1 TiB y cambio (%) de RAID5 -> RAID6:
- 4 x 250 GiB ~ 1 TiB -> RAID5 ~ 768 GiB -> RAID6 ~ 512 GiB -> -50%
- 5 x 200 GiB ~ 1 TiB -> RAID5 ~ 819,2 GiB -> RAID6 ~ 614,4 GiB -> -25 %
- 6 x 170 GiB ~ 1 TiB -> RAID5 ~ 853,3 GiB -> RAID6 ~ 682,6 GiB -> -20 %
Puede cambiar el nivel de incursión en una matriz en ejecución suponiendo que tenga suficiente espacio libre y unidades.
- no elimine ni elimine ninguna unidad que desee en la matriz final
- al eliminar -> agregar -> convertir, estaría "doble" de equilibrio
- Durante la eliminación/eliminación, los metadatos y los fragmentos de datos se redistribuyen a las unidades restantes y luego se agrega una unidad, que deberá equilibrarse nuevamente cuando se convierta a RAID6.
Si necesita agregar una unidad, agréguelas todas antes de equilibrar/convertir.
btrfs device add /dev/sdc /mnt
btrfs device add /dev/sdd /mnt
Filtros de equilibrio - btrfs.wiki.kernel.org
Ejemplo de "convertir" saldo de btrfs desde el enlace (actualizado):
btrfs balance start -dusage=90 -dconvert=raid6 -mconvert=raid6 /mnt
-dusage es el umbral de uso para el equilibrio de fragmentos de datos.
-dconvert es para los datos
-mconvert es para los metadatos
/mnt es donde está montado el volumen BTRFS. No puedes hacer esto desmontado.
Los datos y/o metadatos de btrfs pueden ser:
- soltero
- incursión0
- raid01
- incursión1
- incursión5
- raid6
- raid1c3
- raid1c4
Se pueden utilizar comandos para pausar, reanudar, cancelar u obtener estado.
btrfs balance pause /mnt
btrfs balance resume /mnt
btrfs balance cancel /mnt
btrfs balance status -v /mnt
Advertencias
- Dependiendo de la cantidad de datos que tenga en las unidades, el equilibrio lleva tiempo.
- Existe la posibilidad de que el equilibrio falle y corrompa la matriz y/o la ponga en un modo inestable de solo lectura.
- Haga una copia de seguridad de los datos antes de convertirlos.
- Asegúrese de estar ejecutando el último kernel estable de Linux.