Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

jueves, 29 de diciembre de 2011

Un saludo para cerrar este año 2011

Para cerrar este año 2011, quiero mostrar un orgullo y satisfaccion personal que fue la mencion de mi blog en la web de oracle.


Favorite Bloggers of OTN Latin America


image courtesy of wikipedia
By now you've probably heard of OTN Latinoamerica, the Spanish- and Portuguese-language version of the Oracle Technology Network. It provides resources similar to those on the English-language version, but in the local languages. And it focuses on the needs of Latin America's OTN members. 
They just had an update worthy of noting: their list of favorite bloggers. It categorizes Spanish- and Portuguese-language bloggers by application and region. If you live or work in Latin America, or just want to read something in your native language. Check it out.
And, if you're interested in Oracle Solaris, be sure to check out Apuntes de Solaris, Diego Aguirre's blog. Diego brought this list of bloggers to my attention.
- Rick


La mencion de este Blog en Oracle Technology Network

http://www.oracle.com/technetwork/es/articles/servers-storage-admin/configurar-sun-cluster-3-2-rac-asm-521494-esa.html


Quiero Agradecer   por toda la ayuda y buena onda  y predisposicion a las siguientes personas:

Rick Ramsey ( un genio)
Pablo Ciccarello ( por la buena onda )
Nicolas Morono ( compañero de trinchera  )
Carlos Lazarte ( un referente en Solaris )

martes, 20 de diciembre de 2011

Migrar / Clonar disco de Sistema Operativo Solaris

Procedmiento realizado por Nicolas Morono, para migrar / clonar un solaris 10 con ufsdump | ufsrestore.
 Despues de varios intentos el resultado final es este.



bootear de cdrom o de red ( boot cdrom -s  o  boot net -s)

#con format generar los slice de los discos para el / y para el swap y crear el fs
newfs /dev/dsk/c0t8d0s0
#configurar la ip y agregar ruta para poder montar por nfs la imagen a restorear.

ifconfig ce2 10.77.100.124 netmask 255.255.255.0
route add default 10.77.100.1

mount 10.11.33.114:/BACKUPS /mnt
mount /dev/dsk/c0t8d0s0 /a
cd /a
ufsrestore -rf /mnt/exdsunp002/BARRA.DMP
#### Selectivamente modificamos los archivos de configuracion necesarios 
/mnt/etc/hosts
/mnt/etc/hostname.*
/mnt/etc/nodename
/mnt/etc/vfstab
/mnt/etc/shadow
/mnt/etc/netmasks
/mnt/etc/defaultrouter

 /a/usr/sbin/installboot /a/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c0t8d0s0
cd /
umount /a

init 0

#### Aca viene lo complicado
### Booteamos en failsafe  ( Esta opcion funciona con los ultimos release de solaris 10 )
boot rootdisk -F failsafe

nos deberia de reconocer el disco y montarlo en /a

rm -rf /a/devices/*
rm -rf /a/dev/*
rm -rf /a/dev/.*

cp -p /tmp/root/etc/path_to_inst /a/etc/
devfsadm -r /a -p /a/etc/path_to_inst

init 0
boot -r

Importante: Recordar que en OBP este seteado correctamente el boot-device

jueves, 1 de diciembre de 2011

Que Servidores usan ILOM, ALOM4v, ALOM, LOM, ELOM, SP o RSC

Aca va una lista de equipos ,de un articulo tecnico de Sun, con cuales sistemas usan ILOM/ALOM4v/ALOM/LOM/ELOM/SP o RSC.


LOM
Sun Netra[TM] X1
Sun Netra[TM] T1400/1405
Sun Netra[TM] T1 AC200
Sun Netra[TM] T1 DC200
Sun Fire[TM] V100
Sun Fire[TM] V120
Sun Fire[TM] E2900
Sun Netra[TM] 20
Sun Fire[TM] V1280

ALOM
Sun Fire[TM] V125
Sun Fire[TM] V210
Sun Fire[TM] V215
Sun Fire[TM] V240
Sun Fire[TM] V245
Sun Fire[TM] V250
Sun Fire[TM] V440
Sun Fire[TM] V445

ALOM4v
Sun Fire[TM] T1000
Sun Fire[TM] T2000
Sun SPARC[TM] Enterprise T1000
Sun SPARC[TM] Enterprise T2000
Sun Netra[TM] T2000
Sun Blade[TM] T6300

ILOM
Sun Fire[TM] X4100
Sun Fire[TM] X4200
Sun Fire[TM] X4500
Sun Fire[TM] X4600
Sun Fire[TM] X4100 M2
Sun Fire[TM] X4200 M2
Sun Fire[TM] X4600 M2
Sun Blade[TM] 6000
Sun Blade[TM] 8000
Sun Netra[TM] X4200 M2
Sun SPARC[TM] Enterprise T5120
Sun SPARC[TM] Enterprise T5220
Sun Blade[TM] X6220
Sun Blade[TM] T6320

ELOM
Sun Fire[TM] X2100 M2
Sun Fire[TM] X2200 M2
Sun Blade[TM] X6250
Sun Blade[TM] X6450


SP
Sun Fire[TM] V20z
Sun Fire[TM] V40z


RSC
Sun Fire[TM] V890
Sun Fire[TM] V490
Sun Fire[TM] V880
Sun Fire[TM] V480
Sun Fire[TM] 280R
Sun Enterprise[TM] 250

viernes, 18 de noviembre de 2011

Solaris 2.6 a un Solaris 10 con container con solaris 8... Si, se puede.

Equipo Origen :
Enterprise 450 con solaris 2.6
Discos Internos
Oracle 8.1.5
Connect Direct 3303
Java 1.3

Equipo Destino :
Dominio de 25k solaris 10 release 09/10
Parches del EIS-DVD marzo 2011
Discos Internos Mirroreados con SVM
Storage Externo manejados con Veritas 5.0 Service Pack 3

Por obsolesencia de hardware y Software, tuvimos que migrar/upgradear del equipo origen (descripto mas arriba en este documento) al nuevo Hardware y Software.
Instale desde la imagen de un ufsdump deun equipo con solaris 8, una branded zone, en el equipo con la global con solaris 10.
Luego en la zona con solaris 8, pase con un ufsdump|ufsrestore remoto, pase del equipo origen a esta zona, los filesystems que contienen el motor de oracle, los datafiles y el connect direct.
Probamos levantar la base de datos, y la misma, funciono perfecto.
Probamos el Connect Direct con el mismo resultado.Antes tuve que modificarle a la zona con solaris 8, el hostid y cambiarlo por el que tenia el viejo equipo (esto es porque el Connect Direct, licencia por hostid)
El primer inconveniente que tuve, fue que el /etc/TIMEZONE estaba seteado en GMT-3 y la hora real estaba 6 horas adelantada.
Quize levantar el xntpd pero cuando se instala la braded zone, el script p2v ( physical to virtual) modifica el script de inicio del xntpd y no lo deja levantar.
Asi que fui por lo que pense que era la mejor opcion... compilarle un huso horario nuevo, con el comando /usr/sbin/zic


A continuacion, el paso a paso para la instalacion de la zona con solaris 8, el cambio de hostid, y la compilacion del nuevo huso horario.

root@GlobalZone # zonecfg -z ZONA1
ZONA1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:ZONA1> create -t SUNWsolaris8
zonecfg:ZONA1> set zonepath=/export/zona1
zonecfg:ZONA1> set autoboot=true
zonecfg:ZONA1> add net
zonecfg:ZONA1:net> set address=10.XX.33.90
zonecfg:ZONA1:net> set physical=ce2
zonecfg:ZONA1:net> end
zonecfg:ZONA1>
zonecfg:ZONA1> exit
solaris8_support error: The Solaris 8 Containers right-to-use package
has not been installed
ZONA1: Brand-specific error
Configuration not saved; really quit (y/[n])? y
root@GlobalZone #
*******Cuando me dio ese error le instale este paquete
root@GlobalZone # ls
SUNWs8brandk
root@GlobalZone # pkgadd -d .

The following packages are available:
 1  SUNWs8brandk     Solaris 8 Containers: solaris8 brand support RTU
                     (sparc) 11.10.0,REV=2008.09.20.18.50

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:
Processing package instance from

Solaris 8 Containers: solaris8 brand support RTU(sparc) 11.10.0,REV=2008.09.20.18.50
Copyright 2008 Sun Microsystems, Inc.  All rights reserved.

Use is subject to license terms.
Using as the package base directory.
## Processing package information.
## Processing system information.
  8 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.

The following files are already installed on the system and are being
used by another package:
 /usr/share/man/man5/solaris8.5

Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.

Installing Solaris 8 Containers: solaris8 brand support RTU as

## Installing part 1 of 1.
/usr/lib/brand/solaris8/files/patches/109147-44.zip
/usr/lib/brand/solaris8/files/patches/109221-01.zip
/usr/lib/brand/solaris8/files/patches/111023-03.zip
/usr/lib/brand/solaris8/files/patches/111431-01.zip
/usr/lib/brand/solaris8/files/patches/112050-04.zip
/usr/lib/brand/solaris8/files/patches/112605-04.zip
/usr/lib/brand/solaris8/files/patches/order
/usr/share/man/man5/solaris8.5
[ verifying class ]Installation of was successful.
root@GlobalZone #


y luego la volvi a crear y salio joya
root@GlobalZone # zonecfg -z ZONA1
ZONA1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:ZONA1> create -t SUNWsolaris8
zonecfg:ZONA1> set zonepath=/export/zona1
zonecfg:ZONA1> set autoboot=true
zonecfg:ZONA1> add net
zonecfg:ZONA1:net> set address=10.XX.33.90
zonecfg:ZONA1:net> set physical=ce2
zonecfg:ZONA1:net> end
zonecfg:ZONA1> exit
root@GlobalZone #
root@GlobalZone # zoneadm list -cv
 ID NAME             STATUS     PATH                           BRAND    IP
  0 global           running    /                              native   shared
  - ZONA1          configured /export/zona1                  solaris8 shared
root@GlobalZone # chmod 700 /export/zona1
root@GlobalZone #
root@GlobalZone # zoneadm -z ZONA1 install -p -v -a /mnt/solaris8/BARRA.DMP
     Log File: /var/tmp/ZONA1.install.9915.log
      Product: Solaris 8 Containers 1.0
    Installer: solaris8 brand installer 1.3
         Zone: ZONA1
         Path: /export/zona1
       Source: /mnt/solaris8/BARRA.DMP
   Media Type: ufsdump archive    Installing: This may take several minutes...
  Postprocess: Gathering information about zone ZONA1
  Postprocess: Creating mount points
  Postprocess: Processing /etc/system
  Postprocess: Booting zone to single user mode
  Postprocess: Applying p2v module S20_apply_patches
       S20_apply_patches:  Unpacking patch:  109147-44
       S20_apply_patches: Installing patch:  109147-44
       S20_apply_patches:  Unpacking patch:  111023-03
       S20_apply_patches: Installing patch:  111023-03
       S20_apply_patches:  Unpacking patch:  111431-01
       S20_apply_patches: Installing patch:  111431-01
       S20_apply_patches:  Unpacking patch:  112605-04
       S20_apply_patches: Installing patch:  112605-04
       S20_apply_patches:  Unpacking patch:  112050-04
       S20_apply_patches: Installing patch:  112050-04
       S20_apply_patches:  Unpacking patch:  109221-01
       S20_apply_patches: Installing patch:  109221-01
  Postprocess: Applying p2v module S31_fix_net
  Postprocess: Applying p2v module S32_fix_nfs
  Postprocess: Applying p2v module S33_fix_vfstab
  Postprocess: Applying p2v module S34_fix_inittab
  Postprocess: Applying p2v module S35_fix_crontab
  Postprocess: Applying p2v module S36_fix_pam_conf
  Postprocess: Applying p2v module S40_setup_preload
  Postprocess: Halting zone
  Postprocess: Postprocessing successful.
       Result: Postprocessing complete.
  Service Tag: Gathering information about zone ZONA1
  Service Tag: Adding service tag: urn:st:e8ea730c-8115-6af5-8e12-9590388aa6c6
  Service Tag: Operation successful.
       Result: Installation completed successfully.
     Log File: /export/zona1/root/var/log/ZONA1.install.9915.log
root@GlobalZone #
Pasos realizados para cambiar el hostid en la zona.
root@GlobalZone # zonecfg -z ZONA1
zonecfg:ZONA1> add attr
zonecfg:ZONA1:attr> set name=hostid
zonecfg:ZONA1:attr> set type=string
zonecfg:ZONA1:attr> set value=80f05bad
zonecfg:ZONA1:attr> end
zonecfg:ZONA1> exit
root@GlobalZone #

Pasos realizados para cambiar el huso horario.
1) Crear en /var/tmp el archivo newbsas con el siguiente contenido
Zone    America/Buenos_Aires    -3:00   -       ART     2011    Nov     15      00:00
                                -2:00   -       ART
2) Luego se compila el archivo
/usr/sbin/zic /var/tmp/newbsas
No requiere reboot, el cambio es instantaneo
chequeo el archivo generado por la compilacion
ls -ltr /usr/share/lib/zoneinfo/America|grep Buen

date y date -u para terminar con los chequeos
y todos contentos.



domingo, 30 de octubre de 2011

Malditos Parches

Tenia que actualizar los parches en Sun Solaris 10 release 1/06
Al intentar ejecutar el script install_all_patches, que viene en el DVD del EIS de marzo del 2011, el misma abortaba con el siguiente error.

Oct 30 01:03:35 2011

Oct 30 01:03:35 2011 This script will install the following patches:
Oct 30 01:03:35 2011 - Solaris 10 Recommended Patches
Oct 30 01:03:35 2011 - Solaris 10 Extra Patches
Oct 30 01:03:35 2011
Oct 30 01:03:35 2011 ONLY if your system has a graphics display:
Oct 30 01:03:35 2011 - You are advised not to have a graphics display active whilst patching!
Oct 30 01:03:35 2011 - Suggestion: Exit from CDE etc. & log back in on command line!
Oct 30 01:03:35 2011
Oct 30 01:03:44 2011 Are you ready to continue with install? [y/n]: y
Oct 30 01:03:44 2011
Oct 30 01:03:44 2011      ************************************************************
Oct 30 01:03:44 2011      ** INFO: Solaris 10 KU 118833-36 is currently installed.  **
Oct 30 01:03:44 2011      ************************************************************
Oct 30 01:03:44 2011
Oct 30 01:03:44 2011 Now the Solaris 10 Recommended Patches...
Oct 30 01:03:44 2011
Oct 30 01:03:44 2011 ERROR: Target boot environment not validated as Solaris 10 by INST_RELEASE file.
Oct 30 01:03:44 2011 Failed

Oct 30 01:03:44 2011
Oct 30 01:03:44 2011 ***********************************************************************
Oct 30 01:03:44 2011 * Installation of the Recommended OS patch cluster failed (see above) *
Oct 30 01:03:44 2011 ***********************************************************************

La solucion es la siguiente, Modificar el archivo INST_RELEASE la primer linea,
donde dice OS=Solaris4 cambiarla por O
S=Solaris
[coneja] /var/sadm/system/admin # cp INST_RELEASE INST_RELEASE.ANTESdeloParches
[coneja] /var/sadm/system/admin #

[coneja] /var/sadm/system/admin # ls -ltr
total 6
drwxr-xr-x   2 root     sys          512 Nov  8  2006 services
-rw-r--r--   1 root     root          30 Nov  8  2006 INST_RELEASE
-rw-r--r--   1 root     root          18 Nov  8  2006 CLUSTER
[coneja] /var/sadm/system/admin # more INST_RELEASE
OS=Solaris_4   Reemplazar , esta linea por esta OS=Solaris
VERSION=10
REV=0
 [coneja] /var/sadm/system/admin #

Tambien, puede o no pedirlo, en este caso el script se fija tambien si esta instalado el patch=118833-36 y en base a ese  dato hace unas verificaciones, para que no chequee esto y siga su curso, sugiero sacarlo del script install_all_patches.

Y... va como Piña

martes, 25 de octubre de 2011

Error al agregar una SB con DR.

Habia que agregar una System Board a un dominio, con el sistema operativo levantado.
Al loguearnos a la SC, y querer asignar la SB12 al dominio coneja nos da un  error de comunicacion, esto fue lo que hicimos, con Nico.
El Dominio tiene Solaris 10 y no hacia falta realizar un upgrade o downgrade de firmware porque la sb estaba instalada en otro dominio de la misma 25k.

e25k-2-sc0:sms-svc:18> addboard -d e sb12

ERROR: Unable to configure SB12 into domain: E
addboard: DCA/DCS communication error

Este error de comunicacion es porque no esta levantado el demonio dca en la System controler o el dcs en el dominio a asignar la SB.
Chequeo en la SC y efectivamente esta levantado
e25k-2-sc0:sms-svc:19> ps -ef|grep dca
 sms-dca   130   696  0   Jan 12 ?        0:00 dca -d C
 sms-dca 16160   696  0   Sep 27 ?        0:00 dca -d B
 sms-dca 24394   696  0   Aug 19 ?        0:00 dca -d J
 sms-dca 11039   696  0   Sep 10 ?        0:00 dca -d A
 sms-dca 12590   696  0   Sep 13 ?        0:00 dca -d F
 sms-dca 18983   696  0   Apr 10 ?        0:00 dca -d G
 sms-dca  8266   696  0   Mar 09 ?        0:00 dca -d D
 sms-dca 19674   696  0   May 31 ?        0:00 dca -d I
 sms-dca 22635   696  0   Oct 13 ?        0:00 dca -d E

Dentro del equipo, el demonio estaba en estado maintenance

[coneja] # svcs -a|grep dcs
maintenance    Sep_04   svc:/platform/sun4u/dcs:default
[coneja] #

Existe un bug al upgradear la versión de solaris (en 10/2010 habiamos instalado parches)

Solucion, borrar el servicio y volver a crearlo desde cero

[coneja] #  inetadm -l dcs

SCOPE    NAME=VALUE
Error: Required property name is missing.
Error: Required property endpoint_type is missing.
Error: Required property proto is missing.
Error: Required property isrpc is missing.
Error: Required property wait is missing.
Error: Required property exec is missing.
Error: Required property user is missing.
default  bind_addr=""
default  bind_fail_max=-1
default  bind_fail_interval=-1
default  max_con_rate=-1
default  max_copies=-1
default  con_rate_offline=-1
default  failrate_cnt=40
default  failrate_interval=60
default  inherit_env=TRUE
default  tcp_trace=FALSE
default  tcp_wrappers=FALSE
default  connection_backlog=10

[coneja] # svcs dcs
STATE          STIME    FMRI
maintenance    14:40:17 svc:/platform/sun4u/dcs:default
[coneja] # svcadm disable dcs

[coneja] # svcs dcs

STATE          STIME    FMRI
disabled       14:52:29 svc:/platform/sun4u/dcs:default

[coneja] # svccfg -v delete dcs
svccfg: Expected property external of property group svc:/platform/sun4u/dcs/:properties/network is missing.
svccfg: Expected property external of property group svc:/platform/sun4u/dcs/:properties/cryptosvc is missing.
svccfg: Expected property external of property group svc:/platform/sun4u/dcs/:properties/filesystem_usr is missing.
svccfg: Expected property external of property group svc:/platform/sun4u/dcs/:properties/nodename is missing.
svccfg: Expected property external of property group svc:/platform/sun4u/dcs/:properties/sckmd is missing.

[coneja] # svcs dcs

svcs: Pattern 'dcs' doesn't match any instances
STATE          STIME    FMRI

[coneja]  # svccfg -v import /var/svc/manifest/platform/sun4u/dcs.xml
svccfg: Taking "initial" snapshot for svc:/platform/sun4u/dcs:default.
svccfg: Taking "last-import" snapshot for svc:/platform/sun4u/dcs:default.
svccfg: Refreshed svc:/platform/sun4u/dcs:default.
svccfg: Successful import.

[coneja] /var # svcs dcs

STATE          STIME    FMRI

disabled       14:53:12 svc:/platform/sun4u/dcs:default

[coneja]  # svcadm enable dcs

[coneja]  # svcs dcs

STATE          STIME    FMRI
online         14:53:30 svc:/platform/sun4u/dcs:default

Y ahora si, a agregar la SB

e25k-2-sc0:sms-svc:20> addboard -d e sb12
assign SB12
.
assign SB12 done
poweron SB12
........................
poweron SB12 done
test SB12
............                
test SB12 done
connect SB12
...........                  
connect SB12 done
configure SB12
.........
configure SB12 done
.
notify online SUNW_cpu/cpu384
notify online SUNW_cpu/cpu388
notify online SUNW_cpu/cpu385
notify online SUNW_cpu/cpu389
notify online SUNW_cpu/cpu386
notify online SUNW_cpu/cpu390
notify online SUNW_cpu/cpu387
notify online SUNW_cpu/cpu391
.
notify add capacity (8 cpus)
notify add capacity (4194304 pages)
notify add capacity SB12 done
.

jueves, 13 de octubre de 2011

Lo atamos con alambre

Pequeña historia con algunas conclusiones :

El equipo XXX No Responde al ping.
Bueno, vamos a ver el equipo al Centro de Computos, con mi compañero Nicolas Morono.
El equipo habia entrado en un booteo en loop.
Uhhh , aca empieza la historia, el equipo es un Enterprise 450 con Solaris 2.6, de donde sacamos un cd de esa epoca?
y bueno, lo conseguimos

Ahi nomas un STOP + A
desde el OBP , un boot cdrom -s y a intentar un fsck
pero .... Se rompio la lectora de CD.
A esta altura , ya teniamos 2 problemas, Disco Roto y Lectora de CD Rota.
Intentamos bootear via OBP a un servidor remoto con
setenv network-boot-arguments host-ip=ip_de_server,router-ip=gw_del_server,subnet-mask=255.255.255.0,hostname=hostname-server,file=http://10.11.33.106/cgi-bin/wanboot-cgi
pero la version de OBP era muy vieja y no tenia la opcion de network boot, obviamente tampoco podiamos actualizar la OBP, porque no teniamos lectora de CD.
No nos queda mas remedio, llamamos a Soporte Oracle/Sun para que nos envien un repuesto de disco y lectora de cd ( el ingeniero que tomo el caso todavia se debe estar cagando de risa de la version de Sistema Operativo y Hardware )
Mientras tanto, vamos por la opcion bien Argentina, desarmemos otro equipo, revisemos a ver que hay por ahi.
Encontramos un V210 con 2 discos internos, mirroreados con Solaris Volume Manager , con Solaris 10. Perfecto.
Destornillador y manos a la obra,
Antes de sacar el disco del v210, le editamos el /etc/shadow, y el /etc/system , para que no pida passwd y que no arroje errores por la parte de Solaris Volume Manager.
Insertamos el disco del v210 en el E450, y el que tenia el Solaris 2.6 lo ponemos en otra bahia.
boot -s desde el disco con solaris 10
El boot con el disco de solaris 10 no anduvo bien en single user porque no detectaba/reconfiguraba correctamente  el hardware y no veiamos los discos internos.
Booteamos con opcion de solaris 10 "boot -F failsafe", esta opcion busca en los discos instalaciones de solaris  y te da la opcion de montarlas en /a (se toma su tiempo)

Desde esa opcion montando el solaris 10, conseguimos hacer un ufsrestore desde cinta dds3 de filesystems /, /var, /usr y /home.
reconstruimos el bootblk desde el solaris 10 y booteamos (esta opcion No funciona.)

Volvimos a bootear con boot -F failsafe otra vez con solaris 10 y esta vez montamos el /usr viejo (solaris 2.6 ) en /mnt y ejecutamos
/mnt/usr/sbin/installboot /mnt/usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/dsk/c0t1d0s0

Reboot y salio andando.
Cerramos el caso con Oracle.


Conclusion nro1 : el disco interno del v210 entra perfectamente en el E450
Conclusion nro 2: el installboot bootblk debe hacerse con la misma version de OS

martes, 11 de octubre de 2011

Cambiar el nombre del host

Para cambiar el nombre del hosts permanentemente, existen 2 modos.
con el menu del sys-unconfig ( requiere reboot)
o modificando los siguientes archivos manualmente :
/etc/hosts
/etc/hostname*
/ec/nodename
En versiones previas a solaris 10, inlcuir estos archivos tambien
/etc/net/ticlts/hosts
/etc/net/ticots/hosts
/etc/net/ticotsord/hosts

y Luego reboot

Container con solaris 8

La idea era traer de un equipo viejo, con hardware obsoleto a otro que al menos tenga soporte. Para eso utilize un v210 con solaris 10 y me traje con ufsdump el backup del sistema operativo del solaris 8.
Aca esta el paso a paso de la creacion del container :

Pasos previos a la instalacion de la zona
En el equipo viejo , realizo un backup del solaris 8
 ufsdump 0uf /backup/BARRA.DMP /
luego me traigo el BARRA.DMP al v210 nuevo.
en el V210, genero el fs donde residira la zona con el solaris 8
newfs /dev/rdsk/c2t1d0s0 /ZONAS
mkdir /ZONAS
chmod 700 /ZONAS

En viejos releases de solaris 10, hay que bajar un package  s8containers-bundle-solaris10-sparc.tar.gz


gzip -d s8containers-bundle-solaris10-sparc.tar.gz
tar xvf s8containers-bundle-solaris10-sparc.tar
cd s8containers-bundle/1.0.1/Product
[skol] /usr/scripts/s8containers-bundle/1.0.1/Product # pkgadd -d .

The following packages are available:
  1  SUNWs8brandk     Solaris 8 Containers: solaris8 brand support RTU
                      (sparc) 11.10.0,REV=2008.09.20.18.50

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:

Processing package instance from
## Installing package in global zone

Solaris 8 Containers: solaris8 brand support RTU(sparc) 11.10.0,REV=2008.09.20.18.50
Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Using as the package base directory.
## Processing package information.
## Processing system information.
   8 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.

The following files are already installed on the system and are being
used by another package:
  /usr/share/man/man5/solaris8.5

Do you want to install these conflicting files [y,n,?,q] y
## Checking for setuid/setgid programs.

Installing Solaris 8 Containers: solaris8 brand support RTU as

## Installing part 1 of 1.
/usr/lib/brand/solaris8/files/patches/109147-44.zip
/usr/lib/brand/solaris8/files/patches/109221-01.zip
/usr/lib/brand/solaris8/files/patches/111023-03.zip
/usr/lib/brand/solaris8/files/patches/111431-01.zip
/usr/lib/brand/solaris8/files/patches/112050-04.zip
/usr/lib/brand/solaris8/files/patches/112605-04.zip
/usr/lib/brand/solaris8/files/patches/order
/usr/share/man/man5/solaris8.5
[ verifying class ]

Installation of was successful


y Aca viene la instalacion

[skol] /ZONAS # zonecfg -z SOLARIS8
SOLARIS8: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:SOLARIS8> create -t SUNWsolaris8
zonecfg:SOLARIS8> set zonepath=/ZONAS/SOLARIS8
zonecfg:SOLARIS8> set autoboot=true
zonecfg:SOLARIS8> add net
zonecfg:SOLARIS8:net> set address=10.71.100.98
zonecfg:SOLARIS8:net> set physical=bge0
zonecfg:SOLARIS8:net> end
zonecfg:SOLARIS8> exit
[skol] /ZONAS # zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - SOLARIS8         configured /ZONAS/SOLARIS8                solaris8 shared
[skol] /ZONAS #
[skol] /ZONAS # zonecfg -z SOLARIS8
zonecfg:SOLARIS8> info
zonename: SOLARIS8
zonepath: /ZONAS/SOLARIS8
brand: solaris8
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
net:
        address: 10.71.100.98
        physical: bge0
        defrouter not specified
zonecfg:SOLARIS8>exit


[skol] /ZONAS # zoneadm -z SOLARIS8 install -p -v -a /ZONAS/BARRA.DMP
      Log File: /var/tmp/SOLARIS8.install.17125.log
       Product: Solaris 8 Containers 1.0
     Installer: solaris8 brand installer 1.3
          Zone: SOLARIS8
          Path: /ZONAS/SOLARIS8
        Source: /ZONAS/BARRA.DMP
    Media Type: ufsdump archive
    Installing: This may take several minutes...
  Sanity Check: Passed.  Looks like a Solaris 8 system.
Postprocessing: This may take several minutes...
   Postprocess: Gathering information about zone SOLARIS8
   Postprocess: Creating mount points
   Postprocess: Processing /etc/system
   Postprocess: Booting zone to single user mode
   Postprocess: Applying p2v module S20_apply_patches
        S20_apply_patches:  Unpacking patch:  109147-44
        S20_apply_patches: Installing patch:  109147-44
        S20_apply_patches:  Unpacking patch:  111023-03
        S20_apply_patches: Installing patch:  111023-03
        S20_apply_patches:  Unpacking patch:  111431-01
        S20_apply_patches: Installing patch:  111431-01
        S20_apply_patches:  Unpacking patch:  112605-04
        S20_apply_patches: Installing patch:  112605-04
        S20_apply_patches:  Unpacking patch:  112050-04
        S20_apply_patches: Installing patch:  112050-04
        S20_apply_patches:  Unpacking patch:  109221-01
        S20_apply_patches: Installing patch:  109221-01
   Postprocess: Applying p2v module S31_fix_net
   Postprocess: Applying p2v module S32_fix_nfs
   Postprocess: Applying p2v module S33_fix_vfstab
   Postprocess: Applying p2v module S34_fix_inittab
   Postprocess: Applying p2v module S35_fix_crontab
   Postprocess: Applying p2v module S36_fix_pam_conf
   Postprocess: Applying p2v module S40_setup_preload
   Postprocess: Halting zone
   Postprocess: Postprocessing successful.
        Result: Postprocessing complete.
   Service Tag: Gathering information about zone SOLARIS8
   Service Tag: Adding service tag: urn:st:02760bc1-0f12-4af8-f7be-82b17da0378d
   Service Tag: Operation successful.

        Result: Installation completed successfully.
      Log File: /ZONAS/SOLARIS8/root/var/log/SOLARIS8.install.17125.log
[skol] /ZONAS #                                                              

[skol] /ZONAS # zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - SOLARIS8         installed  /ZONAS/SOLARIS8                solaris8 shared
[skol] /ZONAS #              


[skol] /ZONAS # zoneadm -z SOLARIS8 ready
[skol] /ZONAS # zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   4 SOLARIS8         ready      /ZONAS/SOLARIS8                solaris8 shared
[skol] /ZONAS # zoneadm -z SOLARIS8 boot

En Medio de esto, entre a /ZONAS/SOLARIS8/root/etc/shadow y modifique para que root  no pida password
[skol] /ZONAS/SOLARIS8/root/etc # zlogin SOLARIS8
[Connected to zone 'SOLARIS8' pts/2]
Last login: Wed Sep 16 16:28:06 from 10.71.100.100
Sun Microsystems Inc.   SunOS 5.8       Generic Patch   February 2004
You have new mail.
[angra] / # df -k
Filesystem            kbytes    used   avail capacity  Mounted on
/                    30982173 9643911 21028441    32%    /
/.SUNWnative/lib     18354602 4276990 13894066    24%    /.SUNWnative/lib
/.SUNWnative/platform
                     18354602 4276990 13894066    24%    /.SUNWnative/platform
/.SUNWnative/usr     18354602 4276990 13894066    24%    /.SUNWnative/usr
/dev                 30982173 9643911 21028441    32%    /dev
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                 5562192      16 5562176     1%    /etc/svc/volatile
/dev/ksyms           18354602 4276990 13894066    24%    /dev/ksyms
fd                         0       0       0     0%    /dev/fd
swap                 5562240      64 5562176     1%    /tmp
[angra] / #                                                  

jueves, 11 de agosto de 2011

NFS LOCO

Problema del NFS
Tenia que hacer un servidor centralizadode backups, en el cual compartiera por NFS, un FS /BACKUP , y ahi alojar los ufsdump de distintos equipos.
La idea era que por cron una vez por semana, desde los solaris que no tenian unidad de cinta, hiciera un ufsdump del fs barra ( / )  a este
servidor que exportaba el NFS.
Pero... cuando queria sobreescribir el archivo me daba un error, abajo lo describo en detalle y como lo solucione.
Equipo Anfitrion:  ( Solaris 10 rel 8/07 )
Desde este equipo, exporto un fs /BACKUP por nfs
share -F nfs -o anon=0 -d "Fs Backups" /BACKUPS

Desde otros solaris, con distintos releases, incluso con distintas versiones, monto el fs /BACKUP en /mnt

Hago el ufsdump 0uf /BACKUP/”nombredelequipoclienteNFS”/BARRA.DMP

Esto lo hace perfecto. Graba el archivo sin inconvenientes.
El problema es cuando, a la semana siguiente se ejecuta de nuevo el script, y este va a sobreescribir el archivo BARRA.DMP, me dice que
No puede sobreescribirlo porque el usuario no es uid 0 or 0 .
Este error solo me lo da con el release 1/06 de Solaris 10.

Me fije, en unos de los que si funcionaba, y tenia comentada esa variable (NFSMAPID_DOMAIN=domain ).

Lo que hice fue lo siguiente :

En los equipos que serian los clientes de nfs  con Solaris 10, comente esa variable en /etc/default/nfs y ahora funcionan ok.

miércoles, 10 de agosto de 2011

prstat : not enough memory : Not enough space ( encontre la solucion al problema de la resaca)

prstat not enough memory ??? si hay un monton de memoria libre, swap  libre, que raro, bueno, el problema eran los fucking file descriptors
coneja] / # prstat                           
prstat: not enough memory: Not enough space 
Tenia 4096 fd y lo cambie para probar en 1024 ( que es el default)    
[coneja] / # ulimit -a                        
time(seconds)        unlimited                  
file(blocks)         unlimited                  
data(kbytes)         unlimited                  
stack(kbytes)        8192                       
coredump(blocks)     unlimited                  
nofiles(descriptors) 4096                       
vmemory(kbytes)      unlimited                  
[coneja] / # ulimit -n 1024                   
[coneja] / # ulimit -a                        
time(seconds)        unlimited                  
file(blocks)         unlimited                  
data(kbytes)         unlimited                  
stack(kbytes)        8192                       
coredump(blocks)     unlimited                  
nofiles(descriptors) 1024                       
vmemory(kbytes)      unlimited  

Y.... Arranco
               
[coneja] / # prstat                           
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 26465 x300106   651M  613M sleep   60    0   1:17:33 8.0% oracle/11  
 14553 x300106   638M  610M sleep    0    0   0:45:13 7.4% oracle/11
 14549 20443050   51M   45M sleep    0    0   0:29:12 4.7% m_clonacion/1
 14165 sshd      981M  967M cpu33    0    0   0:00:55 3.7% oracle/1
 20669 2046      544M  516M sleep   60    4   0:00:44 3.0% oracle/1
 10331 2046      549M  521M sleep   60    4   0:05:20 1.9% oracle/1
 24179 20443085  621M  176M sleep   59    0   6:10:30 1.5% hedgehog/5
 13536 20443082  817M  368M sleep   59    0  12:43:26 0.9% hedgehog/5
 12723 2015     2003M 1957M sleep   26    0   0:04:28 0.6% oracle/11
  1068 784      1050M  110M sleep   59    0  17:52:57 0.5% hedgehog/5
 22401 784      1081M  247M sleep   59    0   2:28:27 0.5% hedgehog/5
  7764 root       18M 5560K sleep   40    0  33:06:19 0.5% scopeux/1
  1064 784      1049M  185M sleep   59    0  13:47:23 0.4% hedgehog/5
 19111 sshd      983M  957M sleep   40    0   2:07:08 0.4% oracle/1
 20081 2016      942M  320M sleep   59    0  13:44:33 0.4% hedgehog/5
 26495 20443085  657M   88M sleep   59    0   9:01:23 0.3% hedgehog/5
 12870 x300106   647M  565M sleep   59    0   3:09:33 0.2% oracle/14
 26350 2016     1953M  100M sleep   59    0   0:01:26 0.2% hedgehog/5
 12862 x300106   641M  558M sleep   51    0   0:51:01 0.2% oracle/258
 12866 x300106   641M  557M sleep   59    0   0:50:02 0.2% oracle/258
    30 2016      561M   59M sleep   59    0   0:16:58 0.2% hedgehog/5
 12868 x300106   641M  557M sleep   56    0   0:50:06 0.2% oracle/258
  1067 784       569M   94M sleep   59    0   5:57:39 0.2% hedgehog/5
 12860 x300106   641M  570M sleep   59    0   0:50:05 0.2% oracle/258
 18619 2046      545M  474M sleep   42    4   0:02:33 0.1% oracle/258
 21887 sshd      985M  962M sleep   51    0   0:08:52 0.1% oracle/29
 19597 2035      937M  821M sleep   59    0  21:19:20 0.1% oracle/1
 18617 2046      545M  478M sleep   41    4   0:02:38 0.1% oracle/258
 18621 2046      551M  478M sleep   47    4   0:12:33 0.1% oracle/13
  7737 root     1256K  136K sleep   49    0   7:16:29 0.1% perf64/1
 18675 2046      562M  502M sleep   41    4   0:02:21 0.1% oracle/11
 18677 2046      551M  488M sleep   43    4   0:02:00 0.1% oracle/18
  3073 root       15M   11M sleep   59    0   4:44:48 0.1% discusge/1
 12872 x300106   646M  578M sleep   59    0   0:07:04 0.1% oracle/20
 12878 x300106   636M  588M sleep   55    0   0:11:12 0.1% oracle/1
 22683 root     2528K 2128K cpu32   50    0   0:00:00 0.1% prstat/1
   892 sshd      981M  950M sleep   59    0   0:14:33 0.1% oracle/1
 19715 2035      933M  870M sleep   59    0   9:29:46 0.1% oracle/1
 18633 2046      539M  490M sleep   47    4   0:11:06 0.0% oracle/1
 16193 sshd      981M  951M sleep   59    0   0:02:29 0.0% oracle/1
 19571 2035      935M  850M sleep   59    0   5:36:40 0.0% oracle/1
  8075 root       66M 5256K sleep   59    0   1:59:37 0.0% seosd/1
 22644 2015     1877M 1845M sleep   52    0   0:00:00 0.0% oracle/1
  8933 root       66M 5096K sleep   59    0   1:38:38 0.0% seosd/1
 18623 2046      550M  491M sleep   47    4   0:03:50 0.0% oracle/15
 17055 sshd      981M  960M sleep   59    0   0:00:46 0.0% oracle/1
 16185 sshd      982M  952M sleep   59    0   0:01:26 0.0% oracle/1
  2810 root       66M 6696K sleep   59    0   2:13:10 0.0% seosd/1
 17051 sshd      982M  961M sleep   59    0   0:00:27 0.0% oracle/1
 22738 root       48M   17M sleep   43    0   0:13:30 0.0% opcmona/8
  4237 sshd      534M  504M sleep   59    0   0:10:41 0.0% oracle/1
 18831 root       48M   16M sleep   54    0   0:11:36 0.0% opcmona/8
 19665 root      215M   10M sleep   59    0   2:21:47 0.0% coda/9
Total: 767 processes, 6676 lwps, load averages: 3.84, 4.56, 4.67
[coneja] / #

El equipo donde tirana el error era :
[coneja] / # prtdiag -v|more
System Configuration:  Sun Microsystems  sun4u Sun Fire E25K
System clock frequency: 150 MHz
Memory size: 32768 Megabytes



lunes, 8 de agosto de 2011

Prtdiag ( cortito y al pie )


Cuando no refresca el prtdiag -v , se debe restartear el picld
svcadm restart picld
doc id que avala esto es 212205

viernes, 5 de agosto de 2011

Problema instalando una zona

Instalando una zona desde cero , me encontre con este error y  la solucion es artesanal, aca dejo el paso a paso.
[coneja]# zonecfg -z zona1 -f /usr/scripts/creaZONA1.ksh
[coneja]# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona1            configured /export/zona1                  native   shared
[coneja]# chmod 700 /export/zona1
[coneja]# zoneadm -z zona1 install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <139425> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1171> packages on the zone.
Initialized <1171> packages on zone.                                 [[2;5~
Zone is initialized.
Installation of <12> packages was skipped.
The file contains a log of the zone installation.
HASTA ACA VENIA TODO PERFECTO........
[coneja]# zoneadm -z zona1 ready
[coneja] # zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 zona1            ready      /export/zona1                  native   shared
[coneja] # zoneadm -z zona1 boot
[coneja]# zlogin zona1 ( Cuando Quiero loguearme a la zona, que instale recien, no levantaban servicios)
# svcs -xv
svc:/system/sysidtool:net (sysidtool)
 State: offline since Mon May 18 10:02:53 2009
Reason: Start method is running.
   See: http://sun.com/msg/SMF-8000-C4
   See: man -M /usr/man -s 1M sysidtool
   See: /var/svc/log/system-sysidtool:net.log
Impact: 28 dependent services are not running:
        svc:/network/rpc/bind:default
Recorté la salida de los logs del svcs -xv        
   See: /var/svc/log/application-print-ppd-cache-update:default.log
Impact: This service is not running.
#                                                        
LO UNICO LOCO QUE VEO ES en el /ETC
-rw-r--r--   1 root     other          0 May 18 09:44 .UNCONFIGURED
-rw-r--r--   1 root     other         40 May 18 09:51 .sysidconfig.apps
# more .sysidconfig.apps
/usr/sbin/sysidkbd
/lib/svc/method/sshd
LUEGO APLICO la SOLUCION  de la Ing SCIARRILLO
# rm .UNCONFIGURED
# rm .sysidconfig.apps
# reboot    ( reboot de la zona)
[Connection to zone 'zona1' pts/2 closed]
[coneja]# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   2 zona1            running    /export/zona1                  native   shared
[coneja] /usr/scripts #                    
Ejecuto esto
    /usr/sbin/sysidnet
     /usr/sbin/sysidns
     /usr/sbin/sysidsys
     /usr/sbin/sysidroot
     /usr/sbin/sysidpm
     /usr/sbin/sysidnfs4
     /usr/sbin/sysidkbd

y Salio Andando 10 PuntoS

jueves, 7 de julio de 2011

Problemas con el boot de Solaris x86

Me paso un par de veces con los solaris 10 x86 sobre blades IBM y HP.
Luego de un reboot , forzado o no, quedando el equipo en modo mantenimiento.
Generalmente lo arreglo con la opcion 1, pero en alguna oportunidad tuve que usar la opcion 2, que es cuando me da el sig error : Error 3 bad or corrupt data while decompressing file.
Ingresar a la ILOM y loguearme a la consola del equipo
Solucion 1 )
Desde el grub de solaris
Ingresar a la opcion de Solaris Failsafe
svcadm clear system/boot-archive  (Esto repara el fs si es necesario )

Solucion 2 )
La solucion es
Ingresar a la opcion de Solaris Failsafe
svcadm clear system/boot-archive  (Esto repara el fs si es necesario )
Montar el disco de booteo con la opcion de lectura/escritura en /a
rm -f /a/platform/i86pc/boot_archive
bootadm update-archive -R /a
reboot
y sale andando.

lunes, 4 de julio de 2011

Modificar Diskgroup Sun Cluster 3.3

La finalidad es sacar un filesystem (/archives ) de un DiskGroup existente y que esta bajo el control del cluster
Crear un Diskgroup ( ARCHDG), agregarle el filesystem (/archives ) que saque anteriormente y que este nuevo DG quede bajo el control del cluster.
Aca va el Paso a Paso.
1) Descubrir el Disco que me asignaron y Labelearlo
cfgadm -f -c configure c(nro de controladora)
devfsadm -C ( -C significa modo Clean Up )
devfsadm ( crea special files en el /devices y logical links en /dev )
scdidadm -C ( remueve todas las referencias DID de todos los dispositivos Detachados )
scdidadm -r ( reconfiguro los DID ) (en ambos nodos )
scgdevs ( updatea el /globaldevices )
scdpm -p all:all ( chequea que este bien el did en ambos nodos del cluster, suele demorar un rato , no menos de 5 minutos dependiendo la cantidad de discos que tenga)
vxdctl enable
OJO: Los comandos arriba mencionados,Deben ser ejecutados en AMBOS nodos del cluster
vxdisk -e list  ( tomar nota del disco nuevo a agregar al veritas)
vxdiskadm ( opcion 1 ) con esto agrego el disco nuevo y creo el nuevo Diskgroup (ARCHDG)
Chequeo que Diskgroup esta bajo el control del cluster, Solo hay uno.
sunrac1 # cldg list
Interdg
sunrac1 #
Ahora agrego el nuevo DiskGRoup ARCHDG al control del Cluster.
cldg create -t vxvm -n sunrac1,sunrac2 -p preferenced=true ARCHDG
Vuelvo a Chequear y Quedo Joya.
sunrac1 # cldg list
ARCHDG
Interdg
sunrac1 #
Ahora creo el nuevo volumen
sunrac1 # vxassist -g ARCHDG maxsize layout=concat Archdg01
Maximum volume size: 314472448 (153551Mb)
sunrac1 # vxassist -g ARCHDG make vol01 153551M layout=concat Archdg01
Ahora, debo sincronizar el DG , caso contrario cuando quiera hacer el newfs, me va a decir que no puede.
sunrac1 # cldevicegroup sync Archdg
sunrac1 # newfs /dev/vx/rdsk/Archdg/vol01
Luego , Modificar el /etc/vfstab en AMBOS NODOS, para luego montar el fs creado.

lunes, 13 de junio de 2011

Direct IO y la p......

El escenario era el siguiente :
Teniamos un dominio del 10.000, conectado directamente a 2 storage externos un EMC y un SHARK, el s.o era solaris 7, con oracle 9.2.01
Migramos dicho servidor a un 4900, con solaris 10 , veritas 4.0 y oracle 10, conectado a el mismo storage pero a travez de una SAN ( switch brocade 24K ), con placa qlogic 2340.
 El problema era el siguiente :

Luego de migrar, la gente de base de datos decia que :
Las aplicaciones que hacen acceso random a los datafiles de oracle, tienen mucha mas demora que en la maquina anterior.
Las operaciones que realizan un acceso secuencial sobre los datafiles, funcionan mucho mejor. ( fullscan).            

Teniamos hasta el momento,segun estos datos, 2 lugares hacia donde apuntar, los discos de la SAN o quizas los parametros de la placa qlogic.

Por ejemplo, uno de los parametros a modificar en el /kernel/drv/qlc.conf , podria llegar a ser el hba1-execution-throttle=256 ( donde el actual es 1 )   
LUEGO, tocamos los siguientes parametros en el /etc/system :

El dba, me dijo que bajaron los tiempos con este parametro
* Tamanio fisico maximo de un I/O con VM                 
* Unidad=sector (de 512 bytes)                       
   
set vxio:vol_maxio=32768                                 

Tocamos parametros de Veritas de io

Luego de esto ultimo, El DBA me dijo que ya estaba solucionado el problema y que el resto seria un bug de Oracle, por lo cual pedi cerrar el caso en sun.

A los 2 o 3 dias, seguimos con los mismos problemas.
El escenario sigue siendo el mismo que detalle al comienzo .
El tema es que el error los da en forma aleatoria. ya sea en forma secuencial o random.

Lo que probe hacer fue bajar desde veritas con el vxtunefs bajar el parametro  discover_direct_ioz a 64 k, segun me guie en el siguiente blue print
http://www.sun.com/blueprints/0400/ram-vxfs.pdf             
                                                                                      

Pero se sigue dando el error en forma aleatoria y mas seguido cuando se trabaja con lectura random.

Abreviando muchismo, aca fue donde afinamos la punteria :
1) Generamos 2 filesystems para probar, ellos son /interfaz y /carga.
al filesystem /carga le sacamos el parametro directio de las opciones del mount.
y al filesystem /interfaz, le dejamos la opcion directio en el vfstab, que es como esta en el ambiente productivo.
/dev/vx/dsk/SOS/vol01 /dev/vx/rdsk/SOS/vol01 /carga vxfs 3 yes largefiles                                        
/dev/vx/dsk/SOS/vol02 /dev/vx/rdsk/SOS/vol02 /interfaz vxfs 3 yes largefiles,convosync=direct                    
Realizamos las siguientes pruebas.                                                                               
 En el fs /carga, ejecutamos un vxbench con opciones , write, read, random write,                                
 random read sin direct i/o y un vxbench con las mismas opciones pero con directio.                              

 A continuacion muestro la salida de los vxbench que hicimos en el fs /carga, Observemos los tiempos de
 la primer columna , como se pegan un viaje cuando los tiras con directio.      
Write SIN Directio
 /carga/PRUEBA # /usr/sbin/vxbench -w write -i iosize=16,iocount=10000,nrep=
10 test1
 total: 5.088 sec 314448.66 KB/s cpu: 4.84 sys 0.21 user                           
Read SIN Directio                                                                  
 /carga/PRUEBA # /usr/sbin/vxbench -w read -i iosize=16,iocount=10000,nrep=10 test1
 total: 2.830 sec 565335.87 KB/s cpu: 2.65 sys 0.17 user                           
Write CON Directio                                                                 
 /carga/PRUEBA #/usr/sbin/vxbench -w write -i iosize=16,iocount=10000,nrep=10 -c direct test2
 total: 101.390 sec 15780.62 KB/s cpu: 12.01 sys 0.47 user                                  
READ CON Directio
 /carga/PRUEBA # /usr/sbin/vxbench -w read -i iosize=16,iocount=10000,nrep=10 -c direct test2
 total: 88.032 sec 18175.25 KB/s cpu: 10.05 sys 0.45 user
Randon Write SIN Directio
 /carga/PRUEBA # /usr/sbin/vxbench -w rand_write -i iosize=16,iocount=10000,nrep=10 test3
 total: 19.299 sec 82906.56 KB/s cpu: 18.09 sys 0.43 user
Randon READ SIN Directio
/carga/PRUEBA # /usr/sbin/vxbench -w rand_read -i iosize=16,iocount=10000,nrep=10 test3
 total: 6.507 sec 245873.36 KB/s cpu: 6.17 sys 0.32 user
Random Write CON Directio
/carga/PRUEBA # /usr/sbin/vxbench -w rand_write -i iosize=16,iocount=10000,nrep=10 -c directio
 total: 362.794 sec 4410.21 KB/s cpu: 53.67 sys 0.77 user
Random READ CON Directio
/carga/PRUEBA # /usr/sbin/vxbench -w rand_read -i iosize=16,iocount=10000,nrep=10 -c directio
 total: 663.139 sec 2412.77 KB/s cpu: 12.64 sys 0.56 user
/carga/PRUEBA #


Hicimos las mismas pruebas sobre el filesystem /interfaz, es decir el que esta montado con directio
y la conclusion fue ....................:
En el /etc/vfstab, sacamos la opcion convosync=direct de los filesystems de la Base de Datos y anduvo Perfecto.

 
       



 


                       
                

I/O Error Sobre Storage Externo

Me llamaron diciendo que les daba IO error algunos filesystems, el error que mostraba el /var/adm/messages era este :
Aug 17 16:29:17 coneja fctl: [ID 517869 kern.warning] WARNING: 942=>fp(3)::GPN_ID for D_ID=64a200 failed
Aug 17 16:29:17 coneja fctl: [ID 517869 kern.warning] WARNING: 943=>fp(3)::N_x Port with D_ID=64a200, PWWN=5005076801403680 disappeared from fabric
Aug 17 16:29:17 coneja fctl: [ID 517869 kern.warning] WARNING: 952=>fp(3)::GPN_ID for D_ID=64e200 failed
Aug 17 16:29:17 coneja fctl: [ID 517869 kern.warning] WARNING: 953=>fp(3)::N_x Port with D_ID=64e200, PWWN=5005076801303680 disappeared from fabric
Aug 17 16:29:18 coneja fctl: [ID 517869 kern.warning] WARNING: 964=>fp(1)::GPN_ID for D_ID=64a900 failed
Aug 17 16:29:18 coneja fctl: [ID 517869 kern.warning] WARNING: 965=>fp(1)::N_x Port with D_ID=64a900, PWWN=5005076801103680 disappeared from fabric
Aug 17 16:29:18 coneja fctl: [ID 517869 kern.warning] WARNING: 974=>fp(1)::GPN_ID for D_ID=64e900 failed
Aug 17 16:29:18 coneja fctl: [ID 517869 kern.warning] WARNING: 975=>fp(1)::N_x Port with D_ID=64e900, PWWN=5005076801203680 disappeared from fabric
Aug 17 17:03:28 coneja mpxio: [ID 669396 kern.info] /scsi_vhci/ssd@g60050768019901b4000000000000002a (ssd107) multipath status: optimal, path /pci@8,600000/SUN
W,qlc@2/fp@0,0 (fp3) to target address: 5005076801403680,0 is offline. Load balancing: round-robin
Aug 17 17:03:28 coneja scsi: [ID 243001 kern.info]    Target 0x64e200: Device type=0x1f Nonzero pqual=0x1


El storage externo , tuvo problemas y los fs quedaron con IO error
chequeo el metastat |grep -i Errored
los filesystems quedan doblados, lo que hay que hacer es un umount del filesystem y montarlo, sino chilla, lo dejo asi.
Si putea por io error le corro un fsck  y luego lo monto.

[coneja] /var/adm # umount /u18
[coneja] /var/adm # mount /u18
mount: I/O error
mount: cannot mount /dev/md/dsk/d58

[coneja] /var/adm # fsck /dev/md/dsk/d58
** /dev/md/rdsk/d58
** Last Mounted on /u18
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3a - Check Connectivity
** Phase 3b - Verify Shadows/ACLs
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cylinder Groups

CORRECT BAD CG SUMMARIES FOR CG 0? y

CORRECTED SUPERBLOCK SUMMARIES FOR CG 0
CORRECTED SUMMARIES FOR CG 0
FRAG BITMAP WRONG
FIX? y

CORRECT GLOBAL SUMMARY
SALVAGE? y

Log was discarded, updating cyl groups
10 files, 12582971 used, 5358831 free (7 frags, 669853 blocks, 0.0% fragmentation)

***** FILE SYSTEM WAS MODIFIED *****

[coneja] /var/adm #

Algunos filesystems que NO tiraron IO error pero daban Errored en el status del metastat, no hizo falta correrles el fsck, solo umount y mount
[coneja] /var/adm # umount /u01
umount: /u01 busy
[coneja] /var/adm # metastat d41
d41: Soft Partition
    Device: d40
    State: Errored
    Size: 41943040 blocks (20 GB)
        Extent              Start Block              Block count
             0                     2080                 41943040

coneja] /var/adm # umount -f /u01
[coneja] /var/adm # mount  /u01
[coneja] /var/adm # metastat d41
d41: Soft Partition
    Device: d40
    State: Okay
    Size: 41943040 blocks (20 GB)
        Extent              Start Block              Block count
             0                     2080                 41943040

Device Relocation Information:
Device                                  Reloc   Device ID
c6t60050768019901B4000000000000002Ad0   Yes     id1,ssd@w60050768019901b4000000000000002a
c6t60050768019901B4000000000000002Bd0   Yes     id1,ssd@w60050768019901b4000000000000002b
c6t60050768019901B4000000000000002Cd0   Yes     id1,ssd@w60050768019901b4000000000000002c
[coneja] /var/adm #

Por lo que estuve viendo en sunsolve, hay un parche mas nuevo para la SAN, que es el 113039-25 (requiere REBOOT) quizas solucione esto.

martes, 3 de mayo de 2011

Verificar Errores de hardware

Para ver si hay errores de hardware en solaris x86 .

# fmdump

TIME UUID SUNW-MSG-ID

Jan 17 15:08:04.4536 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jan 17 19:57:49.6819 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jan 19 12:51:43.9301 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jan 19 13:17:37.6284 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jun 24 15:26:45.2892 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jun 24 21:42:32.6692 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

Jun 24 22:59:35.5318 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

# fmdump -v -u 4868ef14-b7a7-43ac-86a5-856b8c4d292c

Jun 24 22:59:35.5318 4868ef14-b7a7-43ac-86a5-856b8c4d292c AMD-8000-3K

100% fault.memory.dimm_ck

Problem in: hc:///motherboard=0/chip=1/memory-controller=0/dimm=1

Affects: mem:///motherboard=0/chip=1/memory-controller=0/dimm=1

FRU: hc:///motherboard=0/chip=1/memory-controller=0/dimm=1

# fmadm faulty

STATE RESOURCE / UUID

-------- ----------------------------------------------------------------------

degraded mem:///motherboard=0/chip=1/memory-controller=0/dimm=1

4868ef14-b7a7-43ac-86a5-856b8c4d292c

-------- ----------------------------------------------------------------------

Luego de que el tecnico de hardware haga el reemplazo de la parte que se rompio, hacer lo siguiente

# fmadm repair 4868ef14-b7a7-43ac-86a5-856b8c4d292c

fmadm: recorded repair to 4868ef14-b7a7-43ac-86a5-856b8c4d292c

#

Resetear los errores

# fmadm reset eft

fmadm: eft module has been reset

#

# fmadm faulty

STATE RESOURCE / UUID

-------- ----------------------------------------------------------------------

jueves, 28 de abril de 2011

Modificar Parametros del Kernel en Solaris 10

Para modificar la cantidad maxima de files descriptors, o la cantidad maxima de semaforos para oracle, tipear, como root :
projmod -s -K "process.max-file-descriptor=(basic,10000,deny)" group.dba
projmod -s -K "project.max-shm-memory=(priv,8192MB,deny)" group.dba

en este caso group.dba es el proyecto que tengo creado en el /etc/project .
No es necesario bootear, ya que el cambio es permanente, pero si, es necesario desloguearse como oracle y volver a loguear.

lunes, 28 de marzo de 2011

Movimiento de zonas entre equipos

En el siguiente escenario :
Equipo A, un dominio con 5 zonas , tuve que mover una de las zonas a un nuevo equipo ( equipo B ) con distinto storage.
Equipo B, tiene un release nuevo de solaris, asi que tengo que actualizar la zona.

En el equipo B
mkdir -p /export/zona3
mount /dev/md/dsk/d103 /export/zona3
chmod 700 /export/zona3
crear la zona,
zonecfg -z zona3
create -b
set zonepath=/export/zona3
set autoboot=true
add net
set address=10.78.1xx.144
set physical=ce2
end
Luego, en el equipo A copio el sistema operativo de la zona, a la zona global del equipo B
ufsdump 0f - /export/zona3/ |ssh 10.78.1xx.143 "(cd /export/zona3; ufsrestore -rf -)"

Vuelvo al equipo B

zoneadm list -cv
ID NAME STATUS PATH
0 global running /
- zona3 installed /export/zona3

Actualizo la zona 3, porque la zona global del equipo original, tiene un release mas viejo que la zona global del nuevo.
zoneadm -z zona3 attach -u
Luego en la global del equipo B,montar los filesystems en cualquier punto de montaje, para poder hacer la copia

Luego parado en equipo A,
Bajar todos los procesos de la zona 3 ( no apagarla )
Copiar a la zona global del equipo B
ufsdump 0f - /export/zona3/ |ssh 10.78.1xx.143 "(cd /export/zona3; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u00 |ssh 10.78.1xx.143 "(cd /ZONA3_u00; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u01 |ssh 10.78.1xx.143 "(cd /ZONA3_u01; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u02 |ssh 10.78.1xx.143 "(cd /ZONA3_u02; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u03 |ssh 10.78.1xx.143 "(cd /ZONA3_u03; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u04 |ssh 10.78.1xx.143 "(cd /ZONA3_u04; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u05 |ssh 10.78.1xx.143 "(cd /ZONA3_u05; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u06 |ssh 10.78.1xx.143 "(cd /ZONA3_u06; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u07 |ssh 10.78.1xx.143 "(cd /ZONA3_u07; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u08 |ssh 10.78.1xx.143 "(cd /ZONA3_u08; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u09 |ssh 10.78.1xx.143 "(cd /ZONA3_u09; ufsrestore -rf -)"
ufsdump 0f - /export/zona3/root/u10 |ssh 10.78.1xx.143 "(cd /ZONA3_u10; ufsrestore -rf -)"


Una vez finalizada la copia , en el equipo A :
zlogin zona3 y APAGAR la ZONA3.
Luego comentar en el /etc/zones/index, la linea que dice zona3 ( para evitar que en un booteo del equipo levante esta zona)

En el equipo B
desmontar todos los /ZONA3* porque estos deben montar dentro de la zona
luego
zoneadm -z zona3 boot
zlogin zona3
chequear que este todo levantado

Problemas con los que me encontre.
Al intentar levantarla, a zona quedaba parada con los servicios del sysidnet. y no seguia.
Solucion :
touch /etc/.UNCONFIGURED
puse en 0 (cero) la opcion # System previously configured? del archivo /etc/.sysIDtool.state
y corri en forma manual todo lo que hace el sysidtool
/usr/sbin/sysidnet
/usr/sbin/sysidns
/usr/sbin/sysidsys
/usr/sbin/sysidroot
/usr/sbin/sysidpm
/usr/sbin/sysidnfs4
/usr/sbin/sysidkbd

Luego de eso, la zona siguio levantando en forma normal.

Otro problemita ,
Tenia 9 instancias de oracle ejecutandose originalmente, pero en esta nueva zona,solo levantaba 7 instancias,y abortaba por falta de memoria.
Asi que desde la zona global le corrimos un
projmod -s -K "project.max-shm-memory=(priv,8192MB,deny)" oracle_SIEBEL
y levantaron todas las bases como lo esperaba.
Hasta este punto, anduvo todo perfecto, pero... cuando quisimos instalar oracle 11g, el instalador hace un chequeo para ver que release de solaris tiene instalado, pero NO usa el /etc/release sino que usa este comando
/usr/bin/pkginfo -l SUNWsolnm | /usr/bin/nawk -F= '/VERSION/ {"/usr/bin/uname -r" | getline uname; print uname "-" $2}'es decir, chequea el paquete SUNWsolnm, que es el encargado de actualizar el release, y el zoneadm attach -u NO upgradea este paquete.
Solucion :
Si la zona global tiene de los ultimos release de solaris 10, ejecutar el attach con la opcion -U ( mayusculas),  si vamos a usar esta opcion, tener en cuenta que modifica algunos archivos, como el /etc/hosts y el sudoers , que reemplaza el de la zona actualizada por los de la global.
Si tengo un release viejo, seguir estos otros pasos.
Backup de la zona.
dentro de la zona, ejecutar un init 0
zoneadm -z zona3 uninstall -F ( esto borra Toda la zona )
Genero la zona desde cero, como esta descripto al principio.
y luego
zoneadm -z zona3 install
luego un restore selectivo de algunos archivos de configuracion, passwd, shadow, group, todo el home de los usuarios, resolv.conf , hosts, y scripts de inicio residentes en el /etc/init.d
zoneadm -z zona3 boot
y listo