Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

miércoles, 21 de septiembre de 2016

Problem with LDMD  daemon and the solution (spanish version)

In this article , we describe with my collegue  Nicolas Morono,  a bug with ldmd daemon and how to restore the previous configuration of the Logical Domains  ( LDOMs ) using ldm-db.xml file

When we wanted assign a lun to a LDOM, we find with this trouble :

# ldm list
Failed to connect to logical domain manager: Connection refused

We check and the service ldmd is in maintenance state
svcs -xv
svc:/ldoms/ldmd:default (Logical Domains Manager)
State: maintenance since June 2, 2016 06:36:16 PM ART
Reason: Start method exited with $SMF_EXIT_ERR_FATAL.
See: /var/svc/log/ldoms-ldmd:default.log
Impact: This service is not running.

In the  /var/adm/messages it showed this errors

Jun 2 18:36:16 m5-1-pdom2 svc.startd[33]: [ID 652011 daemon.warning] svc:/ldoms/ldmd:default: Method "/opt/SUNWldm/bin/ldmd_start" failed with exit status 95.
Jun 2 18:36:16 m5-1-pdom2 svc.startd[33]: [ID 748625 daemon.error] ldoms/ldmd:default failed fatally: transitioned to maintenance (see 'svcs -xv' for details)
Jun 2 18:36:16 m5-1-pdom2 fmd: [ID 377184 daemon.error] SUNW-MSG-ID: SMF-8000-YX, TYPE: defect, VER: 1, SEVERITY: major
Jun 2 18:36:16 m5-1-pdom2 EVENT-TIME: Thu Jun 2 18:36:16 ART 2016
Jun 2 18:36:16 m5-1-pdom2 PLATFORM: SPARC-M5-32, CSN: AK00xx8x1, HOSTNAME: m5-1-pdom2
Jun 2 18:36:16 m5-1-pdom2 SOURCE: software-diagnosis, REV: 0.1
Jun 2 18:36:16 m5-1-pdom2 EVENT-ID: 889f64a0-0102-efd6-997f-8e83e7fba09a
Jun 2 18:36:16 m5-1-pdom2 DESC: A service failed - a start, stop or refresh method failed.
Jun 2 18:36:16 m5-1-pdom2 AUTO-RESPONSE: The service has been placed into the maintenance state.
Jun 2 18:36:16 m5-1-pdom2 IMPACT: svc:/ldoms/ldmd:default is unavailable.
Jun 2 18:36:16 m5-1-pdom2 REC-ACTION: Run 'svcs -xv svc:/ldoms/ldmd:default' to determine the generic reason why the service failed, the location of any logfiles, and a list of other services impacted. Please refer to the associated reference document athttp://support.oracle.com/msg/SMF-8000-YX for the latest service procedures and policies regarding this diagnosis.
Jun 2 18:40:28 m5-1-pdom2 cmlb: [ID 107833 1

We check in the svc logs  

cat /var/svc/log/ldoms-ldmd:default.log
Jun 02 18:35:16 timeout waiting for op HVctl_op_get_bulk_res_stat
Jun 02 18:35:16 fatal error: waiting for hv response timeout

[ Jun 2 18:35:16 Stopping because process dumped core. ]
[ Jun 2 18:35:16 Executing stop method (:kill). ]
[ Jun 2 18:35:16 Executing start method ("/opt/SUNWldm/bin/ldmd_start"). ]
Jun 02 18:36:16 timeout waiting for op HVctl_op_hello
Jun 02 18:36:16 fatal error: waiting for hv response timeout

[ Jun 2 18:36:16 Method "start" exited with status 95. ]

We looked at the oracle docs and came to the conclusion that there was a  bug  in firmware versions below  1. 14.2  which matched our environment.
We opened a service request to confirm the analyzed by us and the proposed solution was the same.


The bug is in Hypervisors lower than the version 1.14.2 .

- The short term solution is to perform a power-cycle the system.
- The solution to medium / long term is to update the system firmware to a recent version ( HypV 1.14.2 or Higher )



At this point we find that solutions involve a power cycle that involves all running LDOMS and total reboot of the machine.
We decided to perform the firmware upgrade and make the power-cycle, but we realized that the last saved settings LDOMS is old and we  will lose 6 months changes in LDOMs configurations ( like creation of new LDOMs , disk assignments, allocation of network cards, etc )


The solution applied to solved this situation was as follow :

Prior to reboot the PDOM, we backup the file  ldom-db.xml  located in  /var/opt/SUNWldm , ( this file make the Magic ) this file has all the settings that are active in PDOM regardless of whether or not you saved in the SP .
We copy this file ( ldom-db.xml ) in /usr/scripts , to use after easily without a restore from the backup

Here are the steps used 
From the ilom
We make the power-cycle 
stop Servers/PDomains/PDomain_2/HOST 
y then
start Servers/PDomains/PDomain_2/HOST

Once we Boot the PDOM and with the LDOMs down and  unbind,  we take a backup of the file ldom-db.xml  and disable the ldom service daemon.

root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      0.2%  0.2%  8d 2h 38m
dnet1002         active     -n----  5002    8     8G       0.5%  0.5%  5d 2h 49m
dsunt100         active     -n----  5000    48    40G      0.0%  0.0%  8d 1h 34m
dsunt200         active     -n----  5001    48    40G      0.0%  0.0%  2m
root@#

root@ # ldm stop dsunt200
LDom dsunt200 stopped
root@ # ldm unbind dsunt200

root@ # ldm stop dsunt100
LDom dsunt100 stopped
root@ # ldm unbind dsunt100

root@ # ldm stop dnet1002
LDom dnet1002 stopped
root@ # ldm unbind dnet1002


root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      0.5%  0.5%  8d 2h 40m
dnet1002         inactive     ------      8     8G       
dsunt100         inactive    ------      48    40G      
dsunt200         inactive   ------       48    40G
root@ #


cd /var/opt/SUNWldm
cp -p ldom-db.xml ldom-db.xml.orig
svcadm disable ldmd

##### Here we use the file stored previoulsy in /usr/scripts/,  Now we overwrite the original stored in  /var/opt/SUNWldm
cp -p /usr/scripts/ldom-db.xml /var/opt/SUNWldm/ldom-db.xml        

Enable the ldmd service.
svcadm enable ldmd

### We check the configuration to see if everythings is OK, bind and start of ldoms .
Then, we make an init 6 and after that .. bind and start to all ldoms like we show you next


root@ # ldm bind dsunt200
root@ # ldm start dsunt200
LDom dsunt200 started
root@ # ldm bind dsunt100
root@ # ldm start dsunt100
LDom dsunt100 started
root@ # ldm bind dnet1002
root@ # ldm start dnet1002
LDom dnet1002 started

root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      3.7%  3.7%  8d 2h 55m
dnet1002         active     -n----  5002    8     8G       0.7%  0.7%  3s
dsunt100         active     -n----  5000    48    40G      0.0%  0.0%  2s
dsunt200         active     -n----  5001    48    40G      9.1%  1.0%  2s
root@ #


PS : Please forgive my english  ;-) 

miércoles, 14 de septiembre de 2016

Problema con LDMD y solucion aplicada

( english version)
En este documento , describimos con mi compañero Nicolas Morono,  un problema con el demonio ldmd  y como lo recuperar la configuracion de los LDOMs  desde el archivo ldm-db.xml

Al querer asignarle una lun a un dominio nos dio el siguiente error :

# ldm list
Failed to connect to logical domain manager: Connection refused

chequeo y el servicio ldmd esta caido
# svcs -xv
svc:/ldoms/ldmd:default (Logical Domains Manager)
State: maintenance since June 2, 2016 06:36:16 PM ART
Reason: Start method exited with $SMF_EXIT_ERR_FATAL.
See: /var/svc/log/ldoms-ldmd:default.log
Impact: This service is not running.

en el /var/adm/messages estan estos errores registrados

Jun 2 18:36:16 m5-1-pdom2 svc.startd[33]: [ID 652011 daemon.warning] svc:/ldoms/ldmd:default: Method "/opt/SUNWldm/bin/ldmd_start" failed with exit status 95.
Jun 2 18:36:16 m5-1-pdom2 svc.startd[33]: [ID 748625 daemon.error] ldoms/ldmd:default failed fatally: transitioned to maintenance (see 'svcs -xv' for details)
Jun 2 18:36:16 m5-1-pdom2 fmd: [ID 377184 daemon.error] SUNW-MSG-ID: SMF-8000-YX, TYPE: defect, VER: 1, SEVERITY: major
Jun 2 18:36:16 m5-1-pdom2 EVENT-TIME: Thu Jun 2 18:36:16 ART 2016
Jun 2 18:36:16 m5-1-pdom2 PLATFORM: SPARC-M5-32, CSN: AK00xx8x1, HOSTNAME: m5-1-pdom2
Jun 2 18:36:16 m5-1-pdom2 SOURCE: software-diagnosis, REV: 0.1
Jun 2 18:36:16 m5-1-pdom2 EVENT-ID: 889f64a0-0102-efd6-997f-8e83e7fba09a
Jun 2 18:36:16 m5-1-pdom2 DESC: A service failed - a start, stop or refresh method failed.
Jun 2 18:36:16 m5-1-pdom2 AUTO-RESPONSE: The service has been placed into the maintenance state.
Jun 2 18:36:16 m5-1-pdom2 IMPACT: svc:/ldoms/ldmd:default is unavailable.
Jun 2 18:36:16 m5-1-pdom2 REC-ACTION: Run 'svcs -xv svc:/ldoms/ldmd:default' to determine the generic reason why the service failed, the location of any logfiles, and a list of other services impacted. Please refer to the associated reference document at http://support.oracle.com/msg/SMF-8000-YX for the latest service procedures and policies regarding this diagnosis.
Jun 2 18:40:28 m5-1-pdom2 cmlb: [ID 107833 1

En el log del svc  estan estos errores

# cat /var/svc/log/ldoms-ldmd:default.log
Jun 02 18:35:16 timeout waiting for op HVctl_op_get_bulk_res_stat
Jun 02 18:35:16 fatal error: waiting for hv response timeout

[ Jun 2 18:35:16 Stopping because process dumped core. ]
[ Jun 2 18:35:16 Executing stop method (:kill). ]
[ Jun 2 18:35:16 Executing start method ("/opt/SUNWldm/bin/ldmd_start"). ]
Jun 02 18:36:16 timeout waiting for op HVctl_op_hello
Jun 02 18:36:16 fatal error: waiting for hv response timeout

[ Jun 2 18:36:16 Method "start" exited with status 95. ]

Se busco en los documentos de oracle y llegamos a la conclusion de que habia un bug en versiones de firmware inferiores a 1.14.2 que se correspondia con nuestro entorno.
Se abrio un service request para confirmar lo analizado por nosotros y  la solucion propuesta fue la misma.


En si, el bug es en Hypervisors inferiores a la version 1.14.2.
- La solución a corto plazo es realizar un power-cycle del sistema.
- La solución a mediano/largo plazo es actualizar el Firmware del sistema a una version reciente (HypV 1.14.2 o superior). 


Llegado a este punto nos encontramos que las soluciones implican un power-cycle que implica bajar todos los ldoms corriendo y el reinicio total de la maquina.
Optamos por realizar el upgrade de firmware y al realizar el powercycle nos damos cuenta que la ultima configuracion de ldoms guardada es vieja y vamos a perder 6 meses de
modificaciones en las configuraciones de los ldoms. (creaciones de ldoms nuevos, asignaciones de discos, asignacion de placas de red, etc)

La solucion aplicada para solucionar esto fue la siguiente:

Se busco en /var/opt/SUNWldm el archivo ldom-db.xml previo a bootear el equipo, ese archivo tiene toda lo configuracion que esta activa en el pdom
independientemente de si esta o no guardada en la sp.
Se dejo una copia del archivo en /usr/scripts (asi no era necesario realizar un restore del backup )

Se realiza el power-cycle desde ilom 
stop Servers/PDomains/PDomain_2/HOST 
y luego 
start Servers/PDomains/PDomain_2/HOST

Una vez booteado el equipo y con los ldoms bajos y unbind, tomamos backup del archivo ldom-db.xml y deshabilitamos el demonio de ldoms.

root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      0.2%  0.2%  8d 2h 38m
dnet1002         active     -n----  5002    8     8G       0.5%  0.5%  5d 2h 49m
dsunt100         active     -n----  5000    48    40G      0.0%  0.0%  8d 1h 34m
dsunt200         active     -n----  5001    48    40G      0.0%  0.0%  2m
root@#

root@ # ldm stop dsunt200
LDom dsunt200 stopped
root@ # ldm unbind dsunt200

root@ # ldm stop dsunt100
LDom dsunt100 stopped
root@ # ldm unbind dsunt100

root@ # ldm stop dnet1002
LDom dnet1002 stopped
root@ # ldm unbind dnet1002


root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      0.5%  0.5%  8d 2h 40m
dnet1002         inactive     ------      8     8G       
dsunt100         inactive    ------      48    40G      
dsunt200         inactive   ------       48    40G
root@ #


cd /var/opt/SUNWldm
cp -p ldom-db.xml ldom-db.xml.orig
svcadm disable ldmd

##### aca habia backupeado y dejado en /usr/scripts/ el archivo con la data. Ahora pisamos el original de /var/opt/SUNWldm
cp -p /usr/scripts/ldom-db.xml /var/opt/SUNWldm/ldom-db.xml        

# Volvemos a habilitar el demonio.
svcadm enable ldmd

### chequeo la config , bind y start de los dominios si quedaron ok. Aca luego de chequear la configuracion se le dio un init 6 para que reinicie normalmente

y despues de eso se dio bind y start a los dominios.

root@ # ldm bind dsunt200
root@ # ldm start dsunt200
LDom dsunt200 started
root@ # ldm bind dsunt100
root@ # ldm start dsunt100
LDom dsunt100 started
root@ # ldm bind dnet1002
root@ # ldm start dnet1002
LDom dnet1002 started

root@ # ldm ls
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  NORM  UPTIME
primary          active     -n-cv-  UART    8     16G      3.7%  3.7%  8d 2h 55m
dnet1002         active     -n----  5002    8     8G       0.7%  0.7%  3s
dsunt100         active     -n----  5000    48    40G      0.0%  0.0%  2s
dsunt200         active     -n----  5001    48    40G      9.1%  1.0%  2s
root@ #


viernes, 13 de mayo de 2016

Creacion de un LDOM paso a paso

Paso a paso de la creacion de un Ldom
Se utilizo un t5-2 . Documento realizado por Nicolas Morono


### Seteamos los parametros de la primary (memoria y cpu)
ldm set-vcpu 16 primary
ldm set-memory 16g primary
### Agregamos vcc vsw vds y los isos de instalacion
## Creamos el virtual console conentrator.
ldm add-vcc port-range=5000-5100 primary-vcc0 primary
## Creamos el virtual network switch
ldm add-vsw net-dev=net4 vsw4 primary
ldm add-vsw net-dev=net5 vsw5 primary
ldm add-vsw net-dev=net1 vsw1 primary
## Creamos el virtual disk server y le agregamos dos isos.
ldm add-vds primary-vds0 primary



#### Creando los zpool
zpool create psunt100_so c0t600014400000001070211E0F481E625Ed0
zpool create psunt200_so c0t600014400000001070211E0F481E625Fd0

### Creando zvols
 zfs set mountpoint=none psunt100_so 
 zfs create -V 75g psunt100_so/vol1
 zfs create -V 200m psunt100_so/volreplicas  (esto es porque dentro del Ldom uso SVM )

 zfs set mountpoint=none psunt200_so 
 zfs create -V 75g psunt200_so/vol1
 zfs create -V 200m psunt200_so/volreplicas


 ### Creando los ldoms
 ldm add-domain psunt100
 ldm add-domain psunt200
 ldm add-vcpu 64 psunt100
 ldm add-vcpu 32 psunt200
 ldm add-memory 64g psunt100
 ldm add-memory 32g psunt200
 ldm add-vnet vnet1 vsw4 psunt100
 ldm add-vnet vnet2 vsw1 psunt100
 ldm add-vnet vnet1 vsw5 psunt200
 ldm add-vnet vnet2 vsw1 psunt200

 ### Me parece muy poca la memoria en los ldoms y mucha en el primary asi que reconfiguro
 ldm start-reconf primary
 ldm set-vcpu 8 primary
 ldm set-memory 16G primary 
 ### Reinicio

 ### Creando el virtual disk server de cada ldom
 ldm  add-vds psunt100-vds0 primary 
 ldm  add-vds psunt200-vds0 primary 

 ### Asignando vdsdevs
 ldm add-vdsdev /dev/zvol/dsk/psunt100_so/vol1 vol1@psunt100-vds0       
 ldm add-vdsdev /dev/zvol/dsk/psunt100_so/volreplicas volreplicas@psunt100-vds0

 ldm add-vdsdev /dev/zvol/dsk/psunt200_so/vol1 vol1@psunt200-vds0               
 ldm add-vdsdev /dev/zvol/dsk/psunt200_so/volreplicas volreplicas@psunt200-vds0 

 ### Asignado vdisk a los ldoms
 ldm add-vdisk vdiskrep volreplicas@psunt100-vds0 psunt100
 ldm add-vdisk vdisk1 vol1@psunt100-vds0 psunt100           

 ldm add-vdisk vdiskrep volreplicas@psunt200-vds0 psunt200 
 ldm add-vdisk vdisk1 vol1@psunt200-vds0 psunt200          

 ### Creando y montando los dvd para instalar y parchear (los dos de una sola vez)
 ldm add-vdsdev options=ro /sun/sol-10-u11-ga-sparc-dvd.iso sol10u11@primary-vds0 
 ldm add-vdsdev options=ro,slice /sun/EIS-DVD-ONE-20APR16.iso eis20160420@primary-vds0

 ldm add-vdsdev options=ro /sun/sol-10-u11-ga-sparc-dvd.iso sol10u11_2@primary-vds0 
 ldm add-vdsdev options=ro,slice /sun/EIS-DVD-ONE-20APR16.iso eis20160420_2@primary-vds0

 ldm add-vdisk sol10u11 sol10u11@primary-vds0 psunt100 
 ldm add-vdisk eis20160420 eis20160420@primary-vds0 psunt100 

 ldm add-vdisk sol10u11 sol10u11_2@primary-vds0 psunt200 
 ldm add-vdisk eis20160420 eis20160420_2@primary-vds0 psunt200 

 ### Seteo variable
 ldm add-variable auto-boot?=false psunt100
 ldm add-variable auto-boot?=false psunt200

 ### Bindeo los ldoms y empiezo a instalar
 ldm bind psunt100
 ldm bind psunt200

 ### Esto para que funcione la consola de las ldom
 svcadm enable svc:/ldoms/vntsd:default

 ### Starteo 
 ldm start psunt100
 ldm start psunt200

### Me conecto y busco el dispositivo del cdrom y le agrego :f al final para que bootee del slice que corresponde
telnet 0 5000
OBP> show-disks
OBP> boot /virtual-devices@100/channel-devices@200/disk@2:f


### Despues de instalar monto el EIS.
mkdir /cdrom
mount -F hsfs -o=ro /dev/dsk/c0d3s0 /cdrom 
cd /cdrom/sun/patch
patch-EIS /var/tmp
cd /var/tmp/10; ./install_all_patches

jueves, 21 de abril de 2016

Backstage de la Review de Solaris

La semana pasada, se contacto conmigo, por email, Javed Mohammed, quien se desempeña como Community Manager para el sector Systems ( persona muy amable por cierto), para ofrecerme una entrevista , y dar mi opinion como Oracle ACE de Solaris,  en la prestigiosa  IT Central Station, esta web es muy utilizada por los CIO, como consulta habitual de opiniones, algo asi como el Tripadvisor para los viajeros, pero enfocado en sistemas.
La entrevista se desarrollo, mediante envio de emails, y un cuestionario en ingles, donde la cuestion a desarrollar era la experiencia sobre Oracle Solaris.

Una vez, finalizada, la devolucion fue en un mail por parte del Community Director de IT, Ariel Lindenfeld el cual me avisaba que ya se encuentra on line la "Review"

Para el que guste leer , les dejo el link de la entrevista






Salgo por un rato del lado tecnico, y agradezco a :
Mi esposa Liliana, que me ayudo a traducir al ingles, lo que deberia haber escrito yo, si le hubiese hecho caso a mis padres cuando me insistian que estudie ingles.
A Rick Ramsey, ex Community Manager de Oracle ( EEUU ), el cual siempre me ayudo y confio en mi cuando escribia y le enviaba articulos tecnicos a Sun Microsystems .
A  Carlos Lazarte, y Diego Torres Dho, que ante cualquier duda especifica que no estan en manuales o en la web, sino mas bien de la experiencia de campo no dudan en darme una mano.
 A mi compañero Nicolas Morono, con el cual a diario desde la trinchera, damos soporte, e investigamos estas tecnologias.
A mis hijas Meli y Cande

lunes, 28 de marzo de 2016

Zfs consume mucha memoria

En los monitoreos , con herramientas externas al S.O. detectaron que el equipo esta consumiendo un total de 96% de la memoria del equipo.
Los administradores de las aplicaciones, no encuentran con los comandos habituales, que haya un consumo excesivo de memoria y mucho menos que aplicacion es la que la esta utilizando.
El vmstat , prstat  no muestran valores significativos ni preocupantes.
Aca es donde hay que mirar un poco mas a fondo.
Para eso utilizo el comando mdb donde observo que el ZFS esta tomando el 67 % de la memoria del equipo
# mdb -kw
Loading modules: [ unix genunix dtrace specfs zfs ldc ip hook neti sockfs dls sctp arp usba fctl nca lofs md cpc random crypto fcip logindmux ptm ufs sppp nfs ipc ]
> ::memstat
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     821817              6420   10%
ZFS File Data             5611890             43842   67%
Anon                      1633674             12763   19%
Exec and libs                9035                70    0%
Page cache                   2320                18    0%
Free (cachelist)             3400                26    0%
Free (freelist)            306472              2394    4%
Total                    8388608             65536

root #

Aca, la explicacion :

ZFS cache data o ZFS File Data ( como vemos en la salida del mdb) es donde ZFS almacena ( cachea ) todos los storage pools activos. Zfs crece y consume memoria al inicio del equipo.
Cuando una nueva aplicacion se inicia, necesita memoria, ZFS devuelve de la que tomo.
Hasta el momento, no se ve cual es el problema. Pero ....algunas aplicaciones que cuando inician chequean la freemem, como por ejemplo java,  van a ver que hay poca memoria en la freelist y no van a iniciar.

Aca, la solucion :

Existe un parametro a modificar en el /etc/system , que se le indica al zfs que tome
un maximo X de memoria al inicio, este parametro es zfs:zfs_arc_max .
El valor a asignarle varia dependiendo la cantidad de pooles de zfs que tengamos y la cantidad de memoria.
En mi caso, que tengo solo dos pooles, y 65 gb de ram, opte por limitar a 12b de ram
set zfs:zfs_arc_max=12884901888

Luego del reboot.
chequeo con echo ::memstat | mdb -k
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                     473869              3702    6%
ZFS File Data             1567085             12242   19%
Anon                      1090066              8516   13%
Exec and libs               10325                80    0%
Page cache                   3339                26    0%
Free (cachelist)             9461                73    0%
Free (freelist)           5234463             40894   62%
Total                    8388608             65536


Nota: Este tunning fue realizado en un solaris 10 1/13 s10s_u11wos_24a SPARC Generic_150400-28
En un T5-2 , con 65 gb de ram

Los parametros y explicaciones estan detallados con nivel de excelencia en la web solarisinternals.com

@diego_qac

martes, 15 de marzo de 2016

Configurar memoria y cpu a un ldom

Desde el pdom, vamos a agregarle 32gb y 16 cpus al ldom dsunp008-ldm

ldm stop dsunp008-ldm  ( bajamos el equipo )
ldm unbind dsunp008-ldm
ldm set-memory 32g dsunp008-ldm
ldm set-vcpu 16 dsunp008-ldm
ldm start dsunp008-ldm

Luego , como el ldm stop dejo el ldom en OBP, me conecto con
telnet localhost 5004 ( es el puerto donde esta configurado el ldom en el pdom)
boot


jueves, 10 de marzo de 2016

ufsdump error

Al hacer un ufsdump del Sistema Operativo , tira este error y aborta
  
DUMP: Warning - block 1952473204 is beyond the end of `/dev/rdsk/c0d0s0'
  DUMP: More than 32 block read errors from dump device `/dev/rdsk/c0d0s0'
  DUMP: Warning - block 1684029600 is beyond the end of `/dev/rdsk/c0d0s0'
  DUMP: Warning - block 2587919012 is beyond the end of `/dev/rdsk/c0d0s0'
  DUMP: More than 32 block read errors from dump device `/dev/rdsk/c0d0s0'
  DUMP: NEEDS ATTENTION: Do you want to attempt to continue? ("yes" or "no")   DUMP: NEEDS ATTENTION: Do you want to attempt to continue? ("yes" or "no")   DUMP: The ENTIRE dump is aborted

NO googlees mas ,no busques mas.
La unica solucion es volver a ejecutarlo, en otro momento, el error es porque esos bloques estan siendo accedidos en ese momento.

Se supone que un mundo ideal, se deberia poner el equipo en single-user y ejecutar el backup de sistema operativo, pero en la realidad es impracticable, pedir un corte de servicio para esto, asi que ejecutalo en otro momento.





@diego_qac

Montando en Single User el ZFS recien restaurado

## Creamos el rpool en el disco que corresponde.
zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool c0d0s0

## Restoreamos del nfs que habiamos montado.
 cat /mnt/psun5000-ldm/rpool.zfs | zfs receive -Fdu rpool

## Montamos el / de lo restoreado. Primero lo listo para saber el nombre de lo que tengo que montar.
# zfs list       
NAME                                     USED  AVAIL  REFER  MOUNTPOINT
rpool                                   16.5G  61.7G   106K  /a/rpool
rpool@archive                               0      -   106K  -
rpool/ROOT                              16.5G  61.7G    31K  legacy
rpool/ROOT@archive                          0      -    31K  -
rpool/ROOT/s10s_u11wos_24a              16.5G  61.7G  6.45G  /a
rpool/ROOT/s10s_u11wos_24a@archive          0      -  6.45G  -
rpool/ROOT/s10s_u11wos_24a/var          10.1G  61.7G  10.1G  /a/var
rpool/ROOT/s10s_u11wos_24a/var@archive      0      -  10.1G  -
rpool/export                             561K  61.7G    38K  /a/export
rpool/export@archive                        0      -    38K  -
rpool/export/home                        523K  61.7G   523K  /a/export/home
rpool/export/home@archive                   0      -   523K  -


zfs mount rpool/ROOT/s10s_u11wos_24a 

### un df para ver que este montado
# df -h 
Filesystem             size   used  avail capacity  Mounted on
/ramdisk-root:a        212M   187M   3.6M    99%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                    29G   344K    29G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab
swap                    29G   1.1M    29G     1%    /tmp
/tmp/dev                29G   1.1M    29G     1%    /dev
fd                       0K     0K     0K     0%    /dev/fd
/devices/virtual-devices@100/channel-devices@200/disk@106:a
                       2.2G   2.2G     0K   100%    /cdrom
df: cannot statvfs /platform/sun4v/lib/libc_psr.so.1: Operation not applicable
df: cannot statvfs /platform/sun4v/lib/sparcv9/libc_psr.so.1: Operation not applicable
swap                    29G     8K    29G     1%    /tmp/root/var/run
10.11.33.114:/BACKUPS
                       1.8T   1.6T   173G    91%    /mnt
rpool/ROOT/s10s_u11wos_24a
                        78G   6.5G    62G    10%    /a

## Queda montado en /a entro y modifico hostname, ip, vfstab, shadow y/o lo que necesite.





Creditos : Documento realizado por mi colega Nicolas Morono  @nicomorono

viernes, 5 de febrero de 2016

Nos equivocamos ? teniendo backup...lo arreglamos

Como decia Palito Ortega ...Yo me equivoque, Yo me equivoque, cuidese compadre pa' que no le pase a usted
Por error formatee el disco que contenia el sistema operativo del Ldom ( por suerte mientras no estaba productivo ) asi que si llegara a pasar, tener en cuenta lo siguiente :

###############################################################
###############################################################
### Cuidado, si voy a formatear este disco, tener en cuenta que si los datos que tenia eran con ZFS, lo debo labelear con EFI , si era con ufs lo debere labelear con SMI ( en mi caso como era ZFS lo labelee con EFI )
Si por error lo labeleo con SMI y tenia ZFS, no me dejara hacer ni el zpool destroy, ni nada , es probable que se cuelgue todo el  Physical Domain ( pdom) , y la unica solucion es rebootear el PDOM )
root@pdom # format -e c0t60050768018107A7900000000000016Bd0
selecting c0t60050768018107A7900000000000016Bd0
[disk formatted]
/dev/dsk/c0t60050768018107A7900000000000016Bd0s0 is part of active ZFS pool rpool_dsun1001. Please see zpool(1M).
FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        inquiry    - show disk ID
        scsi       - independent SCSI mode selects
        cache      - enable, disable or query SCSI disk cache
        volname    - set 8-character volume name
        !     - execute , then return
        quit
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[1]: 1

root@pdom #

############################################################
############################################################

jueves, 4 de febrero de 2016

Restore por ZFS snapshot de un LDOM completo.

Para ver como realize el backup por zfs , mirar este  enlace

Me posiciono en el Physical Domain ( PDOM ) y chequeo el LDOM que quiero recuperar , en este caso es ldom dsun1001-ldm que reside en el rpool_dsun1001 

root@pdom # zpool status rpool_dsun1001
  pool: rpool_dsun1001
 state: ONLINE
  scan: none requested
config:

        NAME                                     STATE     READ WRITE CKSUM
        rpool_dsun1001                           ONLINE       0     0     0
          c0t60050768018107A7900000000000016Bd0  ONLINE       0     0     0

errors: No known data errors
root@pdom #

####despues le di desde el PDOM
zpool destroy rpool_dsun1001

#### Lo cree de vuelta con el mismo disco.  el tamaño del volumen lo puedo sacar del backup en zpool.list.rpool.cfg
zpool create rpool_dsun1001 c0t60050768018107A7900000000000016Bd0
zfs set mountpoint=none rpool_dsun1001
zfs create -V 144g rpool_dsun1001/vol1_dsun1001


###le agrego un cdrom y a reinstalar.( esto es porque ya tenemos hecho un .iso )
ldm add-vdisk cdrom s10-iso@primary-vds0 dsun1001-ldm
ldm start dsun1001-ldm

telnet localhost 5003 ( el 5003 es el puerto del ldom , lo sacas con ldm ls )
### TODOS LOS COMANDOS ACA ABAJO SE EJECUTAN Desde el LDOM ,
boot cdrom -s
#### La red... tengo un ifconfig en el backup siempre que tengo zfs.
ifconfig vnet101000 plumb
ifconfig vnet101000 10.XX.32.77 netmask 255.255.252.0
ifconfig vnet101000 up
route add default 10.XX.32.1

ping 10.xx.33.114 ( chequeo que llegue al servidor en el cual deposito los backups )
mount 10.xx.33.114:/BACKUPS /mnt


#### Restore parado en el LDOM
format  #### todo el tamaño al slice 0 del disco del rpool


zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool c0d0s0
cat /mnt/dsun1001-ldm/rpool.zfs | zfs receive -Fdu rpool

zfs list
### el dato siguiente lo saco del backup de zpool.getall.rpool.cfg
zpool set bootfs=rpool/ROOT/s10s_u11wos_24a rpool

installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0d0s0
umount /mnt
init 0


boot



Creditos : Documento realizado por mi colega Nicolas Morono  @nicomorono

zfs snapshot remoto para backup de Sistema Operativo

La finalidad es backupear en forma remota a un equipo que montamos por nfs, un backup de sistema operativo, con zfs
#!/usr/bin/ksh -x
## Script de resguardo de Sistema Operativo Solaris
### Monto por NFS
mount 10.xx.33.114:/BACKUPS /mnt
MONTO=$?
UBICA=/mnt/`uname -n`
cd $UBICA
LOGerr="/export/home/backup/LOGS/backup_SO_Zonas_`date +%d_%m_%y.err`"
LOG="/export/home/backup/LOGS/backup_SO_Zonas_`date +%d_%m_%y`"
MAILTO="root tecnico.solaris@gmail.com  "
###Variables agregadas para zfs
RPOOL=rpool

#
### FIN DE ASIGNACION DE VARIABLES ESPECIFICAS
#
if [ "$MONTO" -eq 0 ]
then
        :       echo "# El FS por NFS fue montado OK"
else
        echo "error NO se pudo montar por NFS el ERROR fue $MONTO"
        echo "################################"
        echo "################################"
        exit 1
fi
backup_FS_to_NFS()     {
      echo

        if zpool status $RPOOL
        then
                echo backupZFS
                ### DATOS ZFS
                zpool list $RPOOL > $UBICA/zpool.list.$RPOOL.cfg
                zpool get all $RPOOL > $UBICA/zpool.getall.$RPOOL.cfg
                zfs get -r all $RPOOL > $UBICA/zfs.getall.$RPOOL.cfg
                zpool status $RPOOL > $UBICA/zpool.status.$RPOOL.cfg
                DISK=`zpool status $RPOOL | grep c.d.s. | awk '{ print $1 }'`
                for k in $DISK
                do
                k=`echo $k | sed "s/\/dev\/rdsk\///" `
                prtvtoc /dev/rdsk/$k > $UBICA/prtvtoc.$RPOOL.$k.lst
                done
                ifconfig -a > $UBICA/ifconfig-a.cfg
                zfs snapshot -r ${RPOOL}@archive
                zfs destroy ${RPOOL}/swap@archive
                zfs destroy ${RPOOL}/dump@archive
                date >> $UBICA/backup_LOG.log
                zfs send -Rv ${RPOOL}@archive  | cat > $UBICA/${RPOOL}.zfs
                zfs destroy -r ${RPOOL}@archive
        else
                ###echo ":::: Montando fsssnap"
                #fssnap -F ufs -o backing-store=/snaps/root.backup.dmp /
                echo ":::: Efectuando DUMP de / (`date +%d_%m-%T`)"
                ufsdump 0uf $UBICA/BARRA.DMP /
                echo ":::: BACKUP: FIN backup fs /  (`date +%d_%m-%T`)"
        fi
} 1>>$LOG 2>>$LOGerr
backup_NFS
################################
cp $LOG $UBICA
cp $LOG.err $UBICA
cp $EXPLORER/explorer*gz $UBICA
cd /
umount /mnt
echo $?

### Notificar Resultados via email
cat $LOGerr|mailx -s "Backup `uname -n`" $MAILTO

miércoles, 20 de enero de 2016

Agregar Discos en Cluster sobre LDOM

Se pidieron 3 discos de 50 gb.
Se uso en el pdom (en ambos lados m5-1 m5-2) el script de /usr/scripts  Agrega.sh pero en definitiva los comandos fueron estos.

m5-2-pdom2
ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61F2d0s2 vol41@sun2009-vds0

ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61F8d0s2 vol42@sun2009-vds0

ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61FEd0s2 vol43@sun2009-vds0

ldm add-vdisk vdisk41  vol41@sun2009-vds0 sun2009-ldm
ldm add-vdisk vdisk42  vol42@sun2009-vds0 sun2009-ldm
ldm add-vdisk vdisk43  vol43@sun2009-vds0 sun2009-ldm

m5-1-pdom2
ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61F2d0s2 vol41@sun5002-vds0

ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61F8d0s2 vol42@sun5002-vds0

ldm add-vdsdev  /dev/rdsk/c0t6000144000000010602742B9EE6B61FEd0s2 vol43@sun5002-vds0

ldm add-vdisk vdisk41  vol41@sun5002-vds0 sun5002-ldm
ldm add-vdisk vdisk42  vol42@sun5002-vds0 sun5002-ldm
ldm add-vdisk vdisk43  vol43@sun5002-vds0 sun5002-ldm

NOTA: Con esto se asignaron los discos a ambos nodos y sin la opción excl.

Seguimos dentro de los ldoms con la asignación al equipo y al cluster.

psun2009
Se verifican los discos asignados con un format y se los labelea.

En ambos nodos (sun2009,sun5002) , de a un comando por nodo ejecuto
scdidadm -C
scdidadm -r
scgdevs

Confirmo que todos los discos queden ok con el siguiente comando (tardo 10min reloj en dejarlos ok todos)
scdpm -p all:all

En ambos nodos (sun2009,sun5002)
vxdctl enable
vxdisk list

Agrego los discos nuevos al disk group solo en el nodo donde esta activo el dg (sun2009)
vxdiskadm
(opción 1)
Estas son las opciones del vxdiskadm usadas (las elegidas están en negritas, si no dice nada es porque fue la default).
Select disk devices to add: [,all,list,q,?]  disk_40 disk_41 disk_42
Continue operation? [y,n,q,?]  (default: y) y
Which disk group [,none,list,q,?]  (default: none) CPARKdg
Use default disk names for these disks? [y,n,q,?]  (default: y) n
Add disks as spare disks for CPARKdg? [y,n,q,?]  (default: n)
Exclude disks from hot-relocation use? [y,n,q,?]  (default: n)
Add site tag to disks? [y,n,q,?]  (default: n)
Continue with operation? [y,n,q,?]  (default: y) y
Encapsulate these devices? [Y,N,S(elect),q,?]  (default: Y) N
Instead of encapsulating, initialize? [Y,N,S(elect),q,?]  (default: N) Y
Do you want to use the default layout for all disks being initialized? [y,n,q,?]  (default: y)
Enter disk name for disk_40 [,q,?]  (default: CPARKdg01) CPARKdgvmax04
Enter disk name for disk_41 [,q,?]  (default: CPARKdg01) CPARKdgvmax05
Enter disk name for disk_42 [,q,?]  (default: CPARKdg01) CPARKdgvmax06
Add or initialize other disks? [y,n,q,?]  (default: n) n

vxprint -htg CPARKdg

La idea es usar las luns stripeadas crear un volumen y que me queden para crear otras dos luns a futuro. Por lo que el volumen se va a crear de un tercio del total.
Veo el tamaño total del stripe (para hacer la cuenta de cuanto voy a poner por volumen)

vxassist -g CPARKdg maxsize  layout=stripe CPARKdgvmax04 CPARKdgvmax05 CPARKdgvmax06
Maximum volume size: 314349568 (153491Mb)

Creo el volumen
vxassist -g CPARKdg make vol15 51163m layout=stripe CPARKdgvmax04 CPARKdgvmax05 CPARKdgvmax06

Sincroniza los dispositivos recien creados y genera los links en ambos nodos. (tarda algunos minutos en reflejarse)
cldevicegroup sync CPARKdg

newfs /dev/vx/rdsk/CPARKdg/vol15
mkdir /x06
mount /dev/vx/dsk/CPARKdg/vol15 /x06
vi /etc/vfstab
#Agrego la linea que sigue
/dev/vx/dsk/CPARKdg/vol15       /dev/vx/rdsk/CPARKdg/vol15      /x06    ufs     1       no      logging

Ejecuto en el otro nodo (sun5002)
mkdir /x06
vi /etc/vfstab
#Agrego la linea que sigue
/dev/vx/dsk/CPARKdg/vol15       /dev/vx/rdsk/CPARKdg/vol15      /x06    ufs     1       no      logging

Ahora solo falta agregar el fs al cluster y se puede hacer en cualquiera de los dos nodos. ( o pones en modo suspend el paquete o lo haces a lo macho , pero si te equivocas armando el comando se va todo a la m...da)
clrs show -g central-park-rg -p FileSystemMountPoints cpark-hastp-rs
FilesystemMountPoints:                        /x00 /x01 /x02 /x03 /x04 /x05 /archive_POKPKPR1 /archive_POKPKPR1_old /exports_POKPKPR1 /app/parque/batch /interfaz/parque /export/home/x302168 /export/home/x302168/scripts_parque /TSM_Backup_CPARK

Este es el comando para agregar los fs al cluster, es muy importante aclarar, que los filesystems van entre comillas dobles, sin espacios ni antes ni después, y separados por comas para ir a línea siguiente no dejas ningún espacio pones una contrabarra y le das enter.
clrs set -g central-park-rg -p FileSystemMountPoints="/x00,/x01,/x02,/x03,/x04,/x05,/x06,/archive_POKPKPR1,\
/archive_POKPKPR1_old,/exports_POKPKPR1,/app/parque/batch,/interfaz/parque,\
/export/home/x302168,/export/home/x302168/scripts_parque,/TSM_Backup_CPARK" cpark-hastp-rs  

Aclaracion: La opcion excl  cuando se asignan los discos, se utiliza cuando NO se quieren ver los discos desde el PDOM cuando tiramos un format.

Creditos : Documento realizado por mi colega Nicolas Morono  @nicomorono