Cuando trabajamos con multipath es crítico que si varios sistemas acceden a los mismos volúmenes/discos en multipath, el nombre del mapeo sea persistente y el mismo entre todos. Es decir, evitar que cuando se añadan o quiten dispositivos en el sistema el identificador del mapeo pueda cambiar y afectar a todo lo que ataca al disco. El binding de multipath es persistente dentro de un mismo sistema, pero cuando trabajamos con varios servidores nos vemos obligados a homogeneizar los nombres.
Antes de nada, os recomiendo leer el artículo que hice sobre DM-Multipath en RedHat y CentOS porque os dirá como instalar, configurar y utilizar multipath.
Una vez leído, hay que saber que se pueden forzar de forma persistente los nombres de los mapeos a través del archivo de configuración /etc/multipath.conf. Lo haremos dentro de un bloque llamado «multipaths» que contendrá la declaración de cada multipath junto con su nombre persistente y su WWID (World Wide Identifier).
Por defecto, la nomenclatura para los mpaths es mpath[a-z]. Si queremos averiguar los WWID de cada mapeo simplemente accedemos a la shell de multipath y lo consultamos:
# multipathd -k multipathd> show multipaths name sysfs uuid mpatha dm-5 a2asdq34addd13fee4f2027800011011 mpathb dm-6 asd34fsdfsdf13fee4f2027800011012
También lo podemos visualizar consultando el estado de los caminos:
# multipath -ll mpatha (a2asdq34addd13fee4f2027800011011) dm-6 PURE,FlashArray size=500G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 0:0:0:11 sdb 8:16 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 3:0:0:11 sdd 8:48 active ready running mpathb (asd34fsdfsdf13fee4f2027800011012) dm-5 PURE,FlashArray size=500G features='0' hwhandler='0' wp=rw |-+- policy='round-robin 0' prio=1 status=active | `- 0:0:0:10 sda 8:0 active ready running `-+- policy='round-robin 0' prio=1 status=enabled `- 3:0:0:10 sdc 8:32 active ready running
Sólo queda entonces añadir la configuración correspondiente en el archivo de configuración y reiniciar el demonio multipathd. En este caso los vamos a llamar volumen01 y volumen02:
/etc/multipath.conf
multipaths { multipath { wwid "a2asdq34addd13fee4f2027800011011" alias volumen01 } multipath { wwid "asd34fsdfsdf13fee4f2027800011012" alias volumen02 } }
# /etc/init.d/multipathd restart
Y ya vemos los nuevos nombres persistentes:
multipathd> show multipaths name sysfs uuid volumen01 dm-5 a2asdq34addd13fee4f2027800011011 volumen02 dm-6 asd34fsdfsdf13fee4f2027800011012
# ls -l /dev/mapper/ total 0 lrwxrwxrwx 1 root root 7 Dec 11 08:27 volumen01 -> ../dm-6 lrwxrwxrwx 1 root root 7 Dec 11 08:27 volumen02 -> ../dm-5
Yo más que hacer un restart del multipathd, hago un reload… parece menos invasivo y peligroso (especialmente cuando tienes boot from SAN).
Buen apunte. Gracias tsao!