Tengo el siguiente problema con una partición RAID de software RAID1 en mi sistema Ubuntu (10.04 LTS, 2.6.32-24-server en caso de que importe).
Uno de mis discos (sdb5) reportó errores de E / S y, por lo tanto, fue marcado como defectuoso en la matriz. La matriz se degradó con un dispositivo activo. Por lo tanto, reemplacé el disco duro, cloné la tabla de particiones y agregué todas las nuevas particiones a mis matrices de raid. Después de sincronizar todas las particiones terminó bien, teniendo 2 dispositivos activos, excepto uno de ellos. Sin embargo, la partición que reportó el disco defectuoso antes no incluía la nueva partición como un dispositivo activo sino como un disco de repuesto:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Una mirada detallada revela:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Entonces, aquí está la pregunta: ¿Cómo le digo a mi redada que convierta el disco de repuesto en uno activo? ¿Y por qué se ha agregado como un dispositivo de repuesto? La recreación o el reensamblaje de la matriz no es una opción, porque es mi partición raíz. Y no puedo encontrar ninguna sugerencia sobre ese tema en el Software Raid HOWTO.
Cualquier ayuda sería apreciada.
Solución actual
Encontré una solución a mi problema, pero no estoy seguro de que esta sea la forma real de hacerlo. Mirando más de cerca mi redada, encontré que sdb5 siempre aparecía como un dispositivo de repuesto:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
de modo que leer el dispositivo sdb5 en la matriz md3 siempre terminó agregando el dispositivo como repuesto.
Finalmente acabo de recrear la matriz.
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
que funcionaba.
Pero la pregunta sigue abierta para mí: ¿hay una mejor manera de manipular los resúmenes en el superbloque y decirle a la matriz que convierta sdb5 de un disco de repuesto a un disco activo? Todavía tengo curiosidad por una respuesta.
Respuestas:
Daniel: Inicialmente, vuelva a verificar si el repuesto se está integrando en la matriz haciendo lo siguiente:
que debe informar si hay un proceso de compilación en curso y cuánto tiempo se puede esperar.
Si no se está produciendo ningún edificio, intente lo siguiente
Y reporta cómo funciona eso para ti. Ver http://linux.die.net/man/8/mdadm para más detalles.
fuente
Bastante tarde, pero al hacer esto solo se habilitaría la unidad de repuesto:
Como dice la página del manual:
fuente
Por lo que recuerdo, cuando tuve ese problema (por una razón diferente) tuve que usar --grow para volver a agregar la unidad de repuesto "correctamente" (también para eliminar la condición de error).
Algo como esto (verifique con su documentación!):
mdadm --grow --level = faulty --layout = flush / dev / sdb5
A continuación, puede agregar el dispositivo y debe ser reconocido.
El problema es que el controlador md guarda el estado de cada partición en los datos de arranque de las unidades. Entonces, incluso después de un reinicio, conoce el estado y evita las particiones marcadas como defectuosas.
fuente