Home > HP-UX, Unix & Linux > HP-UX: Mirror del VG00 en itanium

HP-UX: Mirror del VG00 en itanium

Hoy vamos a ver como se realiza el mirror del vg00 en un HP-UX bajo itanium. Esta operación consiste en particionar el disco, copiar los ficheros de la EFI, añadir una partición del disco al vg00, crear mirror a nivel LVM de cada lvol y establecer las distintas areas de swap, dump etc… . De tal manera que si un disco fallara, tendríamos alta disponibilidad por lo que se podría reemplazar el disco dañado por otro nuevo y reconstruir el mirror, además de poder realizar un split del vg para realizar una intervención garantizando la marcha atrás.

Para llevar a cabo el mirror a parte de requisito imprescindible tener dos discos (da igual si son locales o de SAN) también hace falta tener licenciado el Mirrordisk/UX, vamos a chequearlo:

#swlist | grep -i mirrordisk
B2491BA B.11.23 MirrorDisk/UX (Server)

Es de vital importancia que reconozcamos sin lugar a errores el disco del sistema operativo y cual va a ser el disco de mirror. En el ejemplo que vamos a ver a continuación tenemos el disco c0t6d0 en el cual está instalado el sistema operativo y el disco c28t5d0 que está vacio sobre el que haremos el mirror.

Una vez tenemos claros los discos a usar, tenemos que particionar el disco que está vacio, haremos tres particiones en el siguiente orden: EFI, sistema operativo y HPSP.

  1. En la primera partición (s1) de 500MB irá la EFI la cual es la implementación moderna de la BIOS sobre máquinas itanium aunque hace tiempo que ha dejado de estar presente en exclusiva en servidores y se usa también en algunos ordenadores domésticos como por ejemplo en toda la gama de macs basados en intel.
  2. En la segunda partición (s2) que ocupará todo lo que quede libre entre la primera y tercera partición en la cual irá el sistema operativo.
  3. Y como tercera partición (s3) de 400MB la HPSP (HP Service Partition) que estará destinada a instalar unas herramientas de diagnóstico hardware offline.

Una vez tenemos claro la distribución de las particiones y que albergaremos en cada una de ellas, vamos a particionar nuestro disco,. Para ello creamos un fichero temporal en el cual indicaremos dicha tristribución de la siguiente manera:

#vi /tmp/partitionfile
3
EFI 500MB
HPUX 100%
HPSP 400MB
EOF

En la primera linea indicamos que vamos a crear tres particiones, después le indicamos que la primera de ellas será la EFI con un tamaño de 500MB, la siguiente será la destinada al sistema operativo ocupando la totalidad del espacio libre restante no especificado y por último la particion de utilidades y soporte de 400MB.

Ahora lo que hacemos es “plancharle” esa estructura de particiones a nuestro disco de mirror. Esta tarea la haremos mediante el comando idisk indicandole que opere en modo escritura (w), quiet o silencioso (-q) y que particione según el fichero indicado (-f). Toma nota que el disco se indica en raw.

OJO, antes de continuar, revisa varias veces el disco que estás usando para hacer mirror ya que se borrarán todos los datos.

#idisk -wqf /tmp/partitionfile /dev/rdsk/c28t5d0

A continuación creamos los ficheros de dispositivos para las nuevas particiones:

# insf -C disk

El siguiente paso será hacer bootable el disco y además copiar las utilidades de la EFI ubicadas en /usr/lib/efi en la partición de la EFI. Recuerda que la partición de la EFI la hemos definido la primera (s1) pero el comando mkboot la detecta automáticamente por lo que solo habrá que especificarle el disco.

#mkboot -e -l /dev/rdsk/c28t5d0

Para comprobar que los ficheros de la EFI se ha copiado correctamente, lo comprobamos con efi_ls

#/usr/sbin/efi_ls -d  /dev/dsk/c28t5d0s1
FileName                             Last Modified             Size
EFI/                                  05/16/2009                  0
STARTUP.NSH                            5/17/2009                296

total space 523251712 bytes, free space 519962624 bytes

Nota que como hemos comentado anteriormente, la EFI está situada en la partición 1 (s1)

El siguiente paso consistirá en hacer bootable el disco mediante el comando mkboot el cual instalará los ficheros necesarios, más en concreto el ISL (Initial System Loader) en el area LIF (Logical Interchange Format) para que se pueda arrancar.

Además, especificaremos una cadena para que sea capaz de arrancar ante la falta de quorum (”-lq” lost quorum) o lo que es lo mismo, si le falta un disco del mirror ante un fallo hardware. Este string lo introducirá automáticamente el comando mkbook en el fichero AUTO al especificarle “-a string”:

mkboot -a "boot vmunix -lq" /dev/dsk/c28t5d0

Ahora que ya tenemos el disco completamente preparado, vamos a hacer el mirror en sí a nivel LVM para lo cual, el primer paso será crear el physical volume de la partición 2 (s2) destinada a albergar el sistema operativo. A la hora de crear el physical volume tendremos que indicarle que lo haga bootable, esta vez a nivel LVM. Recordamos otra vez, primera partición EFI, segunda LVM por lo cual atacaremos a la partición s2 con el mkboot.

#pvcreate -B /dev/rdsk/c28t5d0s2
Physical volume “/dev/rdsk/c28t5d0s2″ has been successfully created.

El siguiente paso que tenemos que dar es extender el vg00 con el physical volume que acabamos de crear, que de nuevo recuerdo que es la partición 2. Lo recuerdo tantas veces por que es muy común extender el vg, dar formato etc.. al disco entero en vez de a la partición o incluso confundirse de partición.

#vgextend vg00 /dev/dsk/c28t5d0s2
Volume group "vg00" has been successfully extended.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf

Una vez que tenemos este physical volume dentro del vg, tenemos que realizar un mirror lvol a lvol. Esto lo hacemos extendiendo el lvol y colocando una copia de mirror en el disco que acabamos de meter en el vg. El comando a ejecutar sería:

#lvextend -m1 /dev/vg00/lvolX /dev/dsk/c28t5d0s2

Como hay que hacer esto por cada lvol y tarda un buen rato por cada uno, vamos a automatizarlo un poco:

#for LV in $(vgdisplay -v vg00|grep "LV Name"|awk '{print $3}');do lvextend -m 1 ${LV} /dev/dsk/c28t5d0s2 ; done
The newly allocated mirrors are now being synchronized. This operation will
take some time. Please wait ....
Logical volume "/dev/vg00/lvol1" has been successfully extended.
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
[...]

Una vez tenemos los lvoles en mirror, solo queda prepararlos con el comando lvlnboot para que sean root o “/”, boot (donde se almacena el kernel y sus parámetros), swap primaria, dump (donde volcará el contenido al generarse un crash).

Por regla general con lvlnboot estableceremos los siguientes lvoles:

  • lvol1 irá montado bajo /stand que hasta la versión 11.23 está formateado en HSF y en la 11.31 ya es VXFS. Al contener el kernel y toda la parametrización, será nuestro boot. Opción -b
  • lvol2 contendrá la swap primaria del sistema. Podremos tener mas lvoles de swap pero siempre este será creado en la instalación. Ten en cuenta que en HP-UX la swap primaria no se activa desde el fstab si no que se activa mediante el comando lvlnboot, opción -s. Ojo que este lvol además de ser la swap, también será nuestro area de dump en la cual, cuando se produce un panic, el contenido de la memoria física puede volcarse a disco (lo que se conoce como dump) sobre este lvol, que recordemos, al estar destinado a swap no tiene formato mediante el cual podamos acceder y leer los ficheros de una manera habitual por lo que tras el reinicio de la máquina y durante el arranque, el dump generado se mueve al /var/adm/crash en un proceso automático, opción -d.
  • lvol3 será el root o “/” y sobre este filesystems se montarán los demás. Opción -r

Es necesario ejecutar de nuevo el lvlnboot ya si no lo hicieramos y arrancaramos desde el nuevo disco, no sería capaz de encontrar las areas de swap,dump etc…

#lvlnboot -r /dev/vg00/lvol3 /dev/vg00
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
#lvlnboot -b /dev/vg00/lvol1 /dev/vg00
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
#lvlnboot -s /dev/vg00/lvol2 /dev/vg00
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf
#lvlnboot -d /dev/vg00/lvol2 /dev/vg00
Volume Group configuration for /dev/vg00 has been saved in /etc/lvmconf/vg00.conf

Comprobamos que los valores han quedado establecidos correctamente:

#lvlnboot -v
Boot Definitions for Volume Group /dev/vg00:
Physical Volumes belonging in Root Volume Group:
        /dev/dsk/c0t6d0s2 (1/0/0/3/0.6.0) -- Boot Disk
        /dev/dsk/c28t5d0s2 (0/0/0/3/0.5.0) -- Boot Disk
Boot: lvol1     on:     /dev/dsk/c0t6d0s2
                        /dev/dsk/c28t5d0s2
Root: lvol3     on:     /dev/dsk/c0t6d0s2
                        /dev/dsk/c28t5d0s2
Swap: lvol2     on:     /dev/dsk/c0t6d0s2
                        /dev/dsk/c28t5d0s2
Dump: lvol2     on:     /dev/dsk/c0t6d0s2, 0
                        /dev/dsk/c28t5d0s2, 0

Vemos ahora como cada área reside en los dos discos.

Para ir terminando, tenemos que establecer el arranque alternativo mediante setboot. Con esto, lo que hacemos es indicar que en caso que no pueda arrancar desde el primer disco, lo haga desde el segundo.

Para ello, primero obtenemos el hardware path del disco alternativo:

#ioscan -kfnCdisk /dev/dsk/c28t5d0
Class     I  H/W Path       Driver S/W State   H/W Type     Description
=======================================================================
disk     35  0/0/0/3/0.5.0  sdisk CLAIMED     DEVICE       HP 36.4GST336753LC
                           /dev/dsk/c28t5d0     /dev/dsk/c28t5d0s2   /dev/rdsk/c28t5d0    /dev/rdsk/c28t5d0s2
                           /dev/dsk/c28t5d0s1   /dev/dsk/c28t5d0s3   /dev/rdsk/c28t5d0s1  /dev/rdsk/c28t5d0s3

Y ahora, tan solo lo establecemos como alternativo con la opción -a y lo comprobamos:

#setboot -a 0/0/0/3/0.5.0
#setboot
Primary bootpath : 1/0/0/3/0.6.0
HA Alternate bootpath : 1/0/1/1/0/1/1.6.0
Alternate bootpath : 0/0/0/3/0.5.0

Autoboot is ON (enabled)

Tan solo nos quedaría entrar en la EFI y añadir una nueva opción de arranque e indicarle el nuevo disco, de esta manera desde la EFI podremos seleccionar manualmente sobre que disco queramos arrancar.

Si no pulsamos ningún boton, arrancará desde el disco primario en condiciones normales y en caso que el disco esté estropeado, automáticamente arrancará desde el alternativo.

Aunque parezcan muchos pasos, se hacen en muy muy poco tiempo pero es de vital importancia tanto realizarlos correctamente como entender lo que se está haciendo.

Si teneis cualquier duda o consulta, no dudeis en dejar un comentario. Espero que os sea de utilidad.

pixelstats trackingpixel
Categories: HP-UX, Unix & Linux Tags: , ,
  1. daemon
    July 3rd, 2009 at 10:21 | #1

    [off topic]
    Gracias, lo resolvi enseguida me quedo con la url del blog!

  2. July 3rd, 2009 at 10:32 | #2

    Me alegro que te sirvieran las indicaciones.
    Espero verte por aquí ;)

  1. No trackbacks yet.