miércoles, 31 de agosto de 2011

Creación e instalación de Integrity Virtual Machines

instalación del VMHost al ultimo nivel de patches disponibles

QPKAPPS               B.11.31.1103.361 Applications Patches for HP-UX 11i v3, March 2011
QPKBASE               B.11.31.1103.361 Base Quality Pack Bundle for HP-UX 11i v3, March 2011
HWEnable11i           B.11.31.1103.361a Hardware Enablement Patches for HP-UX 11i v3, March 2011
FEATURE11i            B.11.31.1103.361b Feature Enablement Patches for HP-UX 11i v3, March 2011

Luego instalamos los siguientes patches especificos para VMs
PHKL_41227  
PHSS_41191  
PHSS_41413  
PHSS_41543  
PHSS_41550

Instalamos los drivers de AVIO




Verificamos la instalacion del software y patches

vmhost1#check_patches
Obtaining information on installed patches
Checking for invalid patches
Checking object module checksums for active patch fileset   632 of   632
Checking patch filesets for active patch   351 of   351
Checking state for patch fileset   837 of   837
Checking patch_state for patch fileset   837 of   837
Checking load order of patch fileset   837 of   837
Running swverify on all patch filesets, this may take several minutes
RESULT: No problems found, review /tmp/check_patches.report for details.


Determinamos el disco para instalar las virtuales


Class     I  H/W Path  Driver S/W State   H/W Type     Description
===================================================================
disk      3  64000/0xfa00/0x0  esdisk   CLAIMED     DEVICE       HP 73.4GST373454LC
                      /dev/disk/disk3      /dev/rdisk/disk3
                      /dev/disk/disk3_p1   /dev/rdisk/disk3_p1
                      /dev/disk/disk3_p2   /dev/rdisk/disk3_p2
                      /dev/disk/disk3_p3   /dev/rdisk/disk3_p3
disk      4  64000/0xfa00/0x1  esdisk   CLAIMED     DEVICE       HP 73.4GST373454LC
                      /dev/disk/disk4   /dev/rdisk/disk4
disk      5  64000/0xfa00/0x2  esdisk   CLAIMED     DEVICE       TEAC    DV-28E-N
                      /dev/disk/disk5   /dev/rdisk/disk5

Identificamos como libre al disk4

Creamos el vg para alojar las virtuales

pvcreate /dev/rdisk/disk4
vgcreate -V 2.2 -s 16 -S 256g vgvm /dev/disk/disk4
Volume group "/dev/vgvm" has been successfully created.
Volume Group configuration for /dev/vgvm has been saved in /etc/lvmconf/vgvm.conf

Levantamos el servicio de HPVM si es que no esta levantado
vmhost1#./hpvm start

NOTA que el siguiente error se dio al estar activo el Hyperthreading
ERROR:   Integrity VM software cannot be started when hyperthreading is enabled
(getconf SC_HT_ENABLED). Use /usr/sbin/setboot -m off and reboot to enable
this system as an Integrity VM host.

Desactivamos el HT mediante ejecutando lo siguiente y luego rebooteamos
vmhost1#/usr/sbin/setboot -m off

Defino la vm con 4 vCPUs y un 50% Entitlement
vmhost1#hpvmcreate -P ttsprod -c 4 -e 50 -r 4G

Verifico la creación de la VM
vmhost1#hpvmstatus
[Virtual Machines]
Virtual Machine Name VM #  OS Type State     #VCPUs #Devs #Nets Memory  Rmt Host
==================== ===== ======= ========= ====== ===== ===== ======= ========
ttsprod                  1 UNKNOWN Off            4     0     0    4 GB        -

Creo el switch virtual y lo asigno a la VM

vmhost1#hpvmnet -c -S vmlan1 -n 0
vmhost1#hpvmmodify  -a network:avio_lan:vswitch:vmlan1 -P ttsprod
HPVM guest ttsprod configuration problems:
    Warning 1 on item vmlan1: Vswitch 'vmlan1' is not active.
These problems may prevent HPVM guest ttsprod from starting.
hpvmmodify: The modification process is continuing.

Booteo el switch para iniciarlo

vmhost1#hpvmnet -b -S vmlan1

Verifico la asignacion de la NIC a la VM

vmhost1#hpvmstatus
[Virtual Machines]
Virtual Machine Name VM #  OS Type State     #VCPUs #Devs #Nets Memory  Rmt Host
==================== ===== ======= ========= ====== ===== ===== ======= ========
ttsprod                  1 UNKNOWN Off            4     0     1    4 GB        -

Asigno un disco a la VM
vmhost1#hpvmmodify -P ttsprod -a disk:avio_stor::lv:/dev/vgvm/rlvttsprod

Configuro autoboot para la VM
vmhost1#hpvmmodify -P ttsprod -B auto

Creamos un LV para contener las imagenes instalables de HPUX

vmhost1#lvcreate -n lvimages -L 12000 vgvm
Logical volume "/dev/vgvm/lvimages" has been successfully created with
character device "/dev/vgvm/rlvimages".
Logical volume "/dev/vgvm/lvimages" has been successfully extended.
Volume Group configuration for /dev/vgvm has been saved in /etc/lvmconf/vgvm.conf
vmhost1#newfs -F vxfs -b 8192 /dev/vgvm/rlvimages
    version 7 layout
    12288000 sectors, 1536000 blocks of size 8192, log size 2048 blocks
    largefiles supported

Agregamos la entrada en el fstab
...
/dev/vgvm/lvimages /var/opt/hpvm/ISO-images vxfs delaylog 0 2

Montamos y verificamos

vmhost1#mount /dev/vgvm/lvimages
vmhost1#bdf /var/opt/hpvm/ISO-images
Filesystem          kbytes    used   avail %used Mounted on
/dev/vgvm/lvimages 12288000   18016 12174136    0% /var/opt/hpvm/ISO-images

Transferimos las imagenes ISO al VM host

Luego de transferir las imagenes al VM asignamos la imagen al guest
vmhost1#hpvmmodify -P ttsprod -a dvd:scsi::file:/var/opt/hpvm/ISO-images/hpux/HPUX11-31_Disk1.iso
vmhost1#hpvmstart -P ttsprod
hp(C) Copyright 2000 - 2010 Hewlett-Packard Development Company, L.P.
vmOpening minor device and creating guest machine container
Creation of VM, minor device 1
Allocating guest memory: 4096MB
  allocating low RAM (0-80000000, 2048MB)
/opt/hpvm/lbin/hpvmapp (/var/opt/hpvm/uuids/ec250e2e-434b-11e0-b105-00156004df18/vmm_config.next): Allocated 2147483648 bytes at 0x6000000100000000
    locking memory: 0-80000000
con  allocating high RAM (100000000-180000000, 2048MB)
/opt/hpvm/lbin/hpvmapp (/var/opt/hpvm/uuids/ec250e2e-434b-11e0-b105-00156004df18/vmm_config.next): Allocated 2147483648 bytes at 0x6000000200000000
    locking memory: 100000000-180000000
sole   allocating datalogger memory: FF800000-FF810000 (64KB for 53KB)
/opt/hpvm/lbin/hpvmapp (/var/opt/hpvm/uuids/ec250e2e-434b-11e0-b105-00156004df18/vmm_config.next): Allocated 65536 bytes at 0x6000000300000000
    locking datalogger memory
  allocating firmware RAM (fff00000-fff20000, 128KB)
/opt/hpvm/lbin/hpvmapp (/var/opt/hpvm/uuids/ec250e2e-434b-11e0-b105-00156004df18/vmm_config.next): Allocated 131072 bytes at 0x6000000300020000
    locked SAL RAM: 00000000fff00000 (8KB)
    locked ESI RAM: 00000000fff02000 (8KB)
    locked PAL RAM: 00000000fff04000 (8KB)
    locked Min Save State: 00000000fff06000 (16KB)
    locked datalogger: 00000000ff800000 (64KB)
Loading boot image
-Image initial IP=102000 GP=694000
Initialize guest memory mapping tables
Starting event polling thread
Starting thread initialization
Daemonizing....
P hpvmstart: Successful start initiation of guest 'ttsprod'
vmhost1#hpvmconsole -P ttsprod


   vMP MAIN MENU

         CO: Console
         CM: Command Menu
         CL: Console Log
         SL: Show Event Logs
         VM: Virtual Machine Menu
         HE: Main Help Menu
          X: Exit Connection

[ttsprod] vMP> co

Elegimos la opcion "Boot option maintenance menu"


Dentro del menu de mantenimiento, elegimos "Boot from file" y elegimos el Removable media que es el DVD


En este menu elegimos como boot path la unidad de dvd

A continuacion comenzara el booteo de instalacion de la VM

Elegimos la opcion de Install HP-UX y dentro de ese menu la opcion de instalacion avanzada.
En la siguiente pantalla elegimos como enviroment al HP-UX Base Operating Enviroment


Luego configuramos el HP-UX Virtual con los parametros de red correspondientes
En software podemos quitar por ejemplo  las man pages, fonts de otros idomas como chino,koreano,etc y algún software por ejemplo mozila.
Si es necesario podemos hacer cambios en el layout de los FSs

Una vez terminadas las modificaciones podemos comenzar la instalacion del OS


Pasado un tiempo la instalacion requerira el disco 2

vmhost1\\#hpvmmodify -P ttsprod -d dvd:scsi::file:/var/opt/hpvm/ISO-images/hpux/HPUX11-31_Disk1.iso
hpvmmodify: WARNING (ttsprod): Removing the last target on bus 0 device 2 for the active guest.
hpvmmodify -P ttsprod -a dvd:scsi::file:/var/opt/hpvm/ISO-images/hpux/HPUX11-31_Disk2.iso

Después del cambio de la imagen apretar el 1 y enter y la instalación resumir

Luego de la instalación se produce un booteo, en el cual se reconfiguran los filesets instalados, y al fin de la instalacion deberiamos llegar a una pantalla similar a esta

Dentro del vmhost verificamos el estado de la virtual

vmhost1#hpvmstatus
[Virtual Machines]
Virtual Machine Name VM #  OS Type State     #VCPUs #Devs #Nets Memory  Rmt Host
==================== ===== ======= ========= ====== ===== ===== ======= ========
ttsprod                  1 HPUX    On (OS)        4     2     1    4 GB        -
vmhost1#

Como ultimo paso se instalan las herramientas de management del guest

# swinstall -s /tmp/hpvm_guest_depot.11iv3.sd

Luego de la instalación se reinicializara el server y tendremos la maquina creada.


Se puede instalar el virtual Server Manager para poder administrar las VM desde el SMH
Para verificar que el software esta instalado podemos ejecutar el siguiente comando 

vmhost1#swlist -l product vmmgr
# Initializing...
# Contacting target "vmhost1"...
#
# Target:  vmhost1:/
#
  vmmgr         A.6.0.0.88401  HP-UX Integrity Virtual Server Manager


Creación de VGs V2.X

Usar un VG con layout 2.X tiene como ventaja ampliar los limites dados por la implementacion 1.0 de LVM. Para ver estos nuevos valores maximos solo basta con correr el comando lvmadm

lvmadm -t
--- LVM Limits ---
VG Version                  1.0        
Max VG Size (Tbytes)        510                  
Max LV Size (Tbytes)        16                   
Max PV Size (Tbytes)        2                    
Max VGs                     256     
Max LVs                     255     
Max PVs                     255     
Max Mirrors                 2           
Max Stripes                 255         
Max Stripe Size (Kbytes)    32768                    
Max LXs per LV              65535          
Max PXs per PV              65535          
Max Extent Size (Mbytes)    256                      

VG Version                  2.0        
Max VG Size (Tbytes)        2048                
Max LV Size (Tbytes)        256                  
Max PV Size (Tbytes)        16                   
Max VGs                     512                  
Max LVs                     511     
Max PVs                     511     
Max Mirrors                 5           
Max Stripes                 511         
Max Stripe Size (Kbytes)    262144                   
Max LXs per LV              33554432       
Max PXs per PV              16777216       
Max Extent Size (Mbytes)    256                      

VG Version                  2.1        
Max VG Size (Tbytes)        2048                
Max LV Size (Tbytes)        256                  
Max PV Size (Tbytes)        16                   
Max VGs                     2048                 
Max LVs                     2047    
Max PVs                     2048    
Max Mirrors                 5           
Max Stripes                 511         
Max Stripe Size (Kbytes)    262144                   
Max LXs per LV              33554432       
Max PXs per PV              16777216       
Max Extent Size (Mbytes)    256                      

VG Version                  2.2        
Max VG Size (Tbytes)        2048                
Max LV Size (Tbytes)        256                  
Max PV Size (Tbytes)        16                   
Max VGs                     2048                 
Max LVs                     2047    
Max PVs                     2048    
Max Mirrors                 5           
Max Stripes                 511         
Max Stripe Size (Kbytes)    262144                   
Max LXs per LV              33554432       
Max PXs per PV              16777216       
Max Extent Size (Mbytes)    256                      
Min Unshare unit(Kbytes)    512                     
Max Unshare unit(Kbytes)    4096                    
Max Snapshots per LV        255

Para crear un VG con layout LVM 2.X podemos realizarlo de 2 formas

La mas practica,

<root@test2:/>vgcreate -V 2.0 -s 16m -S 512t /dev/vg02 /dev/disk/disk7
Volume group "/dev/vg02" has been successfully created.
Volume Group configuration for /dev/vg02 has been saved in /etc/lvmconf/vg02.conf

O la forma tradicional de crear un VG realizando el mkdir y el mknod especificando el numero de dispositivo

<root@test2:/>mkdir /dev/vg02
<root@test2:/>mknod /dev/vg02/group c 128 0x001000


<root@test2:/>vgcreate -V 2.0 -s 16m -S 512t /dev/02 /dev/disk/disk7
Volume group "/dev/02" has been successfully created.
Volume Group configuration for /dev/02 has been saved in /etc/lvmconf/02.conf

Ya podemos ver que la sintaxis del vgcreate y los devices numbers (major y minor) han cambiado con la implementación de LVM 2.0

Paso a explicar los flags del vgcreate

-V indica la version de VG, al momento son 1.0, 2.0, 2.1 y 2.2 el default es 1.0
-s indica el tamaño del physical extent, en las versiones 1.0 de LVM su valor default es 4, en versiones 2.X es un parametro requerido a la hora de crear el VG
-S Valido solo para LVM 2.x e indica el tamaño máximo del VG, en el ejemplo anterior tamaño máximo que puede crecer el VG es de 512 Terabytes. Esta opción acepta los sufijos m(mega), g(giga), t(tera) y p(peta)

Otra opción muy ventajosa que provee el vgcreate al generar VGs con el nuevo layout es si queremos hacer un VG de gran tamaño, nos puede sugerir el tamaño mínimo de PE. Dado que hay una relación entre le tamaño del PE y el tamaño máximo del VG.
El comando funciona en 2 modalidades, podemos usarlo conjunto a la opcion -s o -S, con lo cual podemos ver el tamaño máximo que puedo direccionar dado un tamaño de PE o bien puedo especificar el tamaño máximo de VG y ver el tamaño sugerido de PE para direccionar ese máximo.

Por ejemplo,

Aquí obtengo el tamaño máximo de VG que puedo direccionar con un PE de 8MBs
<root@test2:/>vgcreate -V 2.0 -s 8m -E
Max_VG_size=256t:extent_size=8

Ahora corro el comando a la inversa, es decir si quiero un VG con un maximo de 256TBs, necesito un PE de 8MBs
<root@test2:/>vgcreate -V 2.0 -S 256t -E
Max_VG_size=256t:extent_size=8m

Flags que son invalidos en VGs 2.x

-l maxima cantidad de LVs
-e cantidad maxima de extents
-p cantidad maxima de PVs

Ya que al crear el VG 2.x este toma de forma automática los valores máximos

<root@test2:/>vgdisplay vg02
--- Volume groups ---
VG Name                     /dev/vg02
VG Write Access             read/write  
VG Status                   available              
Max LV                      511  
Cur LV                      0    
Open LV                     0    
Max PV                      511    
Cur PV                      1    
Act PV                      1    
Max PE per PV               1048576      
VGDA                        2
PE Size (Mbytes)            16            
Total PE                    222          
Alloc PE                    0            
Free PE                     222          
Total PVG                   0      
Total Spare PVs             0            
Total Spare PVs in use      0                  
VG Version                  2.0    
VG Max Size                 512t    
VG Max Extents              33554432  

Ahora, respecto a los device special files, estos han cambiado los VGs 2.x usan como major number 128, (recordemos que los 1.0 usan como major 64).
También cambia la estructura de los minor, en la versión 1.0 para identificar al VG se usan los dos bytes mas significativos, en la versión 2.x estos aumentan a los tres bytes mas significativos

<root@test2:/>ll /dev/*/group
crw-r-----   1 root       sys         64 0x000000 Mar 23 14:39 /dev/vg00/group
crw-r-----   1 root       sys         64 0x010000 Apr  8 16:18 /dev/vg01/group
crw-r-----   1 root       sys        128 0x001000 Sep  2 10:00 /dev/vg02/group

Los archivos de configuración de LVM también han cambiado.
Los VGs 1.0 usan el /etc/lvmtab mientras que los 2.x estan en /etc/lvmtab_p

Migración de VG hecho con LVM 1.0 a 2.x

Si quisiera migrar un VG hecho con layout 1.0, existe un comando llamado vgversion.
A continuación enumero los comandos a seguir para llevar de 1.0 a una versión 2.X igualmente se puede migrar de una versión 2.x a otra superior.


Para identificar el VG utilizo el comando lvmadm que me lista los VG configurados, su versión y los PV que los componen.
En este caso vamos a migrar el vg01 a la versión 2.2. Tener en cuenta que a la fecha el vg00  no puede ser 2.0 


<root@test2:/>lvmadm -l
--- Version 1.0 volume groups ---
VG Name /dev/vg00
PV Name /dev/disk/disk3_p2


VG Name /dev/vg01
PV Name /dev/disk/disk5


--- Version 2.0 volume groups ---
VG Name /dev/02
PV Name /dev/disk/disk7

Una vez identificado el VG ejecutamos el comando vgversion con la opcion de review -r, verbose -v y -V con la version de VG a la que lo queremos llevar


<root@test2:/>vgversion -v -r -V 2.2 vg01
Warning: Volume Group version 2.2 does not support bad block 
relocation. The bad block relocation policy of all logical volumes 
will be set to NONE.
Volume Group version can be successfully changed to 2.2
Review complete. Volume group not modified


Vemos que nos avisa que la opción de bad block relocation no esta mas soportada en 2.x y que el VG se puede migrar sin ningún problema.
Para hacer el cambio de versión el VG debe estar offline, por lo que vamos a desmontar los LVs que están montados y desactivar el VG

<root@test2:/>bdf
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3     671744  411768  258056   61% /
/dev/vg00/lvol1    1081344  347656  728032   32% /stand
/dev/vg00/lvol8    4042752 2888000 1149856   72% /var
/dev/vg00/lvol5    4927488 2107168 2798360   43% /usr
/dev/vg00/lvol4     430080    6008  420888    1% /tmp
/dev/vg00/lvol7    5484544 3958872 1513776   72% /opt
/dev/vg00/lvol6     102400    5520   96128    5% /home
/dev/vg01/lvol1    2043904    2638 1913694    0% /EDB
<root@test2:/>umount /EDB
<root@test2:/>vgchange -a n vg01
Volume group "vg01" has been successfully changed.


Una vez desactivado corremos el vgversion


<root@test2:/>vgversion -v -V 2.2 vg01
Performing "vgchange -a y -l -p -s vg01" to collect data
Activated volume group.
Volume group "vg01" has been successfully activated.
A version 2.x Volume Group with the minor number 0x1000 
already exists.
Warning: Volume Group version 2.2 does not support bad block 
relocation. The bad block relocation policy of all logical volumes 
will be set to NONE.


Old Volume Group configuration for "/dev/vg01" has been saved in "/etc/lvmconf/vgversion_vg01/vg01_1.0.conf"
Deactivating Volume Group "vg01"
Volume group "vg01" has been successfully deactivated.


New Volume Group configuration for "/dev/vg01" has been saved in "/etc/lvmconf/vgversion_vg01/vg01_2.2.conf"
Removing the Volume Group /dev/vg01 from /etc/lvmtab


Applying the configuration to all Physical Volumes from "/etc/lvmconf/vgversion_vg01/vg01_2.2.conf"
Volume Group configuration has been restored to /dev/rdisk/disk5
Creating the Volume Group of version 2.2 with minor number 0x2000.
Adding the Volume Group /dev/vg01 to /etc/lvmtab_p
Original Volume Group Version was 1.0
New Volume Group Version is 2.2
Volume Group version has been successfully changed to 2.2
Volume Group configuration for /dev/vg01 has been saved in /etc/lvmconf/vg01.conf


Una vez ya migrado activo el VG  activamos el vg


<root@test2:/>vgchange -a y vg01      
Activated volume group.
Volume group "vg01" has been successfully changed.


Montamos el FS


<root@test2:/>mount /EDB              


Validamos con un bdf para ver si quedo montado


<root@test2:/>bdf
Filesystem          kbytes    used   avail %used Mounted on
/dev/vg00/lvol3     671744  414504  255336   62% /
/dev/vg00/lvol1    1081344  347656  728032   32% /stand
/dev/vg00/lvol8    4042752 2887992 1149864   72% /var
/dev/vg00/lvol5    4927488 2107168 2798360   43% /usr
/dev/vg00/lvol4     430080    6008  420888    1% /tmp
/dev/vg00/lvol7    5484544 3958872 1513776   72% /opt
/dev/vg00/lvol6     102400    5520   96128    5% /home
/dev/vg01/lvol1    2043904    2638 1913694    0% /EDB


Podemos correr el lvmadm -l para efectivamente ver si el VG cambio de versión


<root@test2:/>lvmadm -l
--- Version 1.0 volume groups ---
VG Name /dev/vg00
PV Name /dev/disk/disk3_p2


--- Version 2.0 volume groups ---
VG Name /dev/02
PV Name /dev/disk/disk7


--- Version 2.2 volume groups ---
VG Name /dev/vg01
PV Name /dev/disk/disk5