Monday, October 25, 2010

Como Instalar una Zona Whole Root en Solaris 10

Una zona es un entorno virtual del sistema operativo creado en una única instancia del sistema operativo Solaris.
La creación de zonas en solaris viene por defecto como "sparse", la cual tiene los directorios /usr, /sbin, /lib y /platform en forma de solo lectura. Pero en ciertas ocaciones, necesitamos que la zona tenga esos directorios como propios y no compartidos desde la zona global.

1.- El primer paso es crear el ZFS filesystem para la zona.

[root@intalio]:/ > zfs create zfs1/bdvbmc

[root@intalio]:/ > zfs list

NAME            USED  AVAIL  REFER  MOUNTPOINT

zfs1           34.9G  99.0G  29.5K  /zfs1

zfs1/bdvbmc    80.5K  99.0G  80.5K  /zfs1/bdvbmc

zfs1/intaliod  14.1G  99.0G  14.1G  /zfs1/intaliod

zfs1/intaliop  10.2G  99.0G  10.2G  /zfs1/intaliop

zfs1/intalioq  9.48G  99.0G  9.48G  /zfs1/intalioq

zfs1/zones     1.13G  99.0G  1.13G  /export/zones

2.- Para poder instalar la zona es necesario darle la siguiente perisología al filesystem.

[root@intalio]:/ > chmod 700 /zfs1/bdvbmc

3.- Validando las zonas que tenemos actualmente.

[root@intalio]:/ > zoneadm list -vi

ID NAME             STATUS     PATH                           BRAND    IP

0 global           running    /                              native   shared

1 intaliod         running    /zfs1/intaliod                 native   shared

2 wz-template      running    /export/zones/wz-template      native   shared

3 intalioq         running    /zfs1/intalioq                 native   excl

4 intaliop         running    /zfs1/intaliop                 native   shared

4.- Procedemos a configurar la zona con el comando zonecfg.

[root@intalio]:/ > zonecfg -z bdvbmc

bdvbmc: No such zone configured

Use 'create' to begin configuring a new zone.

zonecfg:bdvbmc> create

zonecfg:bdvbmc> set zonepath=/zfs1/bdvbmc

zonecfg:bdvbmc> set autoboot=true

zonecfg:bdvbmc> add net

zonecfg:bdvbmc:net> set physical=aggr1

zonecfg:bdvbmc:net> set address=180.183.194.69

zonecfg:bdvbmc:net> end

zonecfg:bdvbmc> remove inherit-pkg-dir dir=/usr

zonecfg:bdvbmc> remove inherit-pkg-dir dir=/sbin

zonecfg:bdvbmc> remove inherit-pkg-dir dir=/lib

zonecfg:bdvbmc> remove inherit-pkg-dir dir=/platform

zonecfg:bdvbmc> info

zonename: bdvbmc

zonepath: /zfs1/bdvbmc

brand: native

autoboot: true

bootargs:

pool:

limitpriv:

scheduling-class:

ip-type: shared

net:

address: 180.183.194.69

physical: aggr1

defrouter not specified

zonecfg:bdvbmc> verify

zonecfg:bdvbmc> commit

zonecfg:bdvbmc> exit

la diferencia entre el "sparse zone" y el "whole root" son los siguientes parámetros.
zonecfg:bdvbmc> remove inherit-pkg-dir dir=/usr
zonecfg:bdvbmc> remove inherit-pkg-dir dir=/sbin
zonecfg:bdvbmc> remove inherit-pkg-dir dir=/lib
zonecfg:bdvbmc> remove inherit-pkg-dir dir=/platform

5.- Instalamos La zona.

[root@intalio]:/ > zoneadm -z bdvbmc install

Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <150903> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1283> packages on the zone.
Initialized <1283> packages on zone.
Zone  is initialized.
Installation of <4> packages was skipped.
The file  contains a log of the zone installation.

6.- Arrancamos la zona.


[root@intalio]:/ > zoneadm -z bdvbmc boot

7.- Entramos a la consola para terminar el proceso de instalación


[root@intalio]:/ > zlogin -C bdvbmc