Estoy intentando resolver este problema que tengo con mdadm raid1.
Tengo un servidor Ubuntu 9.04 ejecutándose en un software RAID1 de 2 unidades con mdadm. Ayer, una de las unidades falló, por lo que la reemplacé por una unidad nueva del mismo tamaño. Quité la unidad defectuosa, copié la partición de la unidad en buen estado restante a la nueva unidad y luego la agregué al raid. Se volvió a sincronizar y el sistema funcionó bien, hasta que la unidad que no había fallado también fue etiquetada como fallida.
Ahora tenía la incursión ejecutándose únicamente en la nueva unidad. Entonces compré otra unidad y repetí el procedimiento anterior. Ahora tenía 2 unidades nuevas y la incursión se estaba sincronizando. Sin embargo, después de unos minutos revisé /proc/mdstat y la incursión ya no se sincronizaba.
mdadm --detail /dev/md1 muestra: (sdb es la primera unidad nueva y sdc es la segunda unidad nueva)
root@dola:/home/jjaramillo# mdadm --detail /dev/md1 /dev/md1: Versión: 00.90 Hora de creación: sábado 20 de diciembre 00:42:05 2008 Nivel de incursión: raid1 Tamaño de la matriz: 974711680 (929,56 GiB 998,10 GB ) Tamaño de desarrollo usado: 974711680 (929,56 GiB 998,10 GB) Dispositivos Raid: 2 Dispositivos totales: 2 Menor preferido: 1 Persistencia: Superbloque es persistente
Update Time : Wed Jun 2 10:09:35 2010
State : clean, degraded
Dispositivos activos: 1 Dispositivos en funcionamiento: 2 Dispositivos fallidos: 0 Dispositivos de repuesto: 1
UUID : bba497c6:5029ba0b:bfa4f887:c0dc8f3d
Events : 0.5395594
Number Major Minor RaidDevice State
2 8 35 0 spare rebuilding /dev/sdc3
1 8 19 1 active sync /dev/sdb3
Intenté quitar y volver a agregar la unidad varias veces, pero sucede lo mismo. La incursión no se vuelve a sincronizar. Miré /var/log/messages y encontré lo siguiente:
2 de junio 07:57:36 dola kernel: [35708.917337] sd 5:0:0:0: [sdb] Código de detección no controlado 2 de junio 07:57:36 dola kernel: [35708.917339] sd 5:0:0:0: [sdb] Resultado: hostbyte=DID_OK driverbyte=DRIVER_SENSE 2 de junio 07:57:36 dola kernel: [35708.917342] sd 5:0:0:0: [sdb] Clave de detección: Error medio [actual] [descriptor] 2 de junio de 2007 :57:36 kernel de dola: [35708.917346] Datos de sentido del descriptor con descriptores de sentido (en hexadecimal): 2 de junio 07:57:36 kernel de dola: [35708.917348] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 2 de junio 07:57:36 kernel de dola: [35708.917357] 00 43 9e 47 2 de junio 07:57:36 kernel de dola: [35708.917360] sd 5:0:0:0: [sdb] Agregar. El sentido: Error de lectura no recuperado: falló la reasignación automática
Parece que hay algún tipo de error en sdb (la primera unidad nueva). Mi pregunta es, ¿cuál sería el mejor enfoque para que la redada vuelva a funcionar? He pensado en agregar /dev/md1 a un disco duro en blanco, luego volver a hacer la incursión desde cero y volver a cargar los datos, pero podría haber una solución más fácil.
Cualquier ayuda sería apreciada.
Respuesta1
No debe intentar preparar la nueva unidad de ninguna manera significativa a menos que los componentes de su raid sean en realidad PARTICIONES de disco, no discos en sí. En cuyo caso, crearía una partición en la nueva unidad que sea del mismo tamaño que la del disco activo restante.
Nunca es necesario tocar el disco antiguo: se supone que está fallado y no es confiable.
El procedimiento correcto es quitar la unidad rota, agregar una unidad nueva vacía y luego usar mdadm para agregar esa nueva unidad a la matriz. Lo harías algo como esto:
mdadm --add /dev/md0 /dev/<newdrive>
Luego, el kernel sincronizará la nueva unidad con la matriz, copiando los datos de la unidad restante en buen estado.
Respuesta2
RE:
Quité la unidad defectuosa, copié la partición de la unidad en buen estado restante a la nueva unidad y luego la agregué al raid.
No deberías copiar particiones por tu cuenta.
Lo único que debes hacer es colocar la nueva unidad en tu sistema y usar mdadm para agregarla a tu grupo raid.
Si realmente hiciste una copia (es decir, un dd if=/dev/good_disk of=/dev/new_disk), probablemente terminaste copiando UUID de raid o algo que le permita a mdadm saber qué disco es cuál, y luego se confunde.
Respuesta3
Instale el nuevo disco duro, particione como sugirió Tom O'Connor y luego use mdadm para reparar la matriz. Consulte la página de manual de mdadm en "Para el modo de administración:", la opción --add:
mdadm /dev/md0 --add /dev/sda1
Es posible que primero deba "fallar" la primera unidad de reemplazo.