Intro
El raid1 proporciona una estupenda protección a los datos al mantener dos copias de cada archivo, que se almacenan en distintos discos duros. Linux permite conseguir este raid1 mediante software, por lo que no es necesario hardware.
Sin embargo, si no tenemos claro como sustituir uno de los dos discos duros que componen el array seguramente el sistema no arrancará tras un reinicio. Veamos como hemos de proceder para sustituir un disco duro del array sin tener que reinstalar todo el sistema.
Procedimiento para discos duros GPT
Los discos duros empledos habitualemente hace tiempo que superaron los 2TB de capacidad, así que su tabla de particiones es GPT y no MBR, que es la que se utilizaba anteriormente, con discos duros menores de 2TB. El procedimiento que indicamos se refiere a estos discos duros.
Realizar una copia de seguridad de la tabla de particiones
Ejecutamos el siguiente comando:
# sgdisk –backup=sda_parttable_gpt.bak /dev/sda
Sacar el disco defectuoso del array
Antes de continuar con la sustitución física del disco duro habría que sacarlo del array:
# mdadm –manage /dev/md0 –fail /dev/sda1
# mdadm –manage /dev/md1 –fail /dev/sda2
…
Así hasta sacar todas las particiones del disco duro de las particiones del array.
Para comprobar que están todas las particiones del disco fuera del array ejecutamos:
# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb2[1]
2929609152 blocks super 1.2 [2/1] [_U]
bitmap: 2/22 pages [8KB], 65536KB chunk
md0 : active raid1 sdb1[1]
523712 blocks super 1.2 [2/1] [_U]
unused devices: <none>
Como veremos no aparece el disco sda por ningún lado y el estado de cada partición del array es [_U], lo que indica que el primer disco no está funcionando.
Parar el equipo (si no es hotplug) y sustituir el disco
Ahora habría que sustituir físicamente el disco defectuoso.
Volver a escribir la tabla de particiones en el disco reemplazado
Para volver a escribir la tabla de particiones en el disco a partir de la que habíamos grabado haríamos:
# sgdisk –load-backup=sdb_parttable_gpt.bak /dev/sda
Para generar un nuevo UUID en el disco haremos:
# sgdisk -G /dev/sda
Añadir de nuevo las particiones del disco al array
Habría que hacer:
# mdadm /dev/md0 -a /dev/sda1
# mdadm /dev/md1 -a /dev/sda2
…
Así hasta añadir todas las particiones del array.
Instalar el bootloader en el nuevo disco
# grub-install /dev/sda
Enlaces
Hetzner lo explica estupendamente en el siguiente enlace, incluyendo los discos con MBR:
https://wiki.hetzner.de/index.php/Festplattenaustausch_im_Software-RAID/en