Thursday, November 22, 2007

Solaris 8 dentro de un Container de Solaris 10?

Googleando encontré una página donde se mostraba como utilizar S8MA (Solaris 8 Migration Assistant), el cual permite levantar un ambiente Solaris 8 dentro de un container de Solaris 10.

Esto no se podía hacer con las primeras versiones de Solaris Container, pero como se ve, está evolucionando y esto es demasiado útil, ya que existen muchos sistemas que corren en Solaris 8 que es demasiado caro migrarlos a Solaris 10, no porque sea difícil o caro instalar Solaris 10, sino porque las aplicaciones que corren en Solaris 8 no son compatibles y no están certificadas para Solaris 10 y los fabricantes del Software cobran un ojo de la cara para "hacerlas migrables".

Lo malo parece es que hay que pagar por las licencias de S8MA (estoy averiguando con Sun y cuando tenga más información actualizaré el post).

El web donde sale el ejemplo de S8MA es el siguiente:
http://solaris.reys.net/english/2007/11/solaris-8-migration-assitant

Más información en el sitio de Sun:
http://www.sun.com/download/products.xml?id=470c4a45

Saludos,
ChaZcaZ./

Tuesday, November 20, 2007

Unix Administratosphere

Link que encontré googleando donde aparecen Tips y News de varios Sabores de UNIX:

http://administratosphere.wordpress.com/


ChaZcaZ./

Wednesday, October 03, 2007

HP-UX: Mover discos entre 2 máquinas

Esto fue un ejercicio que hicimos en un Workshop de HP que asistí en Marzo del 2007 en Houston, Texas. El instructor fue Matias Vidal, Argentino que trabaja en una empresa partner de HP.

La configuración que utilizamos era un Superdome, en la cual teniamos 2 NPAR (2 servidores) conectadas a un Storage EVA5000.

Se creó una Lun en el EVA y se presentó a la npar1. Se creó un vgPrueba (Volume Group) y un Lvol (Logical Volume) dentro. Se montó (obviamente se creó un filesystem en el Lvol antes de montarlo) y se copió la data del directorio /etc en él. Después, se deportó y se presentó la Lun a la npar2. Se hizo un import del grupo, se activó y se montó. Esto fue lo que se hizo:

En Npar1
strings /etc/lvmtab
# para ver como está actualmente
ll /dev/vgPrueba # con esto se saca la configuración y se ve el group, para
# llevar un orden y “tratar” de utilizar el mismo minor en el
# otro lado, si es posible.
umount /mnt # se desmonta el Lvol
vgchange –a n vgPrueba # Se desactivan los lvol y el vg
vgexport –s –m /tmp/vgPrueba.map vgPrueba # Se exporta el vgPrueba y se guarda la
# configuración en el archivo vgPrueba.map, el cual se debe
# traspasar a npar2.

En Npar2
Se presenta la Lun a través de Eva, se ejecuta ioscan y después insf.
mkdir /dev/vgPrueba
ll /dev/*/group
# Se busca un Minor number disponible (suponemos el 0x030000)
mknod /dev/vgPrueba/group c 64 0x030000 #
vgimport –s –m /tmp/vgPrueba.map vgPrueba
vgchange –a y vgPrueba
mount /dev/vgPrueba/lvol01 /mnt

Eso es todo!.

Para más información, ver página 584 (Moving Disks Across Systems
) de “Managing Systems and Workgroups_ A Guide for HP-UX System Administrators.pdf” (http://www.docs.hp.com/en/B2355-90950/index.html)

Saludos,
ChaZcaZ./

Saturday, February 17, 2007

A retomar las clases de Saxo!

Aún estoy de vacaciones, pero acabo de hablar con Marcos Aldana (mi profesor de saxo) y le conté que voy a retomar las clases cuando vuelva a Santiasko (en realidad, después del viaje a Houston).

Marcos es seco y la hija (Melissa) es más seca aún (http://www.revistafibra.cl/gruesa/nro30/pdf/Melissa_Aldana.pdf). Espero poder aprender mucho en este regreso y ojalá que pueda continuar un buen tiempo.

Saludos,
ChaZcaZ./

Wednesday, December 20, 2006

Solaris: Forzar interfaces Gigabit - ce, bge, ipge, etc

Es bien conocido el hecho de que cuando se conecta una máquina a la red (lo he visto en Solaris, HP-UX, Windows, Linux, etc) si no se fuerza la tarjeta de red y el switch a la velocidad requerida, la transferencia de archivos y la comunicación es pésima.

En el trabajo, cada vez que se conecta un servidor a la red se debe forzar la interfaz de red, ya sea a 100 Mbps Full-Duplex o a 1000 Mbps Full-Duplex. Pero ojo, con las tarjetas Gigabit en Solaris he visto algunos problemas con el forzado, que explicaré a continuación.

Las inferces se pueden forzar con un archivo que modifica los parámetros a nivel de módulo en el Kernel (Ej: /kernel/drv/ce.conf) o a través del comando ndd (esto dura sólo hasta el reboot del servidor). El primer método es ún "poco" más complicado que el segundo, pero al final hacen lo mismo. En mi experiencia, da lo mismo cual de los métodos usar. En lo particular, utilizo ndd y el script /etc/rc2.d/S68net-tune.

Ahora viene lo importante. Con las tarjetas ce tenía el problema que cuando ocurría algun problema en el switch o reinicio de la máquina, el link de la tarjeta gigabit no volvía a subir. Tenía que activar la autonegociación para que levantara el link y después la forzaba a no autonegociar. Finalmente opté por dejarla a 1000 Mbps Full-Duplex con autonegociación ACTIVA.

En el caso de las ipge, cuando se fuerzan a 1000 Mbps Full-Duplex y autonegociación en OFF, el link nunca sube. La solución es dejar la Autonegociación en ON.

Ahora viene la pregunta (cuya respuesta no conocía y sólo me quedaba asumir): Por qué hay que dejar habilitada la autonegociación cuando se quiere forzar a 1000 Mbps Full-Duplex???

La respuesta la encontré en el documento de instalación y configuración de las tarjetas ipge (P/N: 819-4090-10):

De acuerdo a las especificaciones del IEEE 802.3, cuando se utiliza la velocidad de 1000 Mbit/sec sobre un medio de cobre, la autonegociación no es opcional. En la ausencia de autonegociación (por ejemplo, cuando se usa el modo Forced), la sincronización del link entre los link partners puede no ocurrir y el link no subirá.

Por lo tanto, para forzar una interfaz a 1 Gbps Full-Duplex en Solaris se debe dejar la autonegociación en 1 (On).

Ejemplo:
Para poder forzar la interfaz ipge1 con ndd, se debe ejecutar lo siguiente:
ndd -set /dev/ipge instance 1
ndd -set /dev/ipge adv_1000fdx_cap 1
ndd -set /dev/ipge adv_1000hdx_cap 0
ndd -set /dev/ipge adv_100fdx_cap 0
ndd -set /dev/ipge adv_100hdx_cap 0
ndd -set /dev/ipge adv_10fdx_cap 0
ndd -set /dev/ipge adv_10hdx_cap 0
ndd -set /dev/ipge adv_autoneg_cap 1

Saludos,
ChaZcaZ./

Wednesday, December 13, 2006

MPxIO de Solaris: como eliminar una LUN del sistema

Cuando se tiene configurado MPxIO y se desea eliminar una LUN del sistema, hay que tener presente que si la LUN no es eliminada del Traffic Manager (MPxIO), después pueden ocurrir cosas raras (personalmente, he presentado nuevas LUN y parecen ser idénticas a la eliminada, tamaños distintos, etc) que sólo se solucionan rebooteando el servidor (lo cual no es la idea).

El proceso de eliminar una LUN del sistema es simple, pero debe realizarse en orden. Básicamente, para eliminar una(s) LUN(s) del sistema se debe hacer lo siguiente:

1) Desmontar todos los filesystem que dependen de la(s) LUN(s) a eliminar (sacar de vfstab, etc)

2) Deportar diskgroup al que pertenece(n) la(s) LUN(s) o eliminar los volúmenes correspondientes (en el caso de VERITAS Volume Manager). Si es Solstice Disk Suite (o Solaris Volume Manager) eliminar los metadevices correspondientes.

3) Despresentar las LUNs desde el Storage (o desconectar discos en el caso de que sea una caja de discos sin inteligencia). La idea es que bajo MPxIO los discos queden en la condición unusable (esto se ve con el comando cfgadm -al -o show_FCP_dev en Solaris 8 y con cfgadm -al -o show_SCSI_LUN en Solaris 10, aunque el primer caso a mi me ha funcionado tanto en Solaris 8 como 10).

4) cfgadm no permite eliminar una única LUN del sistema, cuando el Storage conectado no es Sun (por lo menos eso me ha pasado con los StorageWorks HP EVA8000). Por esta razón, los discos se dejan en la condición unusable, para después poder eliminarlos con el siguiente comando (se debe hacer por cada PORT del Controlador del Storage por donde se ve el disco, de acuerdo a la salida del cfgadm -al -o show_FCP_dev):
cfgadm .c unconfigure -o unusable_FCP_dev DEVICE, donde DEVICE corresponde a cada puerto del controlador.

EJEMPLO
En este ejemplo, se tiene un servidor SunFire v880/Solaris 8/2 x HBA Sun/HP StorageWorks EVA8000/MPxIO/VERITAS Volume Manager 4.0.

En este punto ya se desmontaron filesystem, se sacaron de Volume Manager y se despresentaron las LUN desde el Storage.

Con el comando cfgadm -al -o show_FCP_dev debemos ver los discos en Condicion unusable:

# cfgadm -al -o show_FCP_dev
Ap_Id Type Receptacle Occupant Condition
c1 fc-private connected configured unknown
c1::21000004cf16426e,0 disk connected configured unknown
c1::21000004cf9b566c,0 disk connected configured unknown
c1::21000004cf9b6102,0 disk connected configured unknown
c1::21000004cf9b6107,0 disk connected configured unknown
c1::21000004cf9b6120,0 disk connected configured unknown
c1::21000004cfb47161,0 disk connected configured unknown
c1::508002000019f829 ESI connected configured unknown
c10 fc-fabric connected configured unknown
c10::50001fe150020dd9,0 array-ctrl connected unconfigured unknown
c10::50001fe150020dd9,1 disk connected configured unknown
c10::50001fe150020dd9,2 disk connected configured unknown
c10::50001fe150020dd9,3 disk connected configured unknown
c10::50001fe150020dd9,4 unavailable connected configured unusable
c10::50001fe150020ddb,0 array-ctrl connected unconfigured unknown
c10::50001fe150020ddb,1 disk connected configured unknown
c10::50001fe150020ddb,2 disk connected configured unknown
c10::50001fe150020ddb,3 disk connected configured unknown
c10::50001fe150020ddb,4 unavailable connected configured unusable
c10::50001fe150020ddd,0 array-ctrl connected unconfigured unknown
c10::50001fe150020ddd,1 disk connected configured unknown
c10::50001fe150020ddd,2 disk connected configured unknown
c10::50001fe150020ddd,3 disk connected configured unknown
c10::50001fe150020ddd,4 unavailable connected configured unusable
c10::50001fe150020ddf,0 array-ctrl connected unconfigured unknown
c10::50001fe150020ddf,1 disk connected configured unknown
c10::50001fe150020ddf,2 disk connected configured unknown
c10::50001fe150020ddf,3 disk connected configured unknown
c10::50001fe150020ddf,4 unavailable connected configured unusable
c11 fc-fabric connected configured unknown
c11::50001fe150020dd8,0 array-ctrl connected unconfigured unknown
c11::50001fe150020dd8,1 disk connected configured unknown
c11::50001fe150020dd8,2 disk connected configured unknown
c11::50001fe150020dd8,3 disk connected configured unknown
c11::50001fe150020dd8,4 unavailable connected configured unusable
c11::50001fe150020dda,0 array-ctrl connected unconfigured unknown
c11::50001fe150020dda,1 disk connected configured unknown
c11::50001fe150020dda,2 disk connected configured unknown
c11::50001fe150020dda,3 disk connected configured unknown
c11::50001fe150020dda,4 unavailable connected configured unusable
c11::50001fe150020ddc,0 array-ctrl connected unconfigured unknown
c11::50001fe150020ddc,1 disk connected configured unknown
c11::50001fe150020ddc,2 disk connected configured unknown
c11::50001fe150020ddc,3 disk connected configured unknown
c11::50001fe150020ddc,4 unavailable connected configured unusable
c11::50001fe150020dde,0 array-ctrl connected unconfigured unknown
c11::50001fe150020dde,1 disk connected configured unknown
c11::50001fe150020dde,2 disk connected configured unknown
c11::50001fe150020dde,3 disk connected configured unknown
c11::50001fe150020dde,4 unavailable connected configured unusable

Para explicar un poco la salida del comando anterior, tenemos lo siguiente:
- Este servidor tiene 3 controladoras de Fibra, que son c1 (controladora de discos internos de fibra), c10 y c11 (las 2 tarjetas HBA conectadas al EVA8000)
- El Storage EVA8K tiene 2 controladores y cada controlador tiene 4 Puertos. Esto implica que cada LUN la veré por 8 PATH distintos (2 Controllers * 4 Ports = 8 PATH).
- Por cada HBA se ve un controlador (los 4 PORTS de un controlador). Debajo de cada Puerto (array-ctrl) aparecen las LUN que están presentadas al servidor (el número de la LUN es el que está después de la ",").

En este caso, se ha despresentado una LUN, la LUN 4. Se puede apreciar que en todos los Puertos aparece la LUN ",4" en Condicion unusable. Hay que eliminarla una por una (8 veces) de cada Puerto. En el comando para eliminar, se debe poner el WWPN de cada Puerto (todo el chorizo hasta antes de la ","). De esta manera, el cfgadm va a eliminar todas los dispositivos que estén en estado unusable del Controlador indicado.

Para hacer todo en un sólo paso y poder automatizar el proceso de eliminación, hice un "script" que hace todo (pero todo lo que tiene que ver con MPxIO, no desmonta ni deporta grupos de discos):

cfgadm -al -o show_FCP_dev | grep unusable | awk '{print $1}' | while read t; do device=`echo $t | cut -d"," -f1`; cfgadm -c unconfigure -o unusable_FCP_dev $device; done

Saludos,
ChaZcaZ./

Como utilizar un Proxy bajo Consola en Ubuntu Linux

Cuando se está detrás de un proxy y se quiere hacer un apt-get por ejemplo desde línea de comando, este no funcionará si es que en el sources.list hay sitios que están en Internet.

Una solución para esto es utilizar la variable de entorno http_proxy

export http_proxy="http://direccion_ip_proxy:puerto/"

Saludos,
ChaZcaZ./

Wednesday, October 18, 2006

Blog de Solaris solidos

Bueno, este post se me borró no se como, así que vuelvo a poner algunas direcciones interesantes:

1) Brendan Gregg:
Solido en Solaris. Escribió el DTraceToolkit (Solaris 10) y K9Toolkit (Solaris 8 en adelante). Tiene cosas interesantes:
http://bdgregg.blogspot.com/
http://blogs.sun.com/brendan
http://www.brendangregg.com/

2) Blog O'Matty:
Este compadre siempre tiene papitas de Solaris, Linux, etc. Es sólido el Blog:
http://prefetch.net/blog/index.php/

3) Derek Crudgington
Tiene varias cosas interesantes de Solaris:
http://hell.jedicoder.net/

Eso por ahora.

Saludos,
ChaZcaZ./