Red Hat Enterprise Linux admite de forma nativa el almacenamiento que tiene varias rutas presentadas al sistema operativo. Configurar CentOS/RHEL para usar la funcionalidad de rutas múltiples es un proceso sencillo:
Instalación
Si aún no está instalado, instale el paquete device-mapper-multipath:
# yum install device-mapper-multipath
Ubicación de dispositivos multirruta
Cuando los dispositivos se colocan bajo el control de device-mapper-multipath, los nuevos dispositivos multirrutas se pueden ver en tres lugares diferentes en el directorio /dev:
1. /dev/dm-N
2. /dev/mapper/mpathN
3. /dev/mpath/mpathN
Los dispositivos /dev/dm-N son internos del mapeador de dispositivos y nunca deben usarse. Estos dispositivos no son persistentes. A partir de CentOS/RHEL 5, udev ya no crea estos dispositivos. Los dispositivos /dev/mpath/mpathN se proporcionan en RHEL 4 y 5 para que todos los dispositivos de múltiples rutas se puedan ver en un solo lugar; este directorio ya no existe en RHEL 6. Sin embargo, es posible que estos nodos de dispositivos no se creen en el arranque antes de que el sistema necesite acceder a ellos. Por lo tanto, no deben usarse para crear volúmenes físicos para grupos de volúmenes o particiones con sistemas de archivos en aquellas versiones en las que esté disponible.
Los dispositivos /dev/mapper/mpathN son persistentes y se crean al principio del proceso de arranque. Por lo tanto, estos son los nombres de dispositivos que se deben usar para acceder a los dispositivos de múltiples rutas.
Habilitación de rutas múltiples del mapeador de dispositivos
Genere un /etc/multipath.conf predeterminado archivo usando el comando mpathconf. Para determinar la configuración predeterminada para la versión instalada, use la opción de ayuda:
# mpathconf --help usage: /usr/sbin/mpathconf [command] Commands: Enable: --enable Disable: --disable Set user_friendly_names (Default n): --user_friendly_names [y|n] Set find_multipaths (Default n): --find_multipaths [y|n] Load the dm-multipath modules on enable (Default y): --with_module [y|n] start/stop/reload multipathd (Default n): --with_multipathd [y|n] chkconfig on/off multipathd (Default y): --with_chkconfig [y|n]
Las opciones que por defecto tienen el valor requerido no necesitan especificarse en la línea de comando. Por ejemplo, para habilitar rutas múltiples con la función de nombres descriptivos dejando todas las demás opciones configuradas en los valores predeterminados, emita el siguiente comando:
# mpathconf --enable --user_friendly_names y
Incluir en la lista negra los dispositivos
La multirruta del mapeador de dispositivos admite una serie de mecanismos para permitir la inclusión en la lista negra de dispositivos que cumplen ciertos criterios. Un dispositivo incluido en la lista negra se omitirá al detectar y crear dispositivos de múltiples rutas. Un uso de este mecanismo es excluir dispositivos locales (discos integrados o medios extraíbles, por ejemplo) de la configuración de rutas múltiples. Esto permite que esos dispositivos continúen utilizándose como dispositivos normales de ruta única sin interferencia del subsistema de rutas múltiples.
La multirruta del mapeador de dispositivos también incluye una lista negra integrada para excluir dispositivos que no admiten múltiples rutas. Esta lista está preconfigurada y no es necesario incluirla en multipath.conf para que sea efectiva. El conjunto actual de listas negras integradas es el siguiente:
blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" }
Función find_multipaths
Las versiones de multirruta del mapeador de dispositivos en Red Hat Enterprise Linux 6 y posteriores incluyen la función 'find_multipaths'. Esto excluye cualquier dispositivo de la configuración de rutas múltiples hasta que se hayan detectado al menos dos rutas al dispositivo simultáneamente. Esta es una alternativa efectiva a las listas negras manuales que requiere menos configuración y mantenimiento para escenarios comunes. La función se habilita agregando la siguiente línea a la sección "predeterminada" global de multipath.conf:
defaults { ... find_multipaths yes ... }
Detección y configuración de dispositivos multirruta
Ahora se ha creado un archivo multipath.conf básico y se ha rellenado con la configuración adecuada para el sistema después de la instalación de los paquetes necesarios. Ejecute el comando multirruta para detectar y configurar dispositivos multirruta:
# multipath mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running
El comando puede imprimir información adicional que puede ser útil para diagnosticar problemas o crear configuraciones personalizadas. Esto incluye información sobre la configuración de la lista negra y la coincidencia de los dispositivos de almacenamiento con las configuraciones integradas. Especificar una opción detallada con la opción -v[número] habilita esta salida adicional:
Nov 04 16:48:56 | Found matching alias [mpatha] in bindings file. Setting wwid to 3600601608e661a00e4710bf88370e211 Nov 04 16:48:56 | ram0: device node name blacklisted Nov 04 16:48:56 | ram1: device node name blacklisted Nov 04 16:48:56 | ram2: device node name blacklisted Nov 04 16:48:56 | ram3: device node name blacklisted Nov 04 16:48:56 | ram4: device node name blacklisted Nov 04 16:48:56 | ram5: device node name blacklisted Nov 04 16:48:56 | ram6: device node name blacklisted Nov 04 16:48:56 | ram7: device node name blacklisted Nov 04 16:48:56 | ram8: device node name blacklisted Nov 04 16:48:56 | ram9: device node name blacklisted Nov 04 16:48:56 | ram10: device node name blacklisted Nov 04 16:48:56 | ram11: device node name blacklisted Nov 04 16:48:56 | ram12: device node name blacklisted Nov 04 16:48:56 | ram13: device node name blacklisted Nov 04 16:48:56 | ram14: device node name blacklisted Nov 04 16:48:56 | ram15: device node name blacklisted Nov 04 16:48:56 | loop0: device node name blacklisted Nov 04 16:48:56 | loop1: device node name blacklisted Nov 04 16:48:56 | loop2: device node name blacklisted Nov 04 16:48:56 | loop3: device node name blacklisted Nov 04 16:48:56 | loop4: device node name blacklisted Nov 04 16:48:56 | loop5: device node name blacklisted Nov 04 16:48:56 | loop6: device node name blacklisted Nov 04 16:48:56 | loop7: device node name blacklisted Nov 04 16:48:56 | sr0: device node name blacklisted Nov 04 16:48:56 | sda: device node name blacklisted Nov 04 16:48:56 | sdc: not found in pathvec Nov 04 16:48:56 | sdc: mask = 0x3f Nov 04 16:48:56 | sdc: dev_t = 8:32 Nov 04 16:48:56 | sdc: size = 10485760 Nov 04 16:48:56 | sdc: subsystem = scsi Nov 04 16:48:56 | sdc: vendor = DGC Nov 04 16:48:56 | sdc: product = RAID 5 Nov 04 16:48:56 | sdc: rev = 0220 Nov 04 16:48:56 | sdc: h:b:t:l = 3:0:0:1 Nov 04 16:48:56 | sdc: tgt_node_name = 0x50060160ba601693 Nov 04 16:48:56 | sdc: serial = FCNPR063600652 Nov 04 16:48:56 | sdc: get_state Nov 04 16:48:56 | loading /lib64/multipath/libcheckemc_clariion.so checker
Muestre y revise la configuración especificando las opciones '-l' o '-ll' en el comando de rutas múltiples:
# multipath -ll mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running