Hoy les presentare, estimados lectores, como solucionar uno de los grandes problemas con el mapeo de unidades ISCSi, la persistencia de nombres.
Generalmente al montar unidades ISCSi al reiniciar el equipo se modifica el nombre del disco, o se cruzan como es en mi caso, a saber /dev/sda se convierte en /dev/sdb al reiniciar un servidor y viceversa.
Esto se hace mediante el servicio udev, le definimos que por cada UUID de unidad ISCSi le asigne siempre el mismo dispositivo (/dev/iscsi0 /dev/iscsi1 o lo que fuere)
Primero se debe obtener el id de los discos. Se debe ejecutar el siguiente comando
scsi_id -g -u -s /block/sdaRecordar apuntar a /block y no a /dev, esto se podria ver tambien ejecutando fdisk -l y cambiar el /dev por /block:
[root@remo ~]# fdisk -l
Disk /dev/xvdd: 117 MB, 117549056 bytes
255 heads, 63 sectors/track, 14 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/xvdd doesn't contain a valid partition table
Disk /dev/xvda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/xvda1 * 1 13 104391 83 Linux
/dev/xvda2 14 2610 20860402+ 8e Linux LVM
Disk /dev/sda: 12.5 GB, 12582912000 bytes
64 heads, 32 sectors/track, 12000 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sda doesn't contain a valid partition table
Disk /dev/sdb: 14.6 GB, 14696841216 bytes
64 heads, 32 sectors/track, 14016 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk /dev/sdb doesn't contain a valid partition table
Entonces, para obtener el UUID del disco se debe ejecutar
scsi_id -g -u -s /block/sda
14f504e46494c45524a5a5471534c2d4f69724e2d6e546164
scsi_id -g -u -s /block/sdbApuntar los UUID que seran usados mas adelante...
14f504e46494c45524a6b705679642d63366b312d41673268
Ahora, se debe crear un nuevo archivo dentro de /etc/udev/rules.d llamado
20-names.rules
La sintaxis es la siguiente:
KERNEL=="sd*", BUS=="scsi", PROGRAM="sbin/scsi_id", RESULT=="14f504e46494c45524a5a5471534c2d4f69724e2d6e546164", NAME="iscsi0"o sea que en mi caso /dev/sdb va a llamarse /dev/iscsi1 y /dev/sda se va a llamar /dev/iscsi0
KERNEL=="sd*", BUS=="scsi", PROGRAM="sbin/scsi_id", RESULT=="14f504e46494c45524a6b705679642d63366b312d41673268", NAME="iscsi1"
Editar el archivo /etc/scsi_id.config, comentar todas las lineas y agregar lo siguiente (en negrita)
#
# options=
# vendor=string[,model=string],options=
# some libata drives require vpd page 0x80
options=-g
Sin hacer esto NO FUNCIONA asi que no olvidarlo!!!
Ahora se debe editar el archivo /etc/rc.local y agregar /sbin/start_udev
Reiniciar el equipo y listo!
No olvidar de cambiar el /etc/fstab porque /dev/sda y /dev/sdb no existen mas luego del cambio
No hay comentarios:
Publicar un comentario