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.
Comentarios recientes