EFI Shell – Itanium – HP-UX/Linux

Que es y para que sirve? que podemos hacer con la EFI shell?

La EFI es la precursora de la UEFI, hoy en dia bastante difundida en equipos de uso hogareño. Pero este no es por lejos el tema que nos ocupa, si no mas bien la utilidad de la EFI Shell en servidores del tipo Itanium. Encontrarás en este post, el uso básico y algunos tips de utilidad a la hora de instalar o recuperar sistemas operativos.

Introducción

Si te primera pregunta es: Que es EFI?
La respuesta mas clara la tiene Wikipedia cuando dice:

La Interfaz Extensible del Firmware, Extensible Firmware Interface (EFI), es una especificación desarrollada por Intel dirigida a reemplazar la antigua interfaz del estándar IBM PC BIOS, interactúa como puente entre el sistema operativo y el firmware base.

Básicamente cuando HP decidió vender servidores con procesadores Intel, se comenzó a desarrollar un sistema que permita a los servidores tener altas prestaciones (esto fue cerca del 2002), por ejemplo soportar hasta 9,4 Zetta Bytes en lugar de los 10 Teras que podia llegar a soportar la BIOS en el mejor de los casos. Otro excelente ejemplo es la posibilidad de funcionar nativamente con 32 y 64 bits, cuando BIOS fue diseñada originalmente para andar con 16 bits.

AmiBios2
Server con iLO 2 Booteando con BIOS AMIBIOS

Ademas de estas y otras adelantos que conlleva el uso de la EFI, esta posee un Boot manager y una shell desde donde se pueden ejecutar ciertos programas prescindiendo de un OS.

En este post nos centraremos en esos beneficios, los commandos de EFI y el Boot Manager.

EFI Standard Commands

EFI tiene un set de comandos específicos, los cuales podemos observarlos utilizando el comando help -?. También pueden encontrar una lista completa de los comandos de la EFI en este link.

El funcionamiento de esta “shell” es muy al estilo DOS, aunque tiene un par de ayudas para los que venimos del mundo unix, y escribir ‘dir’ en lugar de ‘ls’ nos cuesta muchísimo.
La primer ayuda que tenemos es el comando ‘alias’, el cual nos mostrará los alias de los comandos y crear nuestros propios ‘comandos’.

La mayoria de las descripciones de los comandos en el comando help -? son muy explicativas, en caso de que necesitemos mas información sobre un comando en particular podemos ejecutar ‘help commando’ o bien ‘commando -?’.

Aquí les dejo algunos comandos básicos:

ver

Existen varias versiones de EFI, por lo que te recomiendo ejecutar el comando ver, para saber que versión de EFI estas usando. Una de las diferencias entre versión y versión es la lista de comando. Quizás alguno de los comandos que tratamos aquí no estén disponibles en tu EFI.

Hardware desde la EFI

A la hora de configurar el hardware del servidor, tenemos algunos comando muy útiles.

map

El comando map, nos muestra una lista de dispositivos reconocidos por la EFI.

Shell> map
Device mapping table
fs0 : Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig8E89981A-0B97-11D7-9C4C-AF87605217DA)
blk1: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)
blk2: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig8E89981A-0B97-11D7-9C4C-AF87605217DA)
blk3: Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part3,SigC9D7945C-0BA7-11D7-9B31-FBA1AECDAF7E)

Este listado, por supuesto varía de servidor en servidor, dependiendo de que dispositivos (discos, fibras, placas de red, etc etc)
Puedes encontrar aquí una explicación de la nomenclatura usada.

Si quisiéramos refrescar (escanear nuevamente) el listado

map -r

Si quisiéramos listar sólo los filesystems

map -Fs

Si quisiéramos listar sólo los dispositivos de bloque

map -Blk
devices
Este comando, nos hará un listado de todos los dispositivos administrados por la efi (es decir la efi tiene drivers para esos dispositivos). Este comando es muy útil para poder saber que hard tenemos en el servidor.
devtree
Complementario al comando devices, con devtree podemos hacer prácticamente el mismo listado, pero con vista de árbol.

Acceso a un disco/lun

Para acceder a un filesystem, ejecutamos (muy al estilo MS-DOS):

Shell> fs0
fs0:>

Una vez dentro del filesystem podemos hacer uso de los siguientes comandos:
cd, comp, cp, edit, eficompress, efidecompress, hexedit, ls, mkdir, mode, mv, rm

Detallar estos comandos sería un despilfarro de letras, ya que son lo que todos queremos que sean, sin mas ni menos. Sin embargo, estos mismos comandos son útiles para scripts que podemos realizar con el fin de acortar ciertas tareas (tema que quedará pendiente para un futuro post).

Termino dejando un manual de la UEFI en servers proliants

~have fun!

EFI Devices Mapping

Esta es una pequeña explicación de la nomenclatura utilizada por intel en la EFI Shell.

Un ejemplo, es cuando utilizamos el comando map, una de las entradas se vería algo así:

fs0 : Acpi(HWP0002,100)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig8E89981A-0B97-11D7-9C4C-AF87605217DA)

Explicación:

Acpi(HWP0002,100):

  • Tipo de dispositivo HWP0002 (= Logical Block Address (LBA) device)
  • PCI número de host 100 (“ROPE“ = circuitry handling I/O for PCI; defines I/O card slot)

Pci(1|0):

  • device/slot número 1
  • función numero 0

Scsi(Pun0,Lun0):

  • Pun: Physical Unit (SCSI address)
  • Lun: Logical Unit

HD(PartX,SigY):

  • Partición X
  • Disco con código Y

VxVM volume manager on HP-UX

Pequeño machete para el uso de VxVM en HP-UX

Verificar instalación de VxVM

swlist -l bundle B9116*
swlist -l bundle Base-V?VM*
swlist -l bundle B3929*

Luego de instalar updatear el path:
PATH=$PATH:/usr/lib/vxvm/bin:/etc/vx/bin:/opt/VRTSob/bin

Iniciar daemons vxvm
vxinstall

Para verificar:
ls -l /etc/vx/reconfig.d/state.d/install-db
vxdctl list

Verificar que vxconfigd esta corriendo:
vxdctl mode

Parar vxconfigd:
vxdctl stop

Reiniciar vxconfig:
vxconfigd -m enable

Verificar features
vxdctl license

Escanear discos:
vxdctl enable
vxdisk -o alldgs list

Crear Disk Group
– Buscar vacios:
vxdisk -o alldgs list
– Preparar disco
vxdisksetup -i cxtxdx
vxdisk -s list cxtxdx

– Crear el disk group
vxdg init datadg cds=on datadg01=cxtxdx
– Chquear
vxprint -htg datadg
vxdisk -s list cxtxdx
vxdisk list

Crear volumenes
– Nuevo volumen en datadg
vxassist -g datadg maxsize
vxassist -g datadg make datavol 16m
ll /dev/vx/*/datadg/datavol
newfs /dev/vx/rdsk/datadg/datavol

– Crear swap volume
vxassist -g datadg maxsize layout=contig
vxassist -g datadg make swapvol 16m layout=contig
swapon -f /dev/vx/dsk/datadg/swapvol
vxprint -htg datadg

swapinfo -dtm
– Extender volumen
vxassist -g datadg maxgrow datavol
vxresize -g datadg datavol 32m
vxprint -htg datadg

– Extender swap volume
vxassist -g datadg growto swapvol 64m
Esto requiere reboot

– Reducir volumen
vxresize -g datadg datavol -16m
– Reducir swap
Requiere quitar la swap del fstab y reinciar
vxasist -g datadg -f shrinkby swapvol 16m
Volver a hubicarla en fstab
swapon -f /dev/vx/dsk/datadg/swapvol

– Eliminar logical volume y disk group
vxassist -g datadg remove volume datavol
vxdg -g datadg rmdisk datadg02
vxevac -g datadg datadg02 datadg01
vxdg destroy datadg

– Mirror de un volumen
vxassist -g datadg -b make datavol 500m layout=mirror nmirror=3
vxtask monitor

– Split mirror
vxplex -g datadg dis datavol-02
vxmake -g datadg -U gen vol tempvol plex=datavol-02
vxvol -g datadg start tempvol
fsck -F vxfs /dev/vx/rdsk/datadg/tempvol
mkdir /backupdata
mount -ro /dev/vx/dsk/datadg/tempvo /backupdata
umount /backupdata
vxvol -g datadg stop tempvol
vxplex -g datadg dis datavol-02
vxprint -htg datadg

~ have fun!

Instalación de HP-UX 11i v2

A continuación haremos una instalación de HP-UX 11i v2 desde el DVD (descartando cualquier otro sistema operativo o dato que haya en los discos) de forma MUY básica, con software adicional para DMZs, ya que ese será el environment del servidor. La idea es hacer un simple acercamiento a HP-UX, que sirva como referencia, para luego poder ahondar sobre otros temas, como los OEs, el LVM, el hardware etc en futuros posts.

Nota preliminar: Recuerda que si quieren hacer RAID 1 o RAID 0, antes deben hacerlo mediante la configuración de la controladora de los discos.

Escenario

Vamos a instalar un HP-UX 11i v2 desde DVD sobre un RX2600 (puede llevar uno o dos procesadores Itanium 2 (64 bits) y de 1GB a 24GB de RAM).  Este pequeño servidor es muy común en medianas y grandes empresa y la instalación debería ser igual para la mayoria del hardware HP.

En este caso vamos a seleccionar el Mission Critical OE con LVM y VxFS

Booteo

Nuestro primer objetivo es seleccionar ‘Boot Option Maintenance Menu’

boot option

Tenemos que asegurarnos de seleccionar las siguientes 2 lineas con un enter en cada una:
Acpi(HWP0002,700)/Pci(1|1)/Uart(9600 N81)/VenMsg(Vt100)
Acpi(HWP0002,700)/Pci(2|0)

Esto nos asegura poder visualizar correctamente la consola y no perder ninguna de las opciones cuanto nos conectamos mediante telnet o ssh. En particular la última linea nos asegura no perder la consola una vez que el sistema operativo ha sido instalado.
Luego seleccionaremos ‘Save Settings to NVRAM’ para guardar la selección.
efi save nvram

Luego seleccionamos exit, para volver al menú anterior y nuevamente exit para poder, luego, seleccionar la ‘EFI Shell (built in)’

EFI Shell

Entramos en el EFI shell con el fin de bootear desde el DVD.
Al entrar en la EFI shell se listaran los dispositivos disponibles para el booteo, en mi caso el output es el siguiente:

EFI list

Si el DVD esta ya insertado va a bootear automáticamente, si aún no lo insertaste este es el momento para hacerlo.
Una vez que localizamos el dispositivo del dvd, tipeamos el nombre de la unidad (muy al estilo DOS), para poder ejecutar desde la unidad el comando ‘install’. En mi caso, la unidad del dvd es la siguiente:
blk1 : Acpi(HWP0002,0)/Pci(2|0)/Ata(Primary,Master)/CDROM(Entry0)
Por lo que tipeo ‘blk1:’ para hubicarme en la unidad y luego tipeo install para iniciar la instalación desde el DVD.

dvd install

Si todo ha ido bien, la instalación ha comenzado.

Tipo de instalación

Idioma: El primer parámetro que nos pide la instalación no debería presentarnos demasiada dificultad, es el lenguaje del teclado de la terminal, el cual utilizaremos para el proceso de instalación, no para el OS en si.

Inicio de instalación: A continuación veremos una ‘cálida’ bienvenida, donde tenemos un resumen del hardware disponible, con la opción iniciar la instalación, una consola de rescate y algunas opciones avanzadas.
instalacion

Iniciaremos la instalación propiamente dicha.
Interfaces de instalación: La siguiente pantalla nos permitirá seleccionar que tipo de instalación vamos a ejecutar. ‘Source Location Options‘ nos permite seleccionar desde donde instalaremos el sistema. En este caso queremos hacerlo directamente desde el DVD, por lo que usaremos ‘Media only installation‘, pero si disponemos de algún Depot en la red, la segunda opción (‘Media with Network‘) sería lo que necesitamos, y si fuera que queremos una instalación desde Ignite-UX la tercera sería nuestra opción.
En ‘User Interface Options’, seleccionaremos cuan avanzada será nuestra instalación:
Guided Installation: para una instalación típica guiada
Advanced Installation: útil para modificar los sistemas de archivos por defecto, servicios de red, y parámetros del sistema.
No user interface: instalación por defecto que no requiere de nuestra intereacción.

Utilicemos la opción por defecto (Media only + guided installation). La siguiente pantalla también es facil de decidir, por que en general solo tendremos una opción ‘HP-UX B.11.23 Default’ . Luego veremos que la instalación nos permite elegir el Operatin Enviroment.

Personalización

OE

Como saben, HP-UX dispone de distintos OEs para distintos tipos de servidores que necesitemos desarrollar. Con un enter, podremos visualizar los distintos OEs (aquí una explicación de los OEs) disponibles en el DVD utilizado:
OE selection

Utilizaremos MCOE:

HP-UX 11i v2 Mission Critical OE (MCOE) Designed for the large, powerful back-end application servers and database servers that access customer files and handle transaction processing, this OE contains the Enterprise OE bundles, plus applications such as MC/ServiceGuard and Workload Manager to enable a mission-critical server. This OE is bundled as HP-UX 11i MCOE.

Discos y File Systems
Una vez seleccionado el OE, la instalación nos pedirá seleccionar el disco, seguido configuraremos la cantidad de swap. El sistema pre calcula una cierta cantidad pero podemos modificarla a gusto.
El próximo paso será seleccionar el sistema de archivos de los discos:
FS

Las opciones posibles son:
Whole disk with VxFS: Significa utilizar todo el disco con VxFS (es decir Veritas File System, u OnlineJFS), sin ningún gestor de volúmenes. Esto implica que las distintas particiones serán completamente estáticas (contrario a las otras dos opciones restantes)
Veritas Volume Manager with VxFS: Esta opción nos permite utilizar Veritas volume manager en lugar del clásico y conocido LVM, no es la opción que utilizaremos, pero les dejo una guia de referencia por si les interesa.
LVM with VxFS: En este caso, ademas de VxFS utilizaremos LVM, el cual nos permite administrar las partciones de forma dinámica, es decir aumentar o disminuir sus tamaño según lo necesitemos. Esta es la opción por defecto y la estándar en HP-UX y es la que seleccionaremos

En la siguiente pantalla, podremos configurar la cantidad de discos que formaran el volume group principal del OS.  Esto dependerá de los discos que tengamos y del espacio que necesitemos. Recuerden que al usar LVM, si quieren hacer la adición posterior mente a la instalación también es posible.

Idiomas

langs

Posterior a la configuración de los discos, podemos seleccionar que idiomas queremos presentes en el OS y cual será el utilizado por defecto. En el screen de ejemplo, seleccione con la barra espaciadora el español, pero deje como idioma por defecto del sistema el ingles.

Software adicional – Seguridad

Esta pantalla sirve para agregar software que no viene instalado por defecto.
Como dijimos al principio, esta instalación básica la destinaremos a un servidor en una DMZ, por lo que en ‘SecurityChoices’, seleccionaremos con la barra espaciadora Sec30DMZ. Esta configuración bloqueará todo el tráfico, excepto el  SSH.

dmz

Confirmaciones finales

Las siguientes pantallas, nos permitirán confirmar que borraremos los discos del sistema, y nos mostrará un sumario del software instalado, el tamaño de las particiones y el hardware disponible. Una vez confirmado todo, comenzará la instalación

Post Instalación

Finalmente, luego de una larga espera tenemos el HP-UX instalado
bootinh

Al terminar el booteo, nuevamente nos pedirá seleccionar un idioma de una lista, esta vez, es para configurar algunos parámetros más. Nuevamente seleccionaremos 26.
Luego, el sistema nos dará una hermosa bienvenida, y nos preguntará si queremos correr un ‘wizard’ para configurar ciertos parametros de red. Este mismo asistente se puede correr luego con ‘set_parms’.

Les recomiendo elegir que si.
Al terminar de configurar los parámetros (hostname, time zone, ips, root password) el sistema reiniciará, y quedará a disposición nuestra una vez que pasemos el login.

Hasta aquí este simple guia de instalación. A medida que agregue guias y tips las ire linkeando para que la información sea mayor.

~ have fun!