Modificación del path de un disco con reglas de udev

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email

Como administrador de Linux RedHat, suelo recibir peticiones de los administradores de Oracle para configurar discos con un path y una nomenclatura concreta para su uso en Oracle RAC.

Como sabemos, la ruta por defecto de los discos configurados en multipath es /dev/mapper/Nombre_del_disco:

[root]# ll /dev/mapper |head
total 0
lrwxrwxrwx 1 root root 8 Feb 17 01:32 backup -> ../dm-12
crw-rw---- 1 root root 10, 58 Feb 8 11:14 control
lrwxrwxrwx 1 root root 7 Feb 24 01:30 DG_DWHE_DADES_01 -> ../dm-9
lrwxrwxrwx 1 root root 35 Feb 24 07:57 DG_DWHE_DADES_01p1 -> ../oracleasm/disks/DG_DWHE_DADES_01
lrwxrwxrwx 1 root root 7 Feb 24 01:30 DG_DWHE_DADES_02 -> ../dm-7
lrwxrwxrwx 1 root root 35 Feb 24 07:57 DG_DWHE_DADES_02p1 -> ../oracleasm/disks/DG_DWHE_DADES_02
lrwxrwxrwx 1 root root 7 Feb 24 01:30 DG_DWHE_DADES_03 -> ../dm-8
lrwxrwxrwx 1 root root 35 Feb 24 07:57 DG_DWHE_DADES_03p1 -> ../oracleasm/disks/DG_DWHE_DADES_03
lrwxrwxrwx 1 root root 7 Feb 24 01:30 DG_DWHE_DADES_04 -> ../dm-5
[root]#

Pero el equipo de Oracle RAC siempre nos pide que el acceso a los discos esté en /dev/oracleasm/disks:

[[email protected] disks]# pwd
/dev/oracleasm/disks
[[email protected] disks]# ll |head
total 0
brw-rw---- 1 oracle root 253, 33 Feb 24 08:18 DG_DWHE_DADES_01
brw-rw---- 1 oracle root 253, 32 Feb 24 08:16 DG_DWHE_DADES_02
brw-rw---- 1 oracle root 253, 34 Feb 24 08:15 DG_DWHE_DADES_03
brw-rw---- 1 oracle root 253, 29 Feb 24 08:18 DG_DWHE_DADES_04
brw-rw---- 1 oracle root 253, 40 Feb 24 08:18 DG_DWHE_FRA_01
brw-rw---- 1 oracle root 253, 38 Feb 24 08:16 DG_DWHE_FRA_02
brw-rw---- 1 oracle root 253, 39 Feb 24 08:16 DG_DWHE_FRA_03
brw-rw---- 1 oracle root 253, 31 Feb 24 08:18 DG_E13BDE_DADES_01
brw-rw---- 1 oracle root 253, 30 Feb 24 08:15 DG_E13BDE_DADES_02
[[email protected] disks]#

Para hacer esto, utilizo un script que, básicamente, crea una partición al disco y un enlace simbólico al nuevo nombre. Mejor os dejo el código fuente:

Hosting SSD
Hosting SSD
[root]# cat asm.sh
DISK=DG_EXPORT_03
#Particionamos el disco: 
(echo o; echo n; echo p; echo 1; echo ; echo; echo w) | fdisk /dev/mapper/$DISK
kpartx -a -v /dev/mapper/$DISK

#Lanzamos lo siguiente 
FILTER=DSK
OWNER=oracle
GROUP=asmadmin
DEST="oracleasm/disks"
multipath -ll | grep ${FILTER} | sort > /tmp/udev_asm.txt
cat /tmp/udev_asm.txt | while read disco 
do 
DISCO=`echo $disco | awk {'print $1'}`
DM=`ls -ln /dev/mapper/${DISCO}p1 | awk {'print "/dev/mapper/"$1'"p1"} | awk -F "/" '{ print $5 }'` 
WWID=$(echo $disco | awk -F "(" ' { print $2 } '| awk -F ")" ' { print $1 } ')
echo "KERNEL==\"dm-*\", ENV{DM_UUID}==\"part1-mpath-${WWID}\", NAME+=\"${DEST}/${DISCO}\", OWNER=\"${OWNER}\", GROUP=\"${GROUP}\", MODE=\"0660\""
done
[root]#

Seguidamente, editamos el fichero de reglas de udev para acceder al nuevo disco. Ejemplo:

RedHat 7:

[root]# head -1 /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*", ENV{DM_UUID}=="part1-mpath-360002ac000000000000000cf0000fa54", NAME+="oracleasm/disks/DG_OCRVOTE_01", OWNER="oracle", GROUP="asmadmin", MODE="0660"
[root]#

RedHat 8:

Cambia la directiva «NAME» por «SYMLINK».

[root]# head -1 /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*", ENV{DM_UUID}=="part1-mpath-360002ac000000000000000cf0000fa54", SYMLINK+="oracleasm/disks/DG_OCRVOTE_01", OWNER="oracle", GROUP="asmadmin", MODE="0660"
[root]#

Y las aplicamos con los siguientes comandos:

udevadm control --reload-rules
multipath -F
multipath

Te puede interesar

Eliminación de discos de Oracle RAC

¿Te ha gustado? Compártelo

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on email
About Author

Contenido Relacionado

Artículos Recientes

Deja un comentario