GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo reemplazar de manera segura un disco que aún no ha fallado en una matriz Linux RAID5?

Uso de mdadm 3.3

Desde mdadm 3.3 (lanzado el 3 de septiembre de 2013), si tiene un kernel 3.2+, puede proceder de la siguiente manera:

# mdadm /dev/md0 --add /dev/sdc1
# mdadm /dev/md0 --replace /dev/sdd1 --with /dev/sdc1

sdd1 es el dispositivo que desea reemplazar, sdc1 es el dispositivo preferido para hacerlo y debe declararse como repuesto en su matriz.

El --with La opción es opcional, si no se especifica, se utilizará cualquier repuesto disponible.

Versión anterior de mdadm

Nota:aún necesita un kernel 3.2+.

Primero, agregue una nueva unidad como repuesto (reemplace md0 y sdc1 con su RAID y dispositivo de disco, respectivamente):

# mdadm /dev/md0 --add /dev/sdc1

Luego, inicie una operación de copia y reemplazo como esta (sdd1 siendo el dispositivo defectuoso):

# echo want_replacement > /sys/block/md0/md/dev-sdd1/state 

Resultado

El sistema copiará todos los bloques legibles de sdd1 a sdc1 . Si se trata de un bloque ilegible, lo reconstruirá a partir de la paridad. Una vez completada la operación, el repuesto anterior (aquí:sdc1 ) se activará y la unidad defectuosa se marcará como fallida (F) para que pueda eliminarla.

Nota: el crédito es para frostschutz y Ansgar Esztermann quién encontró la solución original (ver la pregunta duplicada).

Núcleos más antiguos

Otras respuestas sugieren:

  • Juanito El enfoque de:convertir la matriz a RAID6, "reemplazar" el disco, luego volver a RAID5,
  • Hauke ​​Laging El enfoque de:retire brevemente el disco de la matriz RAID5, conviértalo en parte de un RAID1 (espejo) con el nuevo disco y vuelva a agregar esa unidad espejo a la matriz RAID5 (teórico)...

Si no le importa ejecutar RAID-6 (2 discos de paridad en lugar de 1), y si está ejecutando mdadmin 3.1.x o superior, puede convertir su arreglo RAID-5 a RAID-6 para agregar un disco de paridad adicional. . Sin embargo, esto pondrá la matriz bajo estrés durante la reconstrucción. Y tiene algunas implicaciones de rendimiento ya que hay más discos de paridad para actualizar durante las escrituras.

Pero si se completa con éxito, entonces puede mantener su disco defectuoso en su lugar y cuando finalmente falle, aún tendrá protección de paridad para la matriz. Creo que puede convertir la matriz de RAID6 a RAID5 si no espera a mantenerla como RAID6.

No conozco una forma en línea de mantener la matriz como RAID-5 y reemplazar el disco sin poner la matriz en modo degradado, ya que creo que debe marcarlo como fallido al reemplazarlo. Su idea de copia de dd podría ser la forma de hacerlo.


Esto puede ser posible cumpliendo los requisitos

  1. en línea
  2. no estrese ningún disco excepto el que se va a reemplazar

Pero incluso si lo siguiente puede funcionar, probablemente no encontrará ninguna recomendación de ese tipo "en los libros"...

Idea:

  1. Saque el disco VIEJO de la matriz (por un breve momento):mdadm --manage /dev/raid5 --fail /dev/OLD
  2. Cree un nuevo dispositivo md (RAID-1) a partir de los discos ANTIGUO y NUEVO:mdadm --build /dev/md42 --level=mirror --raid-devices=2 /dev/OLD /dev/NEW
  3. Vuelva a colocar el RAID-1 en la matriz (en lugar de /dev/OLD):mdadm --manage /dev/raid5 --re-add /dev/md42

¿Qué debería :-) sucede:

  1. El RAID-5 se sincroniza con /dev/md42. Esto no debería llevar mucho tiempo.
  2. El RAID-5 normalmente vuelve a estar operativo (pero más lento).
  3. /dev/NEW está sincronizado con /dev/OLD.

Mira el progreso de la sincronización (cat /proc/mdstat o mdadm --monitor ). Si la sincronización finaliza, saque el RAID-1 del RAID-5, detenga el RAID-1, vuelva a agregar /dev/NEW al RAID-5. Si todo está bien, sobrescriba los superbloques mdraid en /dev/OLD para evitar problemas:mdadm --zero-superblock

Advertencia: La sincronización RAID-5 rápida puede funcionar solo si usa un mapa de bits. Si no tiene uno, mejor primero haga una prueba con un RAID-5 ficticio (sin un mapa de bits). O agrega uno. Al menos debería ser posible agregar uno externo. De lo contrario, puede ser necesario detener el RAID-5 antes de cambiar los dispositivos. Sin embargo, si arranca desde RAID-5, esto se volvería un poco complicado.


Linux
  1. Cómo usar dd en Linux sin destruir tu disco

  2. Cómo particionar un disco en Linux

  3. Cómo encontrar si el disco es SSD o HDD en Linux

  4. ¿Cómo encontrar un disco SSD o HDD en Linux?

  5. Cómo cambiar UID o GID de forma segura en Linux

Cómo montar un disco NTFS en Linux

Cómo visualizar el uso del disco en Linux usando Baobab

Cómo cifrar la partición en Linux

Cómo cifrar el sistema de archivos raíz en Linux

Cómo formatear particiones de disco en Linux

Cómo crear particiones de disco en Linux