La mejor manera de hacer crecer el software de Linux RAID 1 a RAID 10

Pregunta:

mdadm no parece admitir el crecimiento de una matriz del nivel 1 al nivel 10.

Tengo dos discos en RAID 1. Quiero agregar dos discos nuevos y convertir la matriz en una matriz RAID 10 de cuatro discos.

Mi estrategia actual:

  1. Haz una buena copia de seguridad.
  2. Cree una matriz RAID 10 de 4 discos degradados con dos discos faltantes.
  3. rsync the RAID 1 array with the RAID 10 array.
  4. fallar y quitar un disco de la matriz RAID 1.
  5. Agregue el disco disponible a la matriz RAID 10 y espere a que se complete la resincronización.
  6. Destruya la matriz RAID 1 y agregue el último disco a la matriz RAID 10.

El problema es la falta de redundancia en el paso 5.

¿Existe una forma mejor?

Respuesta:

Con linux softraid puede crear una matriz RAID 10 con solo dos discos.

Nombres de dispositivos que se utilizan a continuación:

  • md0 es la antigua matriz de tipo / nivel RAID1.
  • md1 es la nueva matriz de tipo / nivel RAID10.
  • sda1 y sdb2 son particiones nuevas y vacías (sin datos).
  • sda2 y sdc1 son particiones antiguas (con datos cruciales).

Reemplace los nombres para que se ajusten a su caso de uso. Utilice, por ejemplo, lsblk para ver su diseño actual.

0) Copia de seguridad, copia de seguridad, copia de seguridad, copia de seguridad oh y BACKUP

1) Cree la nueva matriz (4 dispositivos: 2 existentes, 2 faltantes):

mdadm -v --create /dev/md1 --level=raid10 --raid-devices=4 /dev/sda1 missing /dev/sdb2 missing

Tenga en cuenta que en este diseño de ejemplo, sda1 tiene una contraparte que falta y sdb2 tiene otra contraparte que falta. Sus datos en md1 no están seguros en este punto (efectivamente es RAID0 hasta que agregue miembros faltantes).

Para ver el diseño y otros detalles del uso de la matriz creada:

mdadm -D /dev/md1

¡Nota! Debe guardar el diseño de la matriz:

# View current mdadm config:
cat /etc/mdadm/mdadm.conf
# Add new layout (grep is to make sure you don't re-add md0):
mdadm --detail --scan | grep "/dev/md1" | tee -a /etc/mdadm/mdadm.conf
# Save config to initramfs (to be available after reboot)
update-initramfs -u

2) Formatee y monte. El /dev/md1 debería poder utilizarse inmediatamente, pero es necesario formatearlo y luego montarlo.

3) Copie archivos. Utilice, por ejemplo, rsync para copiar datos del antiguo RAID 1 al nuevo RAID 10. (este es solo un comando de ejemplo, lea las páginas del manual de rsync)

rsync -arHx / /where/ever/you/mounted/the/RAID10

4) Falla la primera parte del antiguo RAID1 (md0) y agréguelo al nuevo RAID10 (md1)

mdadm /dev/md0 --fail /dev/sda2 --remove /dev/sda2
mdadm /dev/md1 --add /dev/sda2

¡Nota! Esto borrará los datos de sda2 . El md0 aún debería ser utilizable, pero solo si el otro miembro de la incursión estaba completamente operativo.

También tenga en cuenta que esto comenzará con los procesos de sincronización / recuperación en md1 . Para verificar el estado, use uno de los siguientes comandos:

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

Espere hasta que finalice la recuperación.

5) Instale GRUB en la nueva matriz (suponiendo que esté iniciando desde ella). Algunos CD de arranque / rescate de Linux funcionan mejor.

6) Arranque en una nueva matriz. SI FUNCIONÓ CORRECTAMENTE Destruya la matriz anterior y agregue el disco restante a la nueva matriz.

PUNTO SIN RETORNO

En este punto, destruirá los datos del último miembro de la matriz md0 anterior. Esté absolutamente seguro de que todo está funcionando.

mdadm --stop /dev/md0
mdadm /dev/md0 --remove /dev/sdc1
mdadm /dev/md1 --add /dev/sdc1

Y nuevamente, espere hasta que md1 recuperación en md1 .

# status of sync/recovery
cat /proc/mdstat
# details
mdadm -D /dev/md1

7) Actualizar la configuración de mdadm

Recuerde actualizar /etc/mdadm/mdadm.conf (eliminar md0).

Y guarde la configuración en initramfs (estará disponible después del reinicio)

update-initramfs -u

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım