Creé un RAID 5 basado en mdadm a partir de seis discos duros usando el siguiente comando:
# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1
Esperaba que la matriz tuviera un repuesto dinámico, a saber, / dev / sdg1. Sin embargo, la comprobación mdadm --detail
muestra 2 repuestos:
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 spares=2 name=...
Además, el tamaño de la matriz, como se muestra en, df
es de 2 TB, lo que correspondería a solo cuatro de mis unidades de 500 GB en uso.
Entonces, ¿cuál es exactamente la semántica de --spare-devices
? La página de manual dice que "Especifica el número de dispositivos de repuesto (eXtra) en la matriz inicial", pero ese no parece ser el caso aquí.
mdadm
software-raid
jstarek
fuente
fuente
mdadm --detail
incluida la unidad de paridad en el recuento de "repuestos"). Puede verificar esto haciendo una matriz RAID 6 sin repuesto dinámico; si mi teoría es válida, también mostrará repuestos = 2.cat /proc/mdstat
), creo que verá el esperado 1.Respuestas:
Esa salida es correcta. Creó un RAID 5 con 5 discos (solo 4 de estos serán "utilizados" para el espacio). Y agregó una unidad de repuesto adicional.
Entonces, en realidad tiene un RAID 5 que permite una falla de disco + una unidad de repuesto adicional.
Si lo que quiere es RAID 5 con 6 discos y tiene el espacio de 5 discos, entonces debe cambiar su comando a:
Pero en este caso, puede tolerar solo una falla de disco según las especificaciones de RAID 5.
EDITAR: Agregando el enlace de la página oficial de la incursión: Puedes ver una incursión 5 con 6 discos y dice repuestos = 1: Creación de matriz inicial
ACTUALIZACIÓN: Decidí crear una incursión 5 en mi sistema y el valor de reserva desaparece una vez que la matriz está en estado limpio:
Estado limpio:
Así es como el comentario de OP, durante la creación inicial de la incursión 5 tiene la unidad de repuesto hasta que se completa la compilación / sincronización de la incursión.
fuente
En aras de la claridad, agregaré la información dada por derobert y Alexandre Alves y algunas otras pruebas mías aquí:
mdadm
El--spare-devices
parámetro funciona como lo indica la página del manual, es decir, define el número de unidades de "repuesto dinámico" en una matriz. Un "repuesto dinámico", como en la terminología RAID normal, no tiene nada que ver con las unidades adicionales presentes en una matriz RAID 5 o RAID 6; es una unidad adicional destinada a hacerse cargo tan pronto como una unidad en la matriz ha fallado.El número de unidades de repuesto se proporciona en el momento de la creación de la matriz. Más tarde, se puede verificar usando
#mdadm --detail --scan
.Sin embargo, durante el breve período de inicialización de un RAID 5 basado en mdadm, hay una optimización, descrita en https://raid.wiki.kernel.org/index.php/Initial_Array_Creation , que hace que aparezca una unidad de repuesto adicional en la salida de ese comando:
"Para raid5 hay una optimización: mdadm toma uno de los discos y lo marca como 'repuesto'; luego crea la matriz en modo degradado. El núcleo marca el disco de repuesto como 'reconstrucción' y comienza a leer desde 'bueno' discos, calcula la paridad y determina qué debe estar en el disco de repuesto y luego simplemente escribe en él ".
Una vez que finaliza la inicialización de la matriz, el número de repuestos informados vuelve al número seleccionado en el momento de la creación.
fuente