lvrename en hpux
Es una pena que en hpux no exista el comando lvrename que sí que existe en Linux mediante el cual podemos renombrar el nombre a un lvol.
Aunque no exista el comando lvrename como tal, podemos realizar un workaround para renombrar el lvol:
Lo primero de todo será desmontar el lvol sobre el que vamos a trabajar:
host:/root (root) #bdf /mnt Filesystem kbytes used avail %used Mounted on /dev/vg00/lvignite 5259264 68107 4866719 1% /mnt host:/root (root) #umount /dev/vg00/lvignite
Ahora tomamos nota del minor que tiene el lvol que queremos renombrar:
host:/root (root) #ls -la /dev/vg00/lvignite brw-r----- 1 root sys 64 0x00000a Jul 24 2007 /dev/vg00/lvignite
Borramos el fichero de dispositivo del lvol y su raw device asociado:
host:/root (root) #rm /dev/vg00/lvignite
host:/root (root) #rm /dev/vg00/rlvignite
Y ahora lo que tendremos que hacer es recrear los ficheros de dispositivo mediante mknod. Podremos ponerle el nombre que queramos siempre y cuando le pongamos el mismo minor y major que hemos visto antes.
Para recrear los ficheros de dispositivos, lo haremos mediante el comando mknod.
El uso del mknod es el siguiente:
mknod name b|c major minor
Donde name es el nombre del fichero de dispositivo a crear, “b” para crear el fichero de acceso en modo bloque o “c” para acceso en modo caracter (raw). El major cuando trabajamos con lvm siempre es 64. Este dato lo sacamos viendo el driver que usa lvm:
host:/root (root) #lsdev | grep -iE "driver|lvm"
Character Block Driver Class
64 64 lv lvm
y el minor lo hemos obtenido previamente del lvol a modificar por lo que ya tenemos todos los datos para crear los ficheros de dispositivos.
host:/root (root) #mknod /dev/vg00/lvrenamed b 64 0x00000a host:/root (root) #mknod /dev/vg00/rlvrenamed c 64 0x00000a
Ahora, haciendo un lvdisplay podemos ver que los cambios se han ejecutado correctamente:
host:/root (root) #lvdisplay /dev/vg00/lvrenamed --- Logical volumes --- LV Name /dev/vg00/lvrenamed VG Name /dev/vg00 LV Permission read/write LV Status available/syncd Mirror copies 0 Consistency Recovery MWC Schedule parallel LV Size (Mbytes) 5136 Current LE 642 Allocated PE 642 Stripes 0 Stripe Size (Kbytes) 0 Bad block on Allocation strict IO Timeout (Seconds) default host:/root (root) #mount /dev/vg00/lvrenamed /mnt host:/root (root) #bdf /dev/vg00/lvrenamed Filesystem kbytes used avail %used Mounted on /dev/vg00/lvrenamed 5259264 68107 4866966 1% /mnt
Viendo que esto ha funcionado, tambien podemos hacer un simple mv de los dos ficheros de acceso al lvol que funcionará por igual:
host:/dev/vg00 (root) #umount /mnt host:/dev/vg00 (root) #mv /dev/vg00/lvrenamed /dev/vg00/lvtest host:/dev/vg00 (root) #mv /dev/vg00/rlvrenamed /dev/vg00/rlvtest host:/dev/vg00 (root) #lvdisplay /dev/vg00/lvtest --- Logical volumes --- LV Name /dev/vg00/lvtest VG Name /dev/vg00 LV Permission read/write LV Status available/syncd Mirror copies 0 Consistency Recovery MWC Schedule parallel LV Size (Mbytes) 5136 Current LE 642 Allocated PE 642 Stripes 0 Stripe Size (Kbytes) 0 Bad block on Allocation strict IO Timeout (Seconds) default
Hemos podido ver como aun no existiendo lvrename, podemos cambiar el nombre a un lvol. Esto lo podremos hacer mediante mknod o con un simple mv.
Hola, creo que es más comodo renombrar los ficheros de dispositivo con el nuevo nombre, no es necesario borrarlos y volver a crearlos, es más laborioso para llegar al mismo sitio.
Un saludo
Tienes toda la razón, el atajo de renombrar es mucho más rápido, lo único que al no encontrar información al respecto, quise hacer la prueba de lo que teóricamente a nivel LVM debía de funcionar