Hoy traemos un nuevo y magnífico panic para HP-UX 11.31 tras analizar el dump con la utilidad crashinfo nos quedamos con la siguiente información:
panic: post_hndlr(): Unresolved kernel interruption
Stack Trace:
IP Function Name
0xe0000000007793a0 $cold_vm_hndlr+0x5b0
0xe000000001c90780 bubbledown+0x0
0xe00000000061b6d1 $cold_vx_ireuse+0xce1
0xe000000000af0450 vx_iget+0x2a0
0xe000000000b1cc60 vx_dirlook+0x5e0
0xe000000000c15260 vx_lookup+0x11f0
0xe000000000c7abd0 lookupname+0x3b0
0xe000000000cf3f40 lstat+0x60
0xe000000000be7600 syscall+0x540
End of Stack Trace
Esta situación se soluciona aplicando el parche de kernel PHKL_38041 (requiere reboot)
Tenéis bastante más información en el link del parche.
Erase una vez un HP-UX 11.23 que tras estar funcionando varios años, de repente generó un panic y su consiguiente crash. Este crash hubicado en /var/adm/crash/crash.N es poco analizable por nosotros por lo que había que pasarle el crashinfo el cual genera información algo más legible y nos encontramos con lo siguiente (muestro un pequeño extracto)
Trap information
================
Reason 0x56: NaT Consuption Fault
Interrupt Instruction Pointer:
IIP = 0xdead31.0xe00000000053e7c0, slot 0
Interrupt Instruction Bundle:
tcp_rput+0x22a0(): (@ 0xe00000000053e7c0)
|10756 /ux/core/kern/common/net/netinet/tcp.c
+0x22a0 st8 [r67]=r84
nop.m 0x0
|10758 /ux/core/kern/common/net/netinet/tcp.c
br.call.dptk.many b0=0xe0000000004ba400 // tcp_conn_con()
|10756 /ux/core/kern/common/net/netinet/tcp.c
Tras abrir consulta a soporte nos indicaron que el problema se solucionaba aplicando el parche original PHNE_34671 el cual si lo buscamos en http://itrc.hp.com vemos como el parche PHNE_37897 lo supercede por lo que será el que aplicaremos:

Al instalar este parche recompila kernel y por consiguiente necesita reboot, una vez instalado, a dormir tranquilos
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: Read more…
En una serie de artículos voy a hablaros de las nuevas funcionalidades y características incluidas en la última versión de HP-UX que salió al mercado en Febrero de 2007 pero como sabéis no llegan a las máquinas hasta que hay renovaciones tecnológicas o llevan tiempo rodando en el mercado. Esta versión es la 11iv3 (11.31) la cual aporta muchas mejoras que aumentan la estabilidad, seguridad, flexibilidad y sobre todo facilitan el trabajo del día a día al administrador.
Mi objetivo con esta serie de posts es que conozcáis las nuevas funcionalidades que muchas veces nunca llegamos a conocer o no sabemos que nos pueden aportar sin entrar excesivamente a fondo en ellas.
A continuación podemos ver las diferentes versiones del sistema operativo que se pueden adquirir: Read more…
Me disponía a descomprimir un conjunto de parches de más de 5Gb cuando obtuve el siguiente error:
maquina:(/var/adm/crash)(root)#gzip -d hpux__11.23_allpatches.tgz
hpux__11.23_allpatches.tgz: Value too large to be stored in data type
Parece como si no pudiera abrir todo el fichero de golpe por lo que la solución es “empipar” el fichero con un cat hacia el gzip y la salida del gzip la redirigimos para obtener el fichero sin comprimir:
maquina:(/var/adm/crash)(root)#cat hpux__11.23_allpatches.tgz | gzip -d > hpux__11.23_allpatches.tar
Ahora, tan solo extraer como de costumbre
maquina:(/var/adm/crash)(root)#tar -xvf hpux__11.23_allpatches.tar
x patch_manifest, 964 bytes, 2 tape blocks
x README_hp-ux, 1779 bytes, 4 tape blocks
x create_depot_hpux.11.23, 5761 bytes, 12 tape blocks
x PHCO_38717, 7446148 bytes, 14544 tape blocks
x PHCO_38989, 5348648 bytes, 10447 tape blocks
x PHCO_39027, 18554358 bytes, 36239 tape blocks
x PHCO_39081, 147313 bytes, 288 tape blocks
x PHKL_38287, 185398 bytes, 363 tape blocks
x PHKL_38433, 4278003 bytes, 8356 tape blocks
x PHKL_38714, 228386 bytes, 447 tape blocks
x PHKL_38902, 214553 bytes, 420 tape blocks
[...]
Editamos el fichero /etc/mail/sendmail.cf y modificamos las entradas DS para indicarle el servidor contra el que vamos a hacer relay y el DM para el masquerade domain de la siguiente manera:
DSserver_smtp.compañia.comDMcompañia.com
Reiniciamos sendmail, pero la sorpresa es que no envia correctamente los mensajes. Vemos el siguiente error en el mail.log:
Dec 3 09:39:45 maquina sendmail[21506]: lB38dj921506: to=destinatario@dominio.com,
delay=00:00:00, mailer=esmtp, pri=0, relay=dominio.com,dsn=4.4.3,
stat=Transient parse error — message queued for future delivery
Read more…
Se tiene que migrar todo el servicio de impresión de máquinas hpux, a máquinas linux. Como había más de 600 impresoras, se decidió automatizar el proceso ya que todas las impresoras se tenían que dar de alta en 14 linux contando desarrollo, preproducción y producción.
El proceso consiste en:
1. Exportar las impresoras del hpux
2. Importar las impresoras en un linux
3. Distribuir la configuración a los demás linux
La configuración del sistema de impresión nada tiene que ver entre hpux y Linux por lo que se tenía que hacer algún tipo de script para luego leerlo desde los Linux.
Para exportar la configuración del spooler de impresión en hpux, se hace de la siguiente manera: Read more…

Teniamos un HPUX con 32 discos de almacenamiento externo Symmetrix y cada disco se veia por dos caminos de la siguiente manera:
#powermt display dev=all
Symmetrix ID=000284701111
Logical device ID=050B
state=alive; policy=SymmOpt; priority=0; queued-IOs=0
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
10 5/0/14/0/0.1.28.0.0.4.5 c10t4d5 FA 13aA active alive 0 0
11 5/0/6/0/0.1.28.0.0.5.0 c11t5d0 FA 4aA active alive 0 0
[...]
Por graves problemas de rendimiento con los discos, se añadió dos fibras más al Symmetrix, por lo que ahora, cada disco se veía por cuatro caminos. Read more…
Esto es lo que todo administrador nunca quiere escuchar
Todo empezó con una máquina parisc, hpux 11.00 que actua como cell server de Data Protector.
Los procesos de DataProtector empezaron a consumir toda la cpu, toda la memoria y empezó a swapear la máquina.
Se tuvo que reiniciar la máquina y DataProtector no era capaz de funcionar. Solo se podía hacer una cosa: Recuperar la IDB (Internal Data Base). Para ello se tenia que vaciar la IDB, teniendo una copia de seguridad previa, y configurar DataProtector para que pudiera usar la librería y un drive donde estaba almacenada esa copia de laIDB para poder restaurar la misma.
Para saber si la IDB estaba corrupta se tiene que ejecutar el siguiente comando:
#/opt/omni/sbin/omnidbcheck Read more…
Un buen día se estropeó el brazo robótico de una antigua librería compaq ESL9326
Voy a explicar el procedimiento para crear en HP-UX el fichero de dispositivo del picker(brazo mecánico) de una libreria.
Este es el fichero desde el que va acceder en este caso data protector para manejar la librería.
#ioscan -fn
……
ext_bus 15 0/2/1/0.2.24.255.0 fcpdev CLAIMED INTERFACE FCP Device Interface
unknown -1 0/2/1/0.2.24.255.0.0.0 UNCLAIMED UNKNOWN COMPAQ MSL5000 Series
……
Del ioscan nos quedamos con estas dos lineas. El driver del ext_bus es fcpdev por lo que hay que usar para el siguiente punto sctl. Buscamos sctl y schgr en el kernel. Read more…