mdadm es una utilidad de Linux que se utiliza para administrar y monitorear dispositivos RAID de software . Se utiliza en distribuciones de Linux modernas en lugar de utilidades RAID de software más antiguas como raidtools2 o raidtools. [3] [4] [5]
mdadm es un software libre originalmente [6] mantenido por, y protegido por derechos de autor por, Neil Brown de SUSE , y licenciado bajo los términos de la versión 2 o posterior de la Licencia Pública General de GNU .
El nombre se deriva de los nodos de dispositivo md (multiple device) que administra o gestiona, y reemplazó una utilidad anterior mdctl . [ cita requerida ] El nombre original era "Mirror Disk", pero se cambió a medida que se agregaron más funciones. [ cita requerida ] Ahora se entiende que el nombre es la abreviatura de Multiple Disk and Device Management (Administración de múltiples discos y dispositivos). [3]
Las configuraciones RAID de software de Linux pueden incluir cualquier cosa que se presente al núcleo de Linux como un dispositivo de bloque . Esto incluye discos duros completos (por ejemplo, /dev/sda ) y sus particiones (por ejemplo, /dev/sda1 ).
RAID 10 es distinto de RAID 0+1, que consiste en un espejo RAID 1 de nivel superior compuesto por franjas RAID 0 de alto rendimiento directamente en los discos duros físicos. Una falla de una sola unidad en una configuración RAID 10 da como resultado que una de las franjas de nivel inferior entre en modo degradado , pero la franja de nivel superior funcione normalmente (excepto por el impacto en el rendimiento). Una falla de una sola unidad en una configuración RAID 0+1 da como resultado que una de las franjas de nivel inferior falle por completo y que el espejo de nivel superior entre en modo degradado. Cuál de las dos configuraciones es preferible depende de los detalles de la aplicación en cuestión, como si hay o no discos de repuesto disponibles y cómo se deben poner en marcha.
La forma original (estándar) de los nombres de los dispositivos md es /dev/md<n> , donde <n> es un número entre 0 y 99. Los núcleos más recientes admiten nombres como /dev/md/Home . En los núcleos 2.4.x y anteriores, estas dos eran las únicas opciones. Ninguno de ellos es particionable.
Desde los núcleos 2.6.x, se introdujo un nuevo tipo de dispositivo MD, una matriz particionable . Los nombres de los dispositivos se modificaron cambiando md por md_d . Las particiones se identificaron añadiendo p<n> , donde <n> es el número de partición; por ejemplo, /dev/md/md_d2p3 . Desde la versión 2.6.28 de la línea principal del núcleo Linux , las matrices no particionables se pueden particionar, y se hace referencia a las particiones de la misma forma que a las matrices particionables, por ejemplo, /dev/md/md1p2 .
Desde la versión 3.7 del núcleo principal de Linux, md admite operaciones TRIM para las unidades de estado sólido (SSD) subyacentes, para diseños lineales, RAID 0, RAID 1, RAID 5 y RAID 10. [8]
Dado que el kernel admite MD, existe un problema al usarlo antes de que se ejecute el kernel. En concreto, no estará presente si el gestor de arranque es (e)LiLo o GRUB legacy. Aunque normalmente está presente, puede que no esté presente para GRUB 2. Para evitar este problema, se debe utilizar un sistema de archivos /boot sin compatibilidad con MD o con RAID1. En este último caso, el sistema arrancará tratando el dispositivo RAID1 como un sistema de archivos normal y, una vez que el sistema esté en ejecución, se puede volver a montar como MD y agregarle el segundo disco. Esto dará como resultado una puesta al día, pero los sistemas de archivos /boot suelen ser pequeños.
Con los cargadores de arranque más recientes es posible cargar el soporte MD como un módulo del kernel a través del mecanismo initramfs . Este enfoque permite que el sistema de archivos /boot esté dentro de cualquier sistema RAID sin necesidad de una configuración manual compleja.
Además de sus propios formatos para metadatos de volúmenes RAID, el RAID por software de Linux también admite formatos de metadatos externos, a partir de la versión 2.6.27 del kernel de Linux y la versión 3.0 de la utilidad de espacio de usuario mdadm . Esto permite a Linux utilizar varios volúmenes RAID basados en firmware o controladores, también conocidos como " RAID falsos ". [9]
A partir de octubre de 2013 [actualizar], hay dos formatos admitidos de metadatos externos:
mdmpd fue [11] un demonio usado para monitorear dispositivos multiruta MD hasta el kernel Linux 2.6.10-rc1, desarrollado por Red Hat como parte del paquete mdadm. [12] El programa se usaba para monitorear dispositivos multiruta ( RAID ) y generalmente se inicia en el momento del arranque como un servicio y luego se ejecuta como un demonio.
Los requisitos de almacenamiento de las empresas suelen incluir el deseo de tener más de una forma de comunicarse con una sola unidad de disco, de modo que en caso de que se produzca algún fallo en la comunicación con una unidad de disco a través de un controlador, el sistema pueda cambiar automáticamente a otro controlador y seguir funcionando. Esto se denomina acceso a disco multipath. El núcleo de Linux implementa el acceso a disco multipath a través de la pila RAID de software conocida como el controlador md (Multiple Devices). La parte del núcleo del controlador multipath md solo se encarga de enrutar las solicitudes de E/S al dispositivo adecuado y de gestionar los fallos en la ruta activa. No intenta averiguar si una ruta que ha fallado anteriormente podría volver a funcionar. Eso es lo que hace este demonio. Al iniciarse, lee el estado actual de las matrices de RAID md, guarda ese estado y, a continuación, espera a que el núcleo le diga que ha ocurrido algo interesante. A continuación, se activa, comprueba si ha fallado alguna ruta de un dispositivo multipath y, si es así, empieza a sondear la ruta fallida una vez cada 15 segundos hasta que vuelve a funcionar. Una vez que comience a funcionar nuevamente, el demonio agregará nuevamente la ruta al dispositivo md multiruta del que originalmente era parte como una nueva ruta de repuesto.
Si se utiliza el sistema de archivos / proc , /proc/mdstat enumera todos los dispositivos md activos con información sobre ellos. Mdmpd requiere esto para encontrar matrices para monitorear rutas, para recibir notificaciones de eventos interesantes y para monitorear la reconstrucción de matrices en el modo Monitor. [13]
Los datos de un volumen RAID 1 son los mismos que los de una partición normal. La información RAID se almacena en los últimos 128 kB de la partición. Esto significa que, para convertir un volumen RAID 1 en una partición de datos normal, es posible reducir el tamaño de la partición en 128 kB y cambiar el ID de la partición de fd a 83 (para Linux).
linux.