Hoy vamos a ver una introducción y la forma de activar Multipath en RedHat y derivados (CentOS, Scientific Linux…). Si todo va bien, y la cabina que nos sirve los discos está soportada por defecto por DM-Multipath es probable que no necesitemos apenas configuraciones manuales. Básicamente, el multipath lo que hace es ofrecer tolerancia a fallos y alta disponibilidad, ofreciendo más de un camino entre el sistema y los discos servidos por una SAN. Por ejemplo, cuando la conexión se hace a través de dos o más puertos Fiber Channel o cuando un disco SCSI está conectado a dos controladoras distintas.
Instalación y configuración inicial de DM-Multipath
Lo primero realizamos la instalación a través de yum:
# yum install device-mapper-multipath
Activamos su inicio automático:
# chkconfig multipathd on
mpathconf nos permite realizar una primera configuración del servicio, creando el fichero de configuración, ya sea con los valores por defecto o especificando unas directivas concretas. Para crear una configuración estándar:
# mpathconf --enable
Este otro ejemplo arrancaría dm-multipath con una configuración de failover estándar y activa el fichero de configuración:
# mpathconf --enable --with_multipathd y
Revisad la página man de mpathconf para más información. Posteriormente ya deberíamos tener el demonio de multipath. Para arrancar, parar y demás podéis usar el script de init.d como cualquier otro servicio.
# ps aux | grep multipath root 17284 1.0 0.0 493756 4432 ? SLl 04:24 0:00 /sbin/multipathd
Algo importante a tener en cuenta es la necesidad de incluir como «blacklist» los discos locales en el fichero de configuración. Si por ejemplo son los sdaX añadimos «sda» a la sección blacklist. De este modo multipath ignorará estos discos y no buscará más de un camino para ellos:
blacklist { wwid 26353900f02796769 devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|sda|st)[0-9]*" devnode "^hd[a-z]" }
El fichero de configuración es lo suficientemente descriptivo para que podáis revisar cada una de las opciones.
Administración y monitorización de DM-Multipath
Si las LUN o discos que queremos tener en multipath se ven con un fdisk, el mapeo debería haberse configurado automáticamente como /dev/mapper/mpathb, /dev/mapper/mpathc…, sino, antes hay que revisar porqué el sistema no visualiza los discos. Si no se trata de controladoras o cabinas conocidas o soportadas, es probable que haya que realizar alguna configuración manual, en la mayoría de los casos el mapping debería ser automático.
La mejor forma de ver el estado del multipath es entrando en la «shell» de multipath, lo hacemos del siguiente modo:
# multipathd -k multipathd>
Una vez dentro, algunos de los comandos más útiles son los siguientes:
Ver el estado de los path:
multipathd> show multipaths status name failback queueing paths dm-st write_prot mpathb immediate - 4 active rw
Ver todos los multipath disponibles y mappings. En este caso hay dos mappings, cada uno con cuatro caminos:
multipathd> show multipaths name sysfs uuid mpathb dm-0 360a98000572d4275525a693862534571 mpathc dm-1 360a98000572d4275525a693875677278 multipathd> show maps name sysfs uuid mpathb dm-0 360a98000572d4275525a693862534571 mpathc dm-1 360a98000572d4275525a693875677278
Ver todos los path:
multipathd> show paths hcil dev dev_t pri dm_st chk_st dev_st next_check 1:0:0:0 sdb 8:16 4 active ready running XXXXXXXXXX 20/20 1:0:0:1 sdc 8:32 4 active ready running XXXXXXXXXX 20/20 2:0:0:0 sdd 8:48 4 active ready running XXXXXXXXX. 19/20 2:0:0:1 sde 8:64 4 active ready running .......... 1/20 2:0:1:0 sdf 8:80 1 active ready running XXXXXXXXX. 18/20 2:0:1:1 sdg 8:96 1 active ready running XXXXXXXXXX 20/20 1:0:1:0 sdh 8:112 1 active ready running XXXXXXXXX. 18/20 1:0:1:1 sdi 8:128 1 active ready running XXXXXXXXX. 19/20
Ver la topología y políticas configuradas para cada multipath. En este caso vemos dos LUN de fibra de 300G servidas por una cabina de discos NetAPP, con política round-robin 0 y todos sus path activos:
multipathd> show topology mpathb (360a98000572d4275525a693862534571) dm-0 NETAPP,LUN size=301G features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=4 status=active | |- 1:0:0:0 sdb 8:16 active ready running | `- 2:0:0:0 sdd 8:48 active ready running `-+- policy='round-robin 0' prio=1 status=enabled |- 2:0:1:0 sdf 8:80 active ready running `- 1:0:1:0 sdh 8:112 active ready running mpathc (360a98000572d4275525a693875677278) dm-1 NETAPP,LUN size=301G features='1 queue_if_no_path' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=4 status=active | |- 1:0:0:1 sdc 8:32 active ready running | `- 2:0:0:1 sde 8:64 active ready running `-+- policy='round-robin 0' prio=1 status=enabled |- 2:0:1:1 sdg 8:96 active ready running `- 1:0:1:1 sdi 8:128 active ready running
Si escribís help dentro de esta shell veréis todos los comandos disponibles, podemos gestionar completamente el multipath desde aquí. Podemos suspender un camino, ponerlo en estado ‘fail’, eliminarlo, etc:
multipathd> help multipath-tools v0.4.9 (04/04, 2009) CLI commands reference: list|show paths list|show paths format $format list|show status list|show daemon list|show maps|multipaths list|show maps|multipaths status list|show maps|multipaths stats list|show maps|multipaths format $format list|show maps|multipaths topology list|show topology list|show map|multipath $map topology list|show config list|show blacklist list|show devices list|show wildcards add path $path remove|del path $path add map|multipath $map remove|del map|multipath $map switch|switchgroup map|multipath $map group $group reconfigure suspend map|multipath $map resume map|multipath $map resize map|multipath $map disablequeueing map|multipath $map restorequeueing map|multipath $map disablequeueing maps|multipaths restorequeueing maps|multipaths reinstate path $path fail path $path paths count quit|exit
Esto ha sido una mera introducción, para profundizar en el tema, os recomiendo la lectura de los siguientes artículos. Próximamente veremos como configurar desde 0 una LUN FC servida NetAPP en Multipath y asignarle un filesystem.
Un comentario en “DM-Multipath en RedHat y CentOS”
Comments are closed.