Desactiva la furia informática: Resolviendo el reemplazo de discos en grupos RAID con mdadm de manera eficiente y sin estrés
¡Hola a todos! ¿Cómo están? Hoy quiero hablarles sobre los problemas de RAID por software en entornos Linux, ya que me he encontrado con esta situación en varias ocasiones.
En Linux, muchos proveedores de servidores en un centro de datos te venden un servidor con una configuración RAID 1, utilizando la herramienta mdadm. Esta opción es más económica que utilizar un controlador RAID de calidad, pero es posible que te encuentres con un problema: uno de los discos está dañado y debes reemplazarlo.
Parece sencillo, ¿verdad? Solo tienes que desconectar el disco antiguo y conectar uno nuevo. Pero en este caso no es tan simple. Debes configurar el disco manualmente y añadirlo al grupo RAID creado en mdadm. Antes de hacer eso, es necesario crear particiones en el nuevo disco del mismo tamaño que las particiones con protección RAID existentes.
En la consola, puedes ver varias particiones configuradas con RAID. Todas las particiones que comienzan con "MD" seguido de un número son particiones RAID. En este ejemplo, el RAID 1 requiere dos discos, pero lamentablemente uno de ellos está dañado y necesita ser reemplazado.
En este paso, hemos agregado con éxito un disco nuevo del mismo tamaño. Como podrás ver en la siguiente imagen, se muestra otro disco de 10GB que ha sido agregado a la máquina.
Como podemos ver, tenemos dos discos: uno llamado xvda y otro llamado xvdb. Sin embargo, en tu caso podrían tener nombres diferentes, como sda, sdb, etc.
Ahora, dejemos de lado las explicaciones aburridas y vayamos al grano, supongo que estás aquí para solucionar un problema con RAID en mdadm en Linux. Si solo te aburres y quieres aprender algo más, ¡perfecto! Vamos a ver la solución.
Creación de particiones en el disco xvdb usando la herramienta sfdisk
En primer lugar, es necesario reemplazar un disco dañado en un servidor Linux configurado con RAID 1. En este caso, hemos reemplazado el disco xvdb en nuestro servidor. Ahora, debemos crear las mismas particiones que se encuentran en el disco xvda en el disco xvdb recién instalado.
Aunque es posible realizar esta tarea manualmente, puede ser tedioso y propenso a errores. Por suerte, contamos con una herramienta asombrosa llamada sfdisk. Utilizando esta herramienta, podemos automatizar el proceso y ahorrar tiempo y esfuerzo.
[root@localhost~]# sfdisk -d /dev/xvda
En la siguiente imagen, se muestra el listado de particiones actuales en el disco xvda. Esto nos ayudará a tener una referencia clara de las particiones que debemos recrear en el nuevo disco xvdb
Al observar la imagen, notamos que no aparece ninguna partición en el disco xvdb. Esto es esperado, ya que se trata de un disco nuevo. Ahora procederemos a replicar las mismas particiones que se encuentran en el disco xvda.
Copiar el diseño de partición de un disco completo
[root@localhost~]# sudo sfdisk -d /dev/xvda | sudo sfdisk /dev/xvdb
vemos el resultado en la siguiente imagen
Ahora, ejecutamos el mismo comando anterior para listar las particiones en el disco xvdb.
Como se muestra en la imagen, aparecen las mismas particiones que tenemos en el disco xvda
[root@localhost~]# cat /proc/mdstat
Con el comando anterior, podemos listar las particiones de RAID. Como se puede observar en la siguiente imagen, tenemos varias particiones (md124, md125, md126, md127). Si ejecutamos el comando 'lsblk', podremos ver que cada partición con el nombre 'md' está montada en una partición correspondiente del disco xvda.
Como mencionamos anteriormente, cada partición 'md' se encuentra montada en una partición específica del disco xvda. A continuación, vamos a listarlas aquí:
-
md124 >> /dev/xvda3
md125 >> /dev/xvda1
md126 >> /dev/xvda2
md127 >> /dev/xvda5
Reparación del RAID en mdadm: Reconstruyendo el RAID y asegurando la integridad de los datos
hemos aprendido sobre el proceso de creación de particiones en Linux utilizando sfdisk
Ahora, pasemos a la fase final: la reparación del RAID en mdadm. Una vez que hemos reemplazado el disco dañado y hemos creado las particiones adecuadas, necesitamos reconstruir el RAID. Esto se logra ejecutando el siguiente comando:
[root@localhost~]# mdadm --manage /dev/mdX --add /dev/xvdbX
Donde /dev/mdX es el nombre del dispositivo RAID y /dev/xvdbX es la partición RAID que deseamos agregar al dispositivo.
Después de ejecutar este comando, mdadm comenzará a reconstruir el RAID utilizando la nueva partición. El proceso de reconstrucción puede llevar algún tiempo dependiendo del tamaño del disco y la cantidad de datos.
Como se puede observar en las imágenes anteriores, hemos llevado a cabo exitosamente la reconstrucción del RAID utilizando los comandos mencionados anteriormente. Además, hemos utilizado el comando 'cat /proc/mdstat' para monitorear el progreso de reconstrucción en tiempo real. También ejecutamos 'mdadm -D /dev/md127' para verificar el estado del RAID, y podemos confirmar que ha cambiado de estado de degradado (clean).