Cómo convertir LV o MD RAID1 y 0 a RAID5 sin perder datos
En este tutorial voy a explicar cómo convertir de RAID 0 o 1 a RAID 5. Cómo convertir un software de Linux mdadm o LVM RAID1 (0) a RAID5 conservando todos los datos almacenados.

- Cómo transformar RAID1 (espejo) a RAID5 (parity)
- Cómo cambiar RAID 0 a RAID5 (parity)
- Cómo convertir LVRAID1 a LVRAID5
- Cómo convertir LVRAID0 en LVRAID5
- Cómo recuperar datos de las matrices RAID dañadas
- Conclusión
- Preguntas y respuestas
- Comentarios
Las matrices RAID O destacan por su alta velocidad de acceso a los datos y sólo se utilizan por el aumento significativo de la velocidad de lectura/escritura de datos. Pero su fiabilidad y tolerancia a los fallos dejan mucho que desear. Porque, en caso de fallo de al menos una unidad, toda la información almacenada no estará disponible. Restaurarlo es un empleo extremadamente difícil, y los datos que se podrán obtener, estarán garantizados para ser dañados. Este tipo apenas puede considerarse una matriz, ya que no hay ninguna redundancia.

🐧 Cómo convertir LV o MD RAID1 y 0 a RAID5 sin perder datos 🐧
El tipo RAID1 se destaca por su fiabilidad y tolerancia a los fallos porque todos los datos se duplican, creando un “espejo” completo en la segunda unidad. Pero la velocidad de lectura/escritura sufre y no puede igualarse a la velocidad de trabajo como en el de “cero”. типе.
Si tiene una unidad adicional, el “primer” tipo puede ampliarse hasta el “quinto” nivel. Esto, a su vez, proporcionará bonificaciones adicionales de fiabilidad en comparación con el nivel “cero” , así como aumentará significativamente la velocidad de lectura/escritura en comparación con el “primer” tipo. Como resultado obtenemos una matriz RAID 5 razonablemente fiable, tolerante a fallos y rápida.
Parámetro | RAID 0 | RAID 1 | RAID 5 |
---|---|---|---|
Estructura | Striping | Espejado | Striping con Paridad |
Número de Discos | Mínimo 2 | Mínimo 2 | Mínimo 3 |
Rendimiento | Alto | Promedio | Alto |
Uso del Espacio | 100% | 50% | (n-1)/n |
Durabilidad | Baja | Alta | Media |
Recuperación | Ninguna | Fácil | Más Complejo |
Caso de Uso | Para Velocidad | Para Datos Críticos | Para Balance entre Velocidad y Confiabilidad |
Cómo transformar RAID1 (espejo) a RAID5 (parity)
Así, tenemos un software md_RAID1 creado en un sistema operativo Linux. Esta matriz consta de dos discos.

Necesitamos convertirlo en RAID5 y añadir un disco más, al mismo tiempo que necesitamos que la información que contiene se quede donde está. En el disco hay varios archivos: fotos, vídeos, documentos, etc.

Se recomienda hacer una copia de seguridad antes de iniciar la operación de conversión, ya que puede perderse información importante en el proceso de ejecución incorrecta de los comandos.
Abra un terminal, para ejecutar los comandos como root, ejecute el comando:
sudo -i
introduzca la contraseña.

A continuación, si el array está montado hay que desmontarlo introduciendo el siguiente comando:
umount /dev/md0
o
umount /mnt

Si el sistema dice que el objetivo está ocupado (target is busy), intente forzarlo:
umount -f /dev/md0

A continuación, para detener el RAID1, ejecute el siguiente comando:
mdadm --stop /dev/md0
(md0 u otro nombre para ver la ruta)
donde md0 – es el indentificador de nuestro RAID.

Si usted descarga desde este Raid, por supuesto no podrá detener y será necesario usar algún LiveCD.
A continuación, es necesario sobrescribir los metadatos del antiguo RAID1 creando un RAID5 sobre él utilizando los mismos discos que formaban parte del RAID1, sdb y sdc e introduce el siguiente comando:
mdadm --create /dev/md0 -a yes -l 5 -n 2 /dev/sdb1 /dev/sdc1
donde,
l5 – establece el nivel de la matriz,
n2 – número de discos que lo componen y luego especificar esos discos.

Después de ejecutar el comando, el programa le advertirá que estas unidades ya están en uso en RAID1, pulse Enter para continuar.
Para comprobar si la conversión se ha realizado correctamente, introduzca el comando:
cat /proc/mdstat

Ahora tenemos que esperar a que se complete la reconstrucción del RAID5, los porcentajes muestran su estado.
Al finalizar, el comando cat /proc/mdstat mostrará los siguientes datos.

A continuación, puedes añadir el nuevo disco al array y convertirlo en un array RAID5 completo. El nuevo disco se añadirá como disco de reserva. Para añadirlo, introduzca el siguiente comando:
mdadm --add /dev/md0 /dev/sdd1

Luego, es necesario ampliar el Raid hasta tres discos activos utilizando el disco de reserva con este comando:
mdadm --grow /dev/md0 --raid-disks=3
Comprobemos lo que tenemos con el comando:
cat /proc/mdstat

Ahora en el Raid están involucrados 3 discos sdb, sdc, sdd y comenzó el proceso de cambio (reshap).
В процентах отображен его прогресс, ждем окончания.
Por último, compruebe si hay errores en la matriz de discos con el siguiente comando:
e2fsck -f /dev/md0
y ampliémoslo con el siguiente comando:
resize2fs -p /dev/md0

Por último, actualice el archivo de configuración ejecutando el siguiente comando:
mdadm --examine --scan >> /etc/mdadm.conf

Si no hay fallos en el proceso de ejecución de estos comandos, todos los datos que estaban en el RAID 1 se migrarán a la nueva matriz RAID 5.
Monte el disco y compruebe que todos los archivos permanecen intactos y que el nivel de la matriz se ha cambiado al nivel cinco.

Cómo cambiar RAID 0 a RAID5 (parity)
No hay forma de convertir de RAID0 a RAID5 sin formatear y perder información. Pero en su lugar hay una forma rápida de convertir usando un solo comando.
La migración de RAID 0 a RAID 5 sólo es posible cuando se utilizan dos discos en los que RAID 0 se solapa convenientemente con RAID5. Esto simplemente cambiará el nivel de RAID sin afectar a la información de los discos.
Este comando convierte el RAID 0 con dos unidades en RAID 5 con tres unidades.
mdadm --grow /dev/md0 --level=5 --raid-devices=3 --add /dev/sdd --backup-file=/tmp/grow_md0.bak
Debe desmontar la unidad antes de hacer esto.
Comprobemos con el comando:
cat /proc/mdstat
Esperando que termine reshap-а

Una vez convertido a RAID-5 puedes añadir más discos a la matriz como he mencionado anteriormente:
mdadm --add /dev/md0 /dev/sdc1

Después de reiniciar en Administración de discos, su nombre cambiará a RAID5.
Si hay más de dos discos en RAID 0, primero debe reducir el número de discos antes de convertirlo en RAID5.
Cómo convertir LVRAID1 a LVRAID5
Si ha utilizado la funcionalidad LVM para crear una matriz RAID, en cuyo caso puede convertir un tipo a otro utilizando el comando:
lvconvert
Vamos a ejecutar un comando
pvdisplay
para ver información sobre un grupo de discos.

Para más detalles sobre cómo crear un RAID MD y LV, consulte uno de los vídeos anteriores.

🐧 Cómo recuperar datos borrados de partición de disco LVM en Linux 🐧
Por lo tanto, para iniciar la conversión, necesitamos desmontar el volumen lógico. Introduzca el comando:
umount /dev/vg1/lv1
Para convertir el nivel RAID, introduzca el siguiente comando:
lvconvert --type raid5 /dev/vg1/lv1

Ahora queda añadir una tercera unidad al grupo de unidades existente, con el comando:
vgextend vg1 /dev/sdd1
Al ejecutarlo, el programa le advertirá que el disco ya ha sido particionado, introduzca yes para confirmar y pulse enter.
Para ver si la unidad se ha añadido al grupo, ejecute el comando:
pvdisplay
Como puedes ver hay 3 discos involucrados en el grupo.

Volvemos a montar nuestro disco y lo abrimos en el administrador de archivos, como puede ver todos los datos permanecen donde deben estarе.

Cómo convertir LVRAID0 en LVRAID5
El mismo comando se utiliza para convertir RAID 0 en RAID 5. Lo único es añadir un tercer disco al grupo antes de realizar la conversión, de lo contrario el sistema informará de que no tiene espacio suficiente para realizar este comando.
Añadimos un tercer disco:
vgextend vg1 /dev/sdd1
Y para convertir el nivel RAID, introduzca el siguiente comando:
lvconvert --type raid5 /dev/vg1/lv1

Montamos nuestro array y vemos lo que queda en él. Como puedes ver todos los archivos están en su lugar.

Cómo recuperar datos de las matrices RAID dañadas
Si se produce un fallo durante la conversión de un nivel RAID a otro, o si se sobrescribe accidentalmente la información, utilice un software de recuperación de datos - Hetman RAID Recovery. La utilidad lee toda la información del sistema sobre la controladora, la placa base o el software en el que se creó la matriz de discos.

Reconstruirá el RAID dañado y permitirá copiar la información perdida del mismo.

Puedes leer más detalles sobre la recuperación de MD LV RAID en uno de los vídeos anteriores, les dejo el enlace en la descripción.

🐧 Cómo restaurar el software RAID 0, 1, 5 la matriz en Linux (mdadm) 🐧
Conclusión
El cambio de un tipo de RAID a otro se realiza en unos pocos pasos. Primero hay que convertir el array a un tipo de RAID intermedio y luego de nuevo al tipo que queremos. Por ejemplo, para convertir de "primer" tipo al "sexto" habría que convertirlo primero al "quinto" nivel y sólo después se puede convertir al sexto" nivel.