Convierta raid de software de linux de raid5 a raid6

11

Actualmente tengo un servidor de archivos con 3 discos de 1.5TB en una matriz RAID5. Como está bastante lleno, obtuve tres discos adicionales (también de 1.5 TB cada uno).

Ahora me gustaría cambiar a RAID6 ya que un espacio de 6TB es suficiente y me gustaría tener una mayor seguridad de raid6. Si bien tengo una copia de seguridad completa, es decir, podría simplemente crear una nueva matriz y restaurar la copia de seguridad, preferiría cambiar sin tener que restaurar una copia de seguridad. ¿Es esto posible y, en caso afirmativo, cómo?

ThiefMaster
fuente

Respuestas:

9

La terminología que está buscando es una "migración de nivel RAID".

Según esto , es posible. No lo he hecho, pero el procedimiento parece que debería agregar la nueva unidad como un hotspare a la matriz existente, luego usar mdadm para actualizar el nivel de incursión y la cantidad de dispositivos de incursión.

Necesitará un mdadm reciente para hacer esto: mdadm-2.6.9 (por ejemplo, centos 5.x) no parece admitirlo, pero mdadm-3.1.4 (por ejemplo, ubuntu 11.10) sí:

   Grow   Grow (or shrink) an array, or otherwise reshape it in some way.  Currently supported growth options including changing the active size of component devices and
          changing the number of active devices in RAID levels 1/4/5/6, changing the RAID level between 1, 5, and 6, changing the chunk size and  layout  for  RAID5  and
          RAID5, as well as adding or removing a write-intent bitmap.

Por ejemplo, agregue un nuevo dispositivo de repuesto, / dev / sdg, a la matriz RAID5 primero:

$ sudo mdadm --manage /dev/md/md0 --add /dev/sdg

Luego, conviértalo en una matriz RAID6 y haga que se reconstruya a un estado limpio. El --raid-devices 4 le dice cuántas unidades tiene en total en la nueva matriz.

$ sudo mdadm --grow /dev/md/md0 --raid-devices 4 --level 6

Sin embargo, no tengo idea de lo rápido que será. En mi experiencia al hacer migraciones de nivel de incursión en controladores RAID de hardware, ha sido más rápido crear la nueva matriz desde cero y recuperar su copia de seguridad.

Daniel Lawson
fuente
3
La migración de un RAID 5 a RAID 6 tiene dos operaciones lentas: volver a dividir los datos en los discos y calcular el segundo valor de paridad para el disco de paridad adicional. Borrar / restaurar probablemente tomará la misma cantidad de tiempo que el cambio de tamaño.
Andrew
1
También requiere una cierta versión del kernel. Descubrí esto de la manera difícil.
Sirex
Como estoy en gentoo, tanto mi kernel como mdadm son versiones bastante recientes, así que eso no debería ser un problema.
ThiefMaster
1
El enlace al que hace referencia fue escrito por mí. Tenga en cuenta: Realmente no leí los documentos sobre cómo hacerlo realmente. Simplemente creé una máquina virtual con 30 unidades (algo así) y comencé a jugar. Así que toma todas las publicaciones con un grano de sal, es simplemente una lluvia de ideas ...
Martin M.
1
@ServerHorror: tomado nota. Sin embargo, el Internet más amplio, incluida la página de manual mdadm, afirma que la migración a nivel de banda es posible. :)
Daniel Lawson
7

Advertencia obligatoria: plan de fracaso. Mantenga una copia de seguridad lista y tenga en cuenta el posible tiempo de inactividad.

Además, pruébelo en una máquina virtual o algo similar antes, esto es de mis notas y no lo he hecho en mucho tiempo. Esto puede estar incompleto.

  1. Necesitará addlos discos para la matriz:

    mdadm --manage /dev/md0 --add /dev/sdf  
    

    Haga esto para cada uno de los tres discos y reemplace los nombres de los dispositivos en consecuencia.

  2. Crecer la matriz:

    mdadm --grow /dev/md0 --level 6 --raid-devices 6 
    
Sven
fuente
3

Utilice la --backup-fileopción para que, en caso de pérdida de energía, pueda continuar haciendo crecer el dispositivo después de un reinicio y asegurarse de que no haya pérdida de datos.

mdadm --grow /dev/md0 --level=raid6 --raid-devices=6 --backup-file=/root/mdadm5-6_backup_md0

El archivo de copia de seguridad debe guardarse en un sistema de archivos que no forme parte de la matriz que va a crecer.

--backup-file=es necesario cuando --growse usa para aumentar el número de dispositivos de incursión en un RAID5 o RAID6 si no hay dispositivos de repuesto disponibles, o para reducir, cambiar el nivel o el diseño de RAID. Consulte la sección MODO DE CRECIMIENTO a continuación sobre CAMBIOS DE DISPOSITIVOS RAID. El archivo debe almacenarse en un dispositivo separado, no en la matriz RAID que se está reformando.

--continueEs complementario a la --freeze-reshapeopción de montaje. Es necesario cuando la --growoperación se interrumpe y no se reinicia automáticamente debido al --freeze-reshapeuso durante el ensamblaje de la matriz. Esta opción se usa junto con el comando -G( --grow) y el dispositivo para continuar con una remodelación pendiente. Todos los parámetros necesarios para la reforma de continuación se leerán de los metadatos de la matriz. Si el --growcomando inicial requería --backup-file=que se configurara la opción, la opción de continuación requerirá tener exactamente el mismo archivo de respaldo dado también.

Cualquier otro parámetro pasado junto con la --continueopción será ignorado.

Guggi
fuente