Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

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

jueves, 19 de noviembre de 2015

Fin de un equipo con Historia

Hoy 19 de noviembre del 2015, apagamos definitivamente un equipo historico,  y cuando digo historico lo digo mas que nada por un tema personal, ya que para mi el SF6800 tiene historia.
Es o era parte un cluster, de un Sun Cluster 3.0 , con solaris 8 y Veritas 3.x
System Controller, Master Console, IO Board, System Board  ( que era eso ?  )
conectado cada dominio a un D240 ( y eso ? )

Fue un equipo con tecnologia de avanzada para la epoca, era lo ultimo  que habia salido, y eramos pioneros en aplicarla.
Tenia discos EMC conectado por direct attach.
Hacia copias de volumenes , con BCV ( Business Continuance Volume ) .
Hasta aca viene todo muy lindo pero ....
 Mi compañero estaba dedicado full time junto con gente de Sun y Emc  al armado de este proyecto y yo no habia participado hasta el momento en nada de esto. Faltando 2 o 3 dias para sacar el equipo a produccion, mi compañero se anoto en una maraton de Carrefour, y cuando estaba corriendo se infarto.
Nooooo, como que se infarto ? Si ( por suerte se recupero y ahora esta muy bien).
Cuando me dieron la noticia, fue doblemente mala, ya que no sabia detalles de lo sucedido y la otra era que tenia que aprender toda esa tecnologia para el lunes, porque el equipo salia a produccion .
Asi que a leer manuales, pdf's  y para los bcv con ayuda de gente de emc, y Sun salimos adelante.
Hoy 19 de noviembre, luego de 15 años , lo apagamos

Chau, Sun Fire 6800
Hola M5-32




viernes, 28 de agosto de 2015

Reemplazar modulos de cpu y memorias de un m5000

La finalidad de este documento es sacar los modulos de cpu y memoria de un servidor M5000.

Para esto, partimos de la base que el equipo esta en un rack, caso contrario salteamos los pasos 2 y 3
1) Primero apagar el equipo ( shutdown -g0 -i0 ) y luego desenchufar los cables de corriente.

2) Para desarmar la tapa superior o Top Cover del m5000, primero se debe sacar el rack's antitilt, estas son las 2 patas naranjas como se ve en la foto, que aguantan y balancean el peso del equipo.

3) Chequear los cables que tenemos conectados en la parte de atras del equipo ( red, fibra,power) y luego
 Desplazar el m5000 hacia adelante

4) En la tapa superior, hay 2 tornillos ( Phillips) que debemos aflojar.
Hecho esto, se debe empujar la tapa hacia atras y luego levantar



5) Aca nos encontramos con los modulos  de cpu y memoria. Para ambos es el mismo procedimiento.
Para sacar el modulo de cpu tiene 2  trabas (levers ) que deben empujar hacia arriba simultaneamente, esto destraba la caja , y luego tirar hacia arriba.



Una vez reemplazados los modulos. los pasos son :
a) Conectar la corriente al equipo
b) Conectarme a la xscf
c) chequear con showhardconf si tomo los modulos de cpu y o memoria reemplazados.
d)Encender el dominio con poweron -d 0
e) conectarme a la consola y levantar el sistema operativo
console -d 0
boot
f) Una vez dentro del sistema operativo, chequeamos con prtdiag -v si el S.O tomo los modulos asignados.


Esta tarea fue realizada con mi colega Nicolas Morono 

miércoles, 15 de julio de 2015

Creacion de Zonas en Solaris 11 e Instalacion del motor Oracle

Como primer paso voy a crear un POOL llamado TEST, con un disco de 54gb, donde alojare mis zonas.
root@psunp006:~# zpool create TEST c0t60050768018285D270000000000004CBd0s0
root@psunp006:~# zfs create TEST/zona3
root@psunp006:~# zfs set mountpoint=/export/zona3 TEST/zona3

root@psunp006:~# zfs list -r
NAME                                       USED  AVAIL  REFER  MOUNTPOINT
TEST                                       180K  58.6G    31K  /TEST
TEST/zona3                                  31K  58.6G    31K  /export/zona3

root@psunp006:~# chmod 700 /export/zona3

Comienzo la configuracion basica de la zona, si quiero usar la misma placa de la zona global
debo usar la opcion ip-type=shared

root@psunp006:~# zonecfg -z zona3
Use 'create' to begin configuring a new zone.
zonecfg:zona3> create -b
zonecfg:zona3> set zonepath=/export/zona3
zonecfg:zona3> set autoboot=true
zonecfg:zona3> add net
zonecfg:zona3:net> set address=10.67.100.123/24
zonecfg:zona3:net> set physical=net2
zonecfg:zona3:net> end
zonecfg:zona3> set ip-type=shared
zonecfg:zona3> verify
zonecfg:zona3> commit
zonecfg:zona3> exit

------
root@psunp006:~# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   - zona3            configured  /export/zona3                solaris    shared
root@psunp006:~# zoneadm -z zona3 install
Progress being logged to /var/log/zones/zoneadm.20150713T140435Z.zona3.install
       Image: Preparing at /export/zona3/root.

 Install Log: /system/volatile/install.7979/install_log
 AI Manifest: /tmp/manifest.xml.gYa4Jp
  SC Profile: /usr/share/auto_install/sc_profiles/enable_sci.xml
    Zonename: zona3
Installation: Starting ...

        Creating IPS image
Startup linked: 1/1 done
        Installing packages from:
            solaris
                origin:  http://10.77.100.212/
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                            282/282   53172/53172  372.0/372.0  5.2M/s

PHASE                                          ITEMS
Installing new actions                   70790/70790
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1
Installation: Succeeded

        Note: Man pages can be obtained by installing pkg:/system/manual
 done.
        Done: Installation completed in 240.491 seconds.
  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
              to complete the configuration process.
Log saved in non-global zone as 
/export/zona3/root/var/log/zones/zoneadm.20150713T140435Z.zona3.install
root@psunp006:~#

Perfecto, ya quedo instalada la zona con Solaris 11, y ahora tal cual lo indica ellog de instalacion, queda
bootear la zona y loguearse a la consola de la zona con zlogin -C zona3

root@psunp006:~# zoneadm list -cv
  ID NAME             STATUS      PATH                         BRAND      IP
   0 global           running     /                            solaris    shared
   - zona3            installed   /export/zona3                solaris    shared
root@psunp006:~#

Ahora voy a crear un pool zfs llamado ORACLE , donde alojare en el los fs u00  y u01 para la bd.

root@psunp006:~# zpool create ORACLE c0t60050768018285D270000000000002E2d0s0
root@psunp006:~# zpool status ORACLE
  pool: ORACLE
 state: ONLINE
  scan: none requested
config:

        NAME                                       STATE     READ WRITE CKSUM
        ORACLE                                     ONLINE       0     0     0
          c0t60050768018285D270000000000002E2d0s0  ONLINE       0     0     0

errors: No known data errors
root@psunp006:~#
root@psunp006:~# zfs create ORACLE/u00
root@psunp006:~# zfs create ORACLE/u01
root@psunp006:~#zonecfg -z zona3
zonecfg:zona3> add dataset
zonecfg:zona3:dataset> set name=ORACLE/u00
zonecfg:zona3:dataset> set name=ORACLE/u01
zonecfg:zona3:dataset> end
zonecfg:zona3> verify
zonecfg:zona3> commit
zonecfg:zona3>exit

*** MUY IMPORTANTE, SETEAR EL PARAMETRO LEGACY AL FS QUE LE QUIERO AGREGAR A LA ZONA
root@psunp006:~# zfs set mountpoint=legacy ORACLE/u00
root@psunp006:~# zfs set mountpoint=legacy ORACLE/u01

root@psunp006:~# zonecfg -z zona3
zonecfg:zona3> add fs
zonecfg:zona3:fs> set type=zfs
zonecfg:zona3:fs> set special=/ORACLE/u00
zonecfg:zona3:fs> set dir=/u00
zonecfg:zona3:fs> end
zonecfg:zona3> add fs
zonecfg:zona3:fs> set type=zfs
zonecfg:zona3:fs> set special=ORACLE/u01
zonecfg:zona3:fs> set dir=/u01
zonecfg:zona3:fs> end
zonecfg:zona3> verify
zonecfg:zona3> commit
zonecfg:zona3> exit
root@psunp006:~#

ahora un zlogin a la zona , y a crear el usuario oracle, grupo dba
root@psunp006:~# zlogin zona3
root@orazona:~# df -h
Filesystem             Size   Used  Available Capacity  Mounted on
rpool/ROOT/solaris      54G   680M        53G     2%    /
/dev                     0K     0K         0K     0%    /dev
u00                     54G   2.6G        51G     5%    /u00
u01                     51G    31K        51G     1%    /u01
rpool/ROOT/solaris/var
                        54G    39M        53G     1%    /var
---- corte la salida, la intencion es mostrar como monto los fs /u00 y /u01 dentro de la zona

root@orazona:~# groupadd -g 100 dba
root@orazona:~# groupadd -g 101 oinstall
root@orazona:~# useradd -u 1000 -g 100 -m -d /export/home/oracle -s /usr/bin/bash oracle
Agregue la siguiente linea al /etc/project
user.oracle:100::oracle::project.max-shm-memory=(priv,214748364800,deny)

Instalando la base Oracle, nos dio el siguiente error
>>> Ignoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-07-13_12-24-41PM.
Please wait ...oracle@orazona:/u00/database$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2015-07-13_12-24-41PM/jdk/jre/lib/sparcv9/motif21/libmawt.so: ld.so.1: java: fatal: libXm.so.4: open failed: No such file or directory
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-07-13_12-24-41PM.
Please wait ...oracle@orazona:/u00/database$ Exception in thread "main"
java.lang.UnsatisfiedLinkError: /tmp/OraInstall2015-07-13_12-24-41PM/jdk/jre/lib/sparcv9/motif21/libmawt.so: ld.so.1: java: fatal: libXm.so.4:
open failed: No such file or directory

La solucion a ese error es instalar las librerias de motif

lo ejecute desde la zona global
root@psunp006:~# pkg install pkg://solaris/library/motif
           Packages to install:  2
       Create boot environment: No
Create backup boot environment: No
Planning linked: 0/2 done; 1 working: zone:zona3
Planning linked: 1/2 done; 1 working: zone:zona1
Planning linked: 2/2 done
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                2/2       742/742      5.0/5.0  1.3M/s

Downloading linked: 0/2 done; 1 working: zone:zona3
Downloading linked: 1/2 done; 1 working: zone:zona1
Downloading linked: 2/2 done
PHASE                                          ITEMS
Installing new actions                       841/841
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Executing linked: 0/2 done; 1 working: zone:zona3
Executing linked: 1/2 done; 1 working: zone:zona1
Executing linked: 2/2 done
Updating package cache                           1/1
root@psunp006:~#

La instalacion siguio fallando por falta de algunos paquetes, que instale desde la zona global

root@psunp006:~#
root@psunp006:~# pkg install SUNWfont-xorg-core
           Packages to install:  1
            Services to change:  1
       Create boot environment: No
Create backup boot environment: No
Planning linked: 0/2 done; 1 working: zone:zona3
Planning linked: 1/2 done; 1 working: zone:zona1
Planning linked: 2/2 done
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                1/1       634/634    10.7/10.7  3.6M/s

Downloading linked: 0/2 done; 1 working: zone:zona3
Downloading linked: 1/2 done; 1 working: zone:zona1
Downloading linked: 2/2 done
PHASE                                          ITEMS
Installing new actions                       665/665
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Executing linked: 0/2 done; 1 working: zone:zona3
Executing linked: 1/2 done; 1 working: zone:zona1
Executing linked: 2/2 done
Updating package cache                           1/1
root@psunp006:~#
root@psunp006:~# pkg install SUNWfont-xorg-iso8859-1
           Packages to install:  1
            Services to change:  1
       Create boot environment: No
Create backup boot environment: No
Planning linked: 0/2 done; 1 working: zone:zona3
Planning linked: 1/2 done; 1 working: zone:zona1
Planning linked: 2/2 done
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                1/1       417/417      2.0/2.0  974k/s

Downloading linked: 0/2 done; 1 working: zone:zona3
Downloading linked: 1/2 done; 1 working: zone:zona1
Downloading linked: 2/2 done
PHASE                                          ITEMS
Installing new actions                       442/442
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Executing linked: 0/2 done; 1 working: zone:zona3
Executing linked: 1/2 done; 1 working: zone:zona1
Executing linked: 2/2 done
Updating package cache                           1/1
root@psunp006:~#
root@psunp006:~# pkg install SUNWxorg-client-programs
           Packages to install: 44
            Services to change:  4
       Create boot environment: No
Create backup boot environment: No
Planning linked: 0/2 done; 1 working: zone:zona3
Planning linked: 1/2 done; 1 working: zone:zona1
Planning linked: 2/2 done
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                              44/44       780/780      7.8/7.8  1.4M/s

Downloading linked: 0/2 done; 1 working: zone:zona3
Downloading linked: 1/2 done; 1 working: zone:zona1
Downloading linked: 2/2 done
PHASE                                          ITEMS
Installing new actions                     1991/1991
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Executing linked: 0/2 done; 1 working: zone:zona3
Executing linked: 1/2 done; 1 working: zone:zona1
Executing linked: 2/2 done
Updating package cache                           1/1
root@psunp006:~#

La instalacion continuo hasta que en el paso 11 de la misma, mostro el sig error ( faltaba el make, ver foto )


La solucion fue :
loguearme en la zona ( no desde la global) y ejecutar el pkg correspondiente

root@orazona:~# pkg install make
           Packages to install:  1
       Create boot environment: No
Create backup boot environment: No
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                1/1         10/10      0.2/0.2  2.3M/s

PHASE                                          ITEMS
Installing new actions                         20/20
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1
root@orazona:~#



Ya en su paso final, arrojo un error comun en este entorno de Solaris 11, debido a que
 la instalacion de la Base de datos, en la fase de relinkeo, utiliza un paquete developer/assembler
 y no esta instalado por default, pero viene en los paquetes a instalar de S.O.


INFO: (if [ "assemble" = "assemble" ] ; then \
  /u00/app/oracle/product/11.2.0/dbhome_1/bin/gennttab > ntcontab.s ;\
  /usr/ccs/bin/as -P -m64 -o ntcontab.o ntcontab.s ;\
  rm -f /u00/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ;\
  mv ntcontab.o /u00/app/oracle/product/11.2.0/dbhome_1/lib/ ;\
          /usr/ccs/bin/ar rv /u00/app/oracle/product/11.2.0/dbhome_1/lib/libn11.a /u00/app/oracle/product/11.2.0/dbhome_1/lib/ntcontab.o ; fi)

INFO: sh[2]: /usr/ccs/bin/as: not found [No such file or directory]

La solucion es loguearse en la zona y ejecutar :

root@orazona:~# pkg install developer/assembler
           Packages to install:  1
       Create boot environment: No
Create backup boot environment: No
DOWNLOAD                                PKGS         FILES    XFER (MB)   SPEED
Completed                                1/1           5/5      0.2/0.2  1.9M/s

PHASE                                          ITEMS
Installing new actions                         11/11
Updating package state database                 Done
Updating package cache                           0/0
Updating image state                            Done
Creating fast lookup database                   Done
Updating package cache                           1/1
root@orazona:~#

Listo, ya esta instalado Oracle 11g .



Agradecimiento: A Leandro Zungri ( dba Oracle ), que realizo la instalacion del motor de Oracle y  la configuracion de la instancia creada para este documento

lunes, 13 de julio de 2015

Resolucion de Nombres en Solaris 11 ( resolv.conf ) y nsswitch

En las versiones anteriores de Solaris , la forma de resolver el nombre era simplemente agregar en /etc/resolv.conf , el nombre del dominio y los nameservers , luego en el /etc/nsswitch.conf  le agregaba si lo queria resolver primero por hosts ( files) o dns. Ahora en Solaris 11, se debe realizar los siguientes pasos:

Con este comando listo las propiedades
# svccfg -s network/dns/client listprop config
config                      application
config/value_authorization astring     solaris.smf.value.name-service.dns.client

Compruebo si puedo llegar al equipo "desarrollo"
ping desarrollo
ping: unknown host desarrollo

Ahora seteo el nombre del dominio  (respetar los espacios en blanco)
# svccfg -s network/dns/client setprop config/domain = astring: midominio.com.ar
# svccfg -s network/dns/client listprop config
config                      application
config/value_authorization astring     solaris.smf.value.name-service.dns.client
config/domain              astring     midominio.com.ar
Agrego las ip de los nameserver 
# svccfg -s network/dns/client setprop config/nameserver = net_address: "(10.66.10.16 10.10.66.132)"
# svccfg -s network/dns/client listprop config
config                      application
config/value_authorization astring     solaris.smf.value.name-service.dns.client
config/domain              astring     midominio.com.ar
config/nameserver          net_address 10.66.10.16 10.10.66.132
#
Agrego el orden de resolucion como  lo hacia en el nsswitch.conf
# svccfg -s name-service/switch setprop config/ipnodes = astring: '("files dns")'
# svccfg -s name-service/switch setprop config/host = astring: '("files dns")'
# svccfg -s network/dns/client listprop config
config                      application
config/value_authorization astring     solaris.smf.value.name-service.dns.client
config/domain              astring     midominio.com.ar
config/nameserver          net_address 10.66.10.16 10.10.66.132
#
# svcadm enable dns/client
# svcs -a|grep dns
disabled       Jun_25   svc:/network/dns/multicast:default
disabled       Jun_25   svc:/network/dns/server:default
online         Jun_25   svc:/network/dns/client:default
# nscfg export svc:/network/dns/client:default
#
# svcadm refresh name-service/switch
Chequeo como quedo armado el nsswitch.con y verifico si ahora llego al equipo "desarrollo"
# cat /etc/nsswitch.conf
# ping desarrollo
desarrollo is alive

viernes, 19 de junio de 2015

Instalar Solaris 11.2 en un M5000

La finalidad de este documento es describir el paso a paso de la instalacion de
un Solaris 11_2 en un servidor sparc M5000
Todo este procedimiento fue realizado con los siguientes elementos:
Notebook Olivetti con sistema operativo linux Ubuntu 14.04.2 LTS, Trusty Tahr, dentro de la misma, le instale Oracle Virtual Box, con sistema operativo Solaris 11_1 x86

Preparacion previa en mi notebook
En el linux de mi notebook , en el directorio /home/coneja/Downloads/ tengo las imagenes .iso del dvd


Dentro del Oracle Virtual Box, hay una opcion que se llama "shared folders", ahi
 le digo que fs o directorio quiero compartir a  mi solaris
( NO hacerlo en modo read only )
En mi caso, el fs compartido fue /home/coneja/Downloads
***Aclaracion importante: cuando creo en el VirtualBox el Solaris, debo hacerlo
con la opcion de red "Bridge " para que funcione cuando lo conecte al server qu
e quiero instalar ***

Cuando levanta el solaris, monta automaticamente los fs que comparti desde el Virtual Box anteriormente
Bajar de la web de oracle, el repositorio de solaris 11.
Son 4 archivos .zip mas un script instal-repo.ksh y un README
sol-11_2-repo-1of4.zip
sol-11_2-repo-2of4.zip
sol-11_2-repo-3of4.zip
sol-11_2-repo-4of4.zip



Cuando Levanto el solaris de mi maquina virtual, automaticamente monta
el filesystem que le indique en el shared folders.
Luego lo que hice fue , asignarle un disco virtual al solaris 11
que estan en mi Virtual Box (Esto se hace con el solaris 11 del VBox apagado ).
Genere un zpool llamado repopool , el cual sera destino de el repositorio
de parches.
Para esto, los comandos utilizados en el solaris11 de mi VBox fueron

zpool create -f repopool c7t2d0s0
zpool list
zfs set mountpoint=/repo


El paso siguiente fue, en el solaris 11 de mi VBox, pararme en el fs compartido
/home/coneja/Downloads y ejecutar el
install-repo.ksh    ( tal como esta en la       foto siguiente)

Este script, hace un md5 checksum de los archivos que baje, posteriormente realiza un uncompress de los archivos .zip y genera un solo.iso que alojara en el
filesystem compartido





 
/home/coneja/Downloads que fue donde estaba parado cuando ejecute el script .

 En el fs de mi solaris11 de la VBox /repo/  dejara todo el contenido del iso pero ya listo para usar.
Todo este procedimiento tardo 11 horas, es muy lento.

# svccfg -s application/pkg/server setprop pkg/inst_root=/repo/repo
# svccfg -s application/pkg/server setprop pkg/readonly=true

# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server


Aca le agrego la ip de mi VirtualBox con Solaris

root@sol11vm:/export/home# pkg set-publisher -O http://192.168.30.1 solaris
root@sol11vm:/export/home# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://192.168.30.1/
root@sol11vm:/export/home# pkgrepo refresh -s /repo
Initiating repository refresh.
Chequeo que pueda ver el contenido, buscando algun paquete, uso el viejo y querido xclock de ejemplo
root@sol11vm:/export/home# pkg search xclock
INDEX           ACTION VALUE                                                                                                                                                                         PACKAGE
basename        file   usr/share/X11/app-defaults/XClock                                                                                                                                             pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
basename        file   usr/bin/xclock                                                                                                                                                                pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
basename        link   usr/X11/bin/xclock                                                                                                                                                            pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
pkg.description set    xclock is the classic X Window System clock utility.  It displays the time in analog or digital form, continuously updated at a frequency which may be specified by the user. pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
pkg.fmri        set    solaris/x11/xclock                                                                                                                                                            pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
pkg.summary     set    xclock - analog / digital clock for X                                                                                                                                         pkg:/x11/xclock@1.0.6-0.175.1.0.0.24.1317
root@sol11vm:/export/home# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
repopool                  8.35G  32.8G  8.34G  /repo
rpool                     25.6G  5.37G  4.58M  /rpool
rpool/IPS                 11.6G  5.37G  11.6G  /IPS
rpool/ROOT                4.49G  5.37G    31K  legacy
rpool/ROOT/solaris-1      4.49G  5.37G  2.22G  /
rpool/ROOT/solaris-1/var  1.29G  5.37G  1.20G  /var
rpool/VARSHARE            84.5K  5.37G  84.5K  /var/share
rpool/dump                 792M  5.39G   768M  -
rpool/export              7.73G  5.37G   711M  /export
rpool/export/home         7.03G  5.37G  7.03G  /export/home
rpool/export/home/gojea   35.5K  5.37G  35.5K  /export/home/gojea
rpool/swap                1.03G  5.40G  1.00G  -

root@sol11vm:/export/home# zfs create repopool/ai
root@sol11vm:/export/home# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
repopool                  8.35G  32.8G  8.34G  /repo
repopool/ai                 31K  32.8G    31K  /repo/ai
rpool                     25.6G  5.37G  4.58M  /rpool
rpool/IPS                 11.6G  5.37G  11.6G  /IPS
rpool/ROOT                4.49G  5.37G    31K  legacy
rpool/ROOT/solaris-1      4.49G  5.37G  2.22G  /
rpool/ROOT/solaris-1/var  1.29G  5.37G  1.20G  /var
rpool/VARSHARE            84.5K  5.37G  84.5K  /var/share
rpool/dump                 792M  5.39G   768M  -
rpool/export              7.73G  5.37G   711M  /export
rpool/export/home         7.03G  5.37G  7.03G  /export/home
rpool/export/home/gojea   35.5K  5.37G  35.5K  /export/home/gojea
rpool/swap                1.03G  5.40G  1.00G  -
root@sol11vm:/export/home# zfs get -r dedup repopool
NAME         PROPERTY  VALUE  SOURCE
repopool     dedup     on     local
repopool/ai  dedup     on     inherited from repopool
root@sol11vm:/export/home# zfs mountpoint=repopool/ai
root@sol11vm:/export/home# ls -ltrh /mnt/sf_coneja/Downloads/
total 34186824
-rw-r-----   1 root     vboxsf      500M Jun  6 21:04 sol-11_2-ai-sparc.iso
-rw-r-----   1 root     vboxsf      731M Jun  7 21:03 sol-11_2-text-sparc.iso
-rwxr-xr-x   1 root     vboxsf      5.5K Jun  7 22:49 install-repo.ksh
-rw-r-----   1 root     vboxsf      1.8G Jun  7 22:50 sol-11_2-repo-2of4.zip
-rw-r-----   1 root     vboxsf      3.1K Jun  7 22:50 README-zipped-repo.txt
-rw-r-----   1 root     vboxsf       228 Jun  7 22:51 sol-11_2-repo-md5sums.txt
-rw-r-----   1 root     vboxsf      1.8G Jun  8 00:27 sol-11_2-repo-3of4.zip
-rw-r-----   1 root     vboxsf      1.7G Jun  8 13:22 sol-11_2-repo-4of4.zip
-rw-rw-r--   1 root     vboxsf      1.7G Jun  8 22:09 sol-11_2-repo-1of4.zip
-rw-r--r--   1 root     vboxsf      406K Jun 12 06:32 mkiso.log
-rw-r--r--   1 root     vboxsf      8.2G Jun 12 06:32 sol-11_2-repo.iso
sol11vm:/export/home# cp -pr /mnt/sf_coneja/Downloads/sol-11_2-ai-sparc.iso /ai
root@sol11vm:/export/home# ls -ltrh /ai
total 757116
-rw-r-----   1 root     vboxsf      500M Jun  6 21:04 sol-11_2-ai-sparc.iso
root@sol11vm:/export/home# svcs -a|grep dns
disabled       16:02:37 svc:/network/dns/client:default
disabled       16:02:40 svc:/network/dns/multicast:default
disabled       16:02:41 svc:/network/dns/server:default
root@sol11vm:/export/home# svcadm enable dns/client
disabled       16:02:40 svc:/network/dns/multicast:default
disabled       16:02:41 svc:/network/dns/server:default
offline*        9:57:25 svc:/network/dns/client:default
root@sol11vm:/export/home# svcs -a|grep dns
disabled       16:02:41 svc:/network/dns/server:default
online          9:57:35 svc:/network/dns/client:default
online          9:57:58 svc:/network/dns/multicast:default
root@sol11vm:/ai#
# installadm create-service -n sol11-2-ai -i 192.168.30.10 -c 10 -s /ai/sol-11_2-ai-sparc.iso /ai/sol11-2-ai.target

Creating service from: /ai/sol-11_2-ai-sparc.iso
OK to use default image path: /export/auto_install/sol11-2-ai? [y/N]: y
Setting up the image ...

Creating sparc service: sol11-2-ai

Image path: /export/auto_install/sol11-2-ai

Service discovery fallback mechanism set up
Creating SPARC configuration file
Adding IP range to local DHCP configuration

Unable to add IP range: check_subnet_for_overlap: adding range causes
overlap on subnet
192.168.30.0

The install service has been created but the DHCP configuration has
not been completed. Please see dhcpd(8) for further information.

Refreshing install services





FINALIZADA la preparacion previa de la notebook , se viene la instalacion de solaris 11.2 en el servidor m5000






Conectar el cable de red de la notebook al IOU0 red interna del m5000
























Conectar el cable usb serial a mi notebook y el otro extremo al serial del equipo
desde el linux, tipear 
minicom -D /dev/ttyUSB0  ( esto depende en que usb lo conecte, lo verifico con un dmesg )
Esta configuracion fue la que funciono con el minicom, modifico lo sig:
Serial device : /dev/ttyUSB0
BPS :  9600 8N1
Hardware FLOW control :  YES
Software Flow Control NO














Una vez que se conecta el minicom, voy a estar parado en la XSCF del M5000
lo tengo que llevar a OBP con lo s siguientes comandos
Puedo chequear primero si se ven entre el M5000 y mi linux , desde el linux con el comando ethtool eth0 como lo muestro en la foto















XSCF> console -d 0
pongo la clave de root y le doy init 0 .
En el caso que no tenga la clave de root, me vuelvo a la XSCF con la combinacion de teclas #. ( numeral + punto )
XSCF> reset -d 0

desde OBP ejecuto boot net:dchp - install  ( CUIDADO, respetar los espacios y el guion - antes de install sino falla la instalacion porque no encuentra el boot image)




























En la foto de arriba muestra que termino la instalacion del miniroot y esta booteando el solaris 12

En la foto de abajo , muestro como  esta instalando desde la imagenes 














Booting














Listo, ya instalado, ejecuto un pkg update y compruebo que esta todo.
Una vez que finaliza la instalacion hay que hacer un init 6
Esta instalacion te deja en el sys.unconfig  y ahi hay que configurar el
hostname, el TIMEZONE, etc.
















Una vez booteado de disco, hay que agregar la ip, configurar el defaultrouter,etc.

Para configurar la ip seria 
root@psunp006:~# dladm show-link
LINK                CLASS     MTU    STATE    OVER
net3                phys      1500   unknown  --
net0                phys      1500   unknown  --
net4                phys      1500   unknown  --
net2                phys      1500   unknown  --
net5                phys      1500   unknown  --
net1                phys      1500   unknown  --
root@psunp006:~# netadm enable -p ncp defaultfixed
ncp 'DefaultFixed' is already enabled
root@psunp006:~# dladm show-phys
LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
net3              Ethernet             unknown    0      unknown   e1000g1
net0              Ethernet             unknown    0      unknown   bge0
net4              Ethernet             unknown    0      unknown   e1000g2
net2              Ethernet             unknown    0      unknown   e1000g0
net5              Ethernet             unknown    0      unknown   e1000g3
net1              Ethernet             unknown    0      unknown   bge1
root@psunp006:~# ipadm
NAME              CLASS/TYPE STATE        UNDER      ADDR
lo0               loopback   ok           --         --
   lo0/v4         static     ok           --         127.0.0.1/8
   lo0/v6         static     ok           --         ::1/128
sppp0             ip         ok           --         --
   sppp0/?        static     ok           --         192.168.200.2->192.168.200.1
root@psunp006:~#
root@psunp006:~# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
sppp0: flags=1010010008d1 mtu 1500 index 2
        inet 192.168.200.2 --> 192.168.200.1 netmask ffffff00
        ether 0:0:0:0:0:0
lo0: flags=2002000849 mtu 8252 index 1
        inet6 ::1/128
root@psunp006:~#
root@psunp006:~# ipadm create-ip net0
root@psunp006:~# ipadm create-addr -T static -a local=10.77.100.212/24 net0/addr
root@psunp006:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
sppp0/?           static   ok           192.168.200.2->192.168.200.1
net0/addr         static   inaccessible 10.77.100.212/24
lo0/v6            static   ok           ::1/128
root@psunp006:~#

root@psunp006:~# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
sppp0: flags=1010010008d1 mtu 1500 index 2
        inet 192.168.200.2 --> 192.168.200.1 netmask ffffff00
        ether 0:0:0:0:0:0
net0: flags=1000803 mtu 1500 index 4
        inet 10.77.100.212 netmask ffffff00 broadcast 10.77.100.255
        ether 0:21:28:1a:75:20
lo0: flags=2002000849 mtu 8252 index 1
        inet6 ::1/128
net0: flags=20002000800 mtu 1500 index 4
        inet6 ::/0
        ether 0:21:28:1a:75:20
root@psunp006:~#
root@psunp006:~# route -p add default 10.77.100.1
add net default: gateway 10.77.100.1


Este equipo ya tenia storage conectado, asi que el paso siguiente que hice fue poner los discos conectados a la SAN , en multipath
root@psunp006:/kernel/drv# stmsboot -D fp -e
WARNING: This operation will require a reboot.
Do you want to continue ? [y/n] (default: y) y
The changes will come into effect after rebooting the system.
Reboot the system now ? [y/n] (default: y) y


psunp006 console login: syncing file systems... done
rebooting...
Resetting...
POST Sequence 01 CPU Check
POST Sequence 02 Banner
LSB#00 (XSB#00-0): POST 2.9.0 (2009/02/18 14:34)
POST Sequence 03 Fatal Check
POST Sequence 04 CPU Register
POST Sequence 05 STICK
POST Sequence 06 MMU
POST Sequence 07 Memory Initialize
POST Sequence 08 Memory
POST Sequence 09 Raw UE In Cache
POST Sequence 0A Floating Point Unit
POST Sequence 0B SC
POST Sequence 0C Cacheable Instruction
POST Sequence 0D Softint
POST Sequence 0E CPU Cross Call
POST Sequence 0F CMU-CH
POST Sequence 10 PCI-CH
POST Sequence 11 Master Device
POST Sequence 12 DSCP
POST Sequence 13 SC Check Before STICK Diag
POST Sequence 14 STICK Stop
POST Sequence 15 STICK Start
POST Sequence 16 Error CPU Check
POST Sequence 17 System Configuration
POST Sequence 18 System Status Check
POST Sequence 19 System Status Check After Sync
POST Sequence 1A OpenBoot Start...
POST Sequence Complete.

Sun SPARC Enterprise M5000 Server, using Domain console
Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
Copyright 2008 Sun Microsystems, Inc. and Fujitsu Limited. All rights reserved.
OpenBoot 4.24.10, 32768 MB memory installed, Serial #86543492.
Ethernet address 0:21:28:28:8c:84, Host ID: 85288c84.



Rebooting with command: boot
Boot device: /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0:a  File and args:
SunOS Release 5.11 Version 11.2 64-bit
Copyright (c) 1983, 2014, Oracle and/or its affiliates. All rights reserved.
stmsboot: Root is on ZFS
stmsboot: configuring devices

stmsboot: vfstab has been updated
stmsboot: now regenerating boot archive
Hostname: psunp006





*********************************************************************************
Este trabajo lo realize con la ayuda de mi colega Nicolas Morono.
Agradezco la ayuda y soporte de los Fied Engineer Marcelo Herrera y Guillermo Ojea Quintana
*********************************************************************************

Solaris 11 - ZFS Mirror boot

Crear un mirror del disco de booteo con zfs
Partiendo de la base que tengo estos dos discos internos y el Sistema Operativo esta alojado en el disco c1t0d0

     c1t0d0
          /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0
     c1t1d0
          /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0

root# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c1t0d0s0  ONLINE       0     0     0

errors: No known data errors
root#
Copio la vtoc del disco primario ( c1t0d0 ) al disco secundario ( c1t1d0 )

root# prtvtoc /dev/rdsk/c1t0d0s2 | fmthard -s - /dev/rdsk/c1t1d0s2
fmthard:  New volume table of contents now in place.
root#

Agrego el disco c1t1d0s0 al pool de disco rpool 

root# zpool attach -f rpool c1t0d0s0 c1t1d0s0
Make sure to wait until resilver is done before rebooting.
root#

root@psunp006:/repo# zpool status rpool
  pool: rpool
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function in a degraded state.
action: Wait for the resilver to complete.
        Run 'zpool status -v' to see device specific details.
  scan: resilver in progress since Thu Jun 18 09:16:09 2015
    22.6G scanned
    5.02G resilvered at 106M/s, 20.58% done, 0h2m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         DEGRADED     0     0     0
          mirror-0    DEGRADED     0     0     0
            c1t0d0s0  ONLINE       0     0     0
            c1t1d0s0  DEGRADED     0     0     0  (resilvering)

errors: No known data errors
root#

Chequeo como va la sincronizacion de los discos
root# zpool status -v rpool
  pool: rpool
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Jun 18 09:16:09 2015
    22.6G scanned
    20.3G resilvered at 94.8M/s, 89.04% done, 0h0m to go
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         DEGRADED     0     0     0
          mirror-0    DEGRADED     0     0     0
            c1t0d0s0  ONLINE       0     0     0
            c1t1d0s0  DEGRADED     0     0     0  (resilvering)

device details:

        c1t1d0s0    DEGRADED      scrub/resilver needed
        status: ZFS detected errors on this device.
                The device is missing some data that is recoverable.
           see: http://support.oracle.com/msg/ZFS-8000-QJ for recovery


errors: No known data errors

root#

Ahora si, ya esta espejado 

root# zpool status -v rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 22.6G in 0h5m with 0 errors on Thu Jun 18 09:21:48 2015
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            c1t0d0s0  ONLINE       0     0     0
            c1t1d0s0  ONLINE       0     0     0

errors: No known data errors
root#

Ahora a copiarle el sector de booteo al disco que agregue como mirror

root# installboot -F zfs -f /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
root#

Si lo ejecuto sin la opcion -f , me da un error como el siguiente

root# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
WARNING: target device /dev/rdsk/c1t1d0s0 has a versioned bootblock but no versioning information was provided.
bootblock version installed on /dev/rdsk/c1t1d0s0 is more recent or identical
Use -f to override or install without the -u option