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
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.
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.
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
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