8 Pruebas — Sustituir un disco fallido en RAID1
Objetivo y variantes de búsqueda
- Intento principal: reemplazar un disco fallido en RAID1 usando mdadm.
- Variantes relacionadas: simular fallo de disco, clonar tabla de particiones con sfdisk, limpiar superbloques RAID, sincronizar RAID1, reinstalar GRUB en discos.
Antes de empezar
Breve definición: RAID1 es un espejo de discos: dos (o más) discos contienen los mismos datos para tolerar fallos. mdadm es la herramienta de gestión de RAID por software en Linux.
Notas importantes:
- Asegúrate de tener backups recientes antes de manipular particiones o arreglos RAID.
- Ejecuta estos pasos como root o con privilegios sudo.
1) Simular la falla de un disco
No importa si falla /dev/sda o /dev/sdb; en este ejemplo asumimos que /dev/sdb ha fallado. Puedes simular la falla apagando y retirando el disco físicamente, o retirándolo por software:
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2
Luego elimina las particiones del array:
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2
Apaga el sistema para cambiar el disco si trabajas físicamente:
shutdown -h now
Instala el disco nuevo en la bahía correspondiente (si simulaste /dev/sda, intercambia las posiciones físicas de los discos según corresponda) y arranca de nuevo. El sistema debería arrancar aunque el array esté degradado.
2) Comprobar el estado del RAID degradado
Verifica el estado del array:
cat /proc/mdstat
Ejemplo de salida esperada:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sda1[0]
200704 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
5036288 blocks [2/1] [U_]
unused devices:
[root@server1 ~]#
También puedes listar discos y particiones:
fdisk -l
(En el ejemplo la salida muestra que /dev/sdb no contiene tabla de particiones válida tras la simulación de fallo.)
3) Copiar la tabla de particiones del disco sano al nuevo
Clona la tabla de particiones de /dev/sda a /dev/sdb con sfdisk:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Si sfdisk se queja de la firma, puedes forzar la operación:
sfdisk -d /dev/sda | sfdisk --force /dev/sdb
Salida esperada (ejemplo):
[root@server1 ~]# sfdisk -d /dev/sda | sfdisk /dev/sdb
Checking that no-one is using this disk right now ...
OK
Disk /dev/sdb: 652 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sdb: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/sdb1 * 63 401624 401562 fd Linux raid autodetect
/dev/sdb2 401625 10474379 10072755 fd Linux raid autodetect
/dev/sdb3 0 - 0 0 Empty
/dev/sdb4 0 - 0 0 Empty
Successfully wrote the new partition table
Re-reading the partition table ...
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
[root@server1 ~]#
4) Borrar cualquier rastro de un array RAID antiguo
Antes de volver a añadir las particiones nuevas al array, elimina metadatos RAID antiguos en las particiones del nuevo disco:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
5) Añadir el nuevo disco al array y sincronizar
Añade las particiones al array con mdadm:
mdadm -a /dev/md0 /dev/sdb1
mdadm -a /dev/md1 /dev/sdb2
Consulta el progreso de la reconstrucción:
cat /proc/mdstat
Salida de ejemplo durante la recuperación:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[2] sda2[0]
5036288 blocks [2/1] [U_]
[=====>...............] recovery = 29.8% (1502656/5036288) finish=18.8min speed=3116K/sec
unused devices:
[root@server1 ~]#
Espera a que la sincronización termine. Cuando termine, ambas entradas deberían mostrar [UU]:
[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md0 : active raid1 sdb1[1] sda1[0]
200704 blocks [2/2] [UU]
md1 : active raid1 sdb2[1] sda2[0]
5036288 blocks [2/2] [UU]
unused devices:
[root@server1 ~]#
6) Reinstalar GRUB en ambos discos
Para asegurar que el sistema pueda arrancar si falla cualquiera de los discos, instala GRUB en los dos discos. Ejecuta el comando grub y, dentro del prompt de GRUB, ejecuta:
grub
Dentro del intérprete de grub:
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
Esto instala el cargador de arranque en ambos dispositivos físicos.
7) Comprobaciones finales
- Vuelve a inspeccionar /proc/mdstat para confirmar que los arrays están en estado [UU].
- Revisa dmesg y /var/log/messages (o el sistema de logs que uses) por errores relacionados con discos o RAID.
- Si todo está correcto, registra el incidente y marca la unidad reemplazada para su reciclaje o análisis.
Alternativas y cuándo falla este procedimiento
- Si los discos tienen tamaños distintos o el nuevo disco es más pequeño, sfdisk puede fallar al clonar la tabla de particiones. Solución: crear manualmente las particiones con las mismas dimensiones o usar parted para ajustar sectores.
- Si usas LVM encima del RAID, asegúrate de que los nombres de dispositivos lógicos vuelvan a activarse; puede ser necesario ejecutar pvscan/ vgchange -ay.
- En arrays más complejos (RAID5/6), el proceso de reconstrucción puede tardar mucho más; planifica ventana de mantenimiento.
Mini-metodología (resumen paso a paso)
- Simular o retirar el disco fallido.
- Comprobar estado con cat /proc/mdstat y fdisk -l.
- Clonar tabla de particiones: sfdisk -d /dev/sda | sfdisk /dev/sdb.
- Borrar superbloques RAID: mdadm –zero-superblock /dev/sdbX.
- Añadir particiones al array: mdadm -a /dev/mdY /dev/sdbX.
- Esperar sincronización y verificar [UU].
- Reinstalar GRUB en ambos discos.
Checklist por roles
- Administrador de sistemas:
- Verificar backups antes de empezar.
- Clonar particiones y añadir al array.
- Reinstalar GRUB.
- Operador de mantenimiento:
- Sustituir físicamente el disco.
- Etiquetar y almacenar el disco defectuoso.
- Responsable de seguridad:
- Asegurar que el disco retirado se trata según política de datos.
Glosario (una línea cada término)
- mdadm: utilidad para gestionar arrays RAID por software en Linux.
- sfdisk: herramienta para manipular tablas de particiones en dispositivos de bloque.
- superblock: metadatos que identifica una partición como miembro de un array RAID.
- GRUB: cargador de arranque común en sistemas Linux.
Recursos
- The Software-RAID Howto: http://tldp.org/HOWTO/Software-RAID-HOWTO.html
- Fedora: http://fedoraproject.org
Resumen: siguiendo estos pasos puedes reemplazar de forma segura un disco fallido en un RAID1, restaurar la redundancia del array y asegurar que el sistema vuelva a arrancar desde cualquiera de los discos.
Materiales similares

Cómo bloquear apps en iPhone — guía rápida

Ver publicaciones que te gustaron en Instagram

Elegir el mejor mini PC: guía práctica

Ver y administrar publicaciones que te gustaron en Instagram
Reemplazar disco fallido en RAID1
