En origen el término viene de gestor de volúmenes Veritas. Por ello es el que utiliza HP-UX pero también es la que adoptó el Kernel de Linux.
Estos son los pasos a realizar en HP-UX cuando le ofreces un disco:
1.-Hacer que que el nucleo del S.O. vea el disco:
ioscan -fnC disk
Mejora en HP-UX 11.31:
En esta versión tenemos la opción de hacer ioscan -m dsf
Esto nos facilita mucho las cosas porque nos agrupa lo diferentes PATH a un mismo disco de forma que no tenemos que andar eligiendo un prefered path y los alternates.
aizkorri:/# ioscan -m dsf
Persistent DSF Legacy DSF(s)
========================================
.........
/dev/rdisk/disk128
/dev/rdsk/c30t0d7
/dev/rdsk/c28t0d7
/dev/rdsk/c36t0d7
/dev/rdsk/c38t0d7
/dev/rdsk/c40t0d7
/dev/rdsk/c42t0d7
/dev/rdsk/c32t0d7
/dev/rdsk/c34t0d7
A partir de ahora nos referiremos a ese disco como /dev/rdisk/disk128
o /dev/disk/disk128 según corresponda.
2.-Crear los ficheros de dispositivo:
insf
Otras opciones para utilizar (con cuidado):
insf -e
insf -C disk
3.-Mirar la descripción de los nuevos discos que haya encontrado:
ioscan -fnC disk
Un disco que se vea como /dev/dsk/c36t0d1
tiene como instancia de controladora: 36
el target 0
y lun 1
En caso de duda podemos consultar información del disco. Para ello hay que hacer referencia a RDSK en lugar de DSK:
diskinfo /dev/rdsk/c36t0d1
4.-Crear el disco físico (physical volume):
pvcreate /dev/rdsk/c36t0d1
Se puede utilizar la opción -f para forzar, pero cuidado, no pide confirmación.
Si no se hace el pvcreate y luego se intenta utilizar el disco en un LVM volume group, devolverá el error: "Physical volume contains no LVM information".
5.-Creación del Volume Group (VG):
Creamos un directorio con el nombre del vg:
mkdir /dev/vgprueba
Ahora hay que comprobar una numeración. Hacemos esto:
ll /dev/vg*/group
Que nos mostrará algo así:
0x000000 /dev/vg00/group
0x010000 /dev/vgXXXX/group
0x020000 /dev/vgYYYY/group
0x030000 /dev/vgZZZZ/group
Bueno, en este ejemplo está claro que nuestro nuevo vg llevará la numeración 0x040000
Creamos el fichero group:
mknod /dev/vgprueba/group c 64 0x040000
Y ya podemos crear el nuevo VG:
Supongamos que el nuevo disco se ve por dos caminos de fibra diferentes. Uno se ve como c36t0d1 y el otro c28t0d1.
vgcreate /dev/vgprueva /dev/dsk/c36t0d1 /dev/dsk/c28t0d1
En discos muy grandes puede ocurrir que con el tamaño de extensión por defecto (demasiado pequeño) se llegue al máximo de extensiones posible:
El máximo número de extensiones es 1.016 y el tamaño por defecto de la extensión 4 Mb.
"Volume group could not be created:
VGRA for the disk is too big for the specified parameters. Increase the extent size or decrease max_PVs/max_LVs and try again".
Podemos aumentar el tamaño de la extensión a 32 Mb:
vgcreate -s 32 /dev/vgprueba /dev/dsk/c36t0d1 /dev/dsk/c28t0d1
Para ver como está el VG:
vgdisplay -v /dev/vgprueba
6.-Creación del Volumen Lógico: Logical Volume (LV):
Sobre el VG vgprueba, creamos un LV llamado lvprueba de 1.000 extensiones de 32 Mb (32.000 Mb):
lvcreate -l 1000 -n lvprueba vgprueba
También se puede crear un LV sin asignarle ninguna extensión y extenderlo más adelante:
lvcreate -n lvprueba vgprueba
lvextend -L 500 /vgprueba/lvprueba /dev/dsk/c28t0d1
7.-Creación del filesystem de tipo vxfs:
Con la opción -o podemos indicar que queremos que pueda albergar ficheros grandes (de más de 2 Gb).
newfs -F vxfs -o largefiles /dev/vgprueba/rlvprueba
8.-Montaje:
mkdir /directorio
mount /dev/vgprueba/lvprueba /directorio
Más cosas sueltas:
Para añadir un disco (PV) a un VG que ya existe:
# vgextend vgprueba /dev/dsk/c0t5d0
# vgdisplay -v vgprueba
Para crear un LV con un tamaño determinado:
# lvcreate -n lvprueba -L 500 vgprueba
En cuanto a los PV (physical volume) se pueden modificar algunas características:
El IO timeout suele ser de 30 segundos (lo que tiene que esperar el S.O. antes de considerar que el disco está offline), pero en el caso de algunos arrays de discos hace falta subirlo:
pvchange -t 120 /dev/dsk/c28t0d1
Para restaurar el valor por defecto:
pvchange -t 0 /dev/dsk/c28t0d1
En algún momento tendremos que ampliar un LV (Logical Volume):
Para ampliar de 100 Mb a 200Mb por ejemplo:
lvextend -L 200 /dev/vgprueba/lvprueba
Opcionalmente le podemos indicar el dispositivo:
lvextend -L 200 /dev/vgprueba/lvprueba /dev/dsk/c28t0d1
Después de extender el LV, podemos extender el FS (FileSystem):
umount /dev/vgprueba/lvprueba
extendfs /dev/vgprueba/rlvprueba
mount /dev/vgprueba/lvprueba /dir-prueba
Si tenemos licencia de Online JFS hay muchas cosas que podemos hacer sin desmontar filesystems. Esta de extender el filesystem es una de ellas:
fsadm -v 200000 /dir-prueba
Nota: el tamaño está dado en Kb.
Para reducir el tamaño tendríamos que reducirlo con el fsadm del OnlineJFS y luego un lvreduce:
lvreduce -L 100 /dev/vgprueba/lvprueba
Sin OnlineJFS tenemos una pequeña complicación, ya que no podemos reducir el filesystem. Tendremos que hacer un backup, crear un nuevo LV y FileSystem y recuperar los datos.
Cambiar el nombre de un LV es más sencillo de lo que parece. Símplemente movemos los devices:
umount /dev/vgprueba/lvprueba
mv /dev/vgprueba/lvprueba /dev/vgprueba/lvnuevo
mv /dev/vgprueba/rlvprueba /dev/vgprueba/rlvnuevo
mount /dev/vgprueba/lvnuevo /dir-prueba
Modificaciones del VG:
Hay parámetros que no podremos modificar (por ejemplo el max_pe). En estos casos hay que recrear el VG.
Lo que sí podremos hacer es renombrar el VG:
Para ello, además de desmontar los LV tendremos que deshabilitar el VG con el comando vgchange:
# umount /dev/vgprueba/lvprueba1
# umount /dev/vgprueba/lvprueba2
# vgchange -a n vgprueba
La opción a es availability y la "n" indica NO. (el comando contrario es vgchange -a y vgprueba).
Ahora exportamos a un fichero la configuración del VG:
# vgexport -m /tmp/mapfile vgprueba
Ahora vemos las numeraciones asignadas a los vg-s para ver cual sería el siguiente correlativo
# ll /dev/vg*/group
Creamos el nuevo directorio y el fichero group con el número correlativo siguiente (he puesto como ejemplo el 0x080000):
# mkdir /dev/vgnuevo
# mknod /dev/vgnuevo/group c 64 0x080000
Importamos la configuración en el nuevo VG al que le asociamos los devices:
# vgimport -m /tmp/mapfile vgnuevo /dev/dsk/c40t3d0 /dev/dsk/c5t2d1 ...
Eliminar un LV:
#umount /datos
#lvremove /dev/vgoracle/lvoradata
Quitar un PV de un VG:
#vgreduce vgoradata /dev/dsk/c10t4d8
Eliminar un VG:
Desmontar todos los LV que tenga:
#umount /dev/vgoradata/lvredolog1
#umount /dev/vgoradata/lvredolog2
Desactivarlo:
#vgchange -a n vgoradata
Nota importante: Para eliminar el VG habría que hacer vgreduce, pero hazlo sólo si sabes lo que haces. Si hacemos vgexport de la siguiente forma, la configuración permanecerá almacenada en el disco por si hay que montarlo otra vez.
#vgexport vgoradata
Otros comandos de interés:
# vgcfgbackup vgnew
No hay comentarios:
Publicar un comentario