Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.3.2. Creación de un dispositivo Multipath con mdadm

In addition to creating RAID arrays, mdadm can also be used to take advantage of hardware supporting more than one I/O path to individual SCSI LUNs (disk drives). The goal of multipath storage is continued data availability in the event of hardware failure or individual path saturation. Because this configuration contains multiple paths (each acting as an independent virtual controller) accessing a common SCSI LUN (disk drive), the Linux kernel detects each shared drive once "through" each path. In other words, the SCSI LUN (disk drive) known as /dev/sda may also be accessible as /dev/sdb, /dev/sdc, and so on, depending on the specific configuration.
Para proporcionar un único dispositivo que pueda permanecer accesible si una E/S falla o se satura, mdadm incluye un parámetro adicional a su opción level. Este parámetro multipath dirige la capa md en el kernel de Linux a que redireccione las peticiones de E/S desde una ruta a otra en el evento de una falla de E/S.
Para crear un dispositivo multipath, modifique el archivo /etc/mdadm.conf para definir valores para las líneas DEVICE y ARRAY que reflejen la configuración de su hardware.

Nota

A diferencia del ejemplo anterior de RAID (donde cada dispositivo especificado en /etc/mdadm.conf debe representar unidades de disco físico diferentes), cada dispositivo en este archivo se refiere a la misma unidad de disco compartida.
El comando utilizado para la creación de un dispositivo multipath es similar a aquel utilizado para crear un dispositivo RAID, la diferencia está en el reemplazo de un parámetro de nivel RAID con el parámetro multipath.
mdadm -C /dev/md0 --level=multipath --raid-devices=4 /dev/sda1 /dev/sdb1  
 /dev/sdc1 /dev/sdd1
Continue creating array? yes
mdadm: array /dev/md0 started.
Due to the length of the mdadm command line, it has been broken into two lines.
En este ejemplo, el hardware consiste de un SCSI LUN presentado como cuatro dispositivos SCSI separados, cada uno accediendo al mismo almacenamiento a través de un camino diferente. Una vez creado el dispositivo /dev/md0, todas las operaciones de E/S que hacen referencia a /dev/md0 son dirigidas a /dev/sda1, /dev/sdb1, /dev/sdc1, o /dev/sdd1 (dependiendo de cual ruta esté actualmente activa y en operación).
Se puede examinar la configuración de /dev/md0 más de cerca usando el comando mdadm --detail /dev/md0, para verificar que es, de hecho, un dispositivo multipath:
/dev/md0:
Version : 00.90.00
Creation Time : Tue Mar  2 10:56:37 2004
Raid Level : multipath
Array Size : 3905408 (3.72 GiB 3.100 GB)
Raid Devices : 1
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Tue Mar  2 10:56:37 2004
State : dirty, no-errors
Active Devices : 1
Working Devices : 4
Failed Devices : 0
Spare Devices : 3

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       17        1      spare   /dev/sdb1
       2       8       33        2      spare   /dev/sdc1
       3       8        1        3      spare   /dev/sda1
           UUID : 4b564608:fa01c716:550bd8ff:735d92dc
         Events : 0.1
Otra característica de mdadm es la habilidad de forzar a un dispositivo (bien sea un miembro de una formación RAID o una ruta en una configuración multipath) a que sea eliminado de una configuración operativa. En el ejemplo siguiente, /dev/sda1 es marcado como defectuoso, luego eliminado y finalmente vuelto a añadir en la configuración. Para una configuración multipath, estas acciones no afectarán ninguna actividad de E/S que esté ocurriendo en ese momento:
# mdadm /dev/md0 -f /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
# mdadm /dev/md0 -r /dev/sda1
mdadm: hot removed /dev/sda1
# mdadm /dev/md0 -a /dev/sda1
mdadm: hot added /dev/sda1
#