Antes de crear una zona necesitamos recoger los datos:

    • Path: punto donde se encontrará la raíz de la zona.
    • IP e interfaz: dirección IP para la zona, así como el interfaz de red de la zona global sobre la que “escuchará” dicha IP. El sistema montará una IP virtual sobre esa interfaz.
    • Directorios heredados: particiones/espacios montados en la zona global y que deseamos ver en la zona que vamos a crear. Útil para tener un repositorio de software común a todas las zonas montadas en esa máquina, por ejemplo.

En este ejemplo crearemos una zona con los siguientes datos:

    • Path: /array1/bck
    • IP: 10.10.10.119
    • Interfaz: ce0
    • Directorio heredado: /software (este punto lo haremos después de haber montado la zona para ilustrar la forma de hacer modificaciones).

Los pasos serían algo así como:

  • Configuraremos la zona nueva. Estos comandos sólo crean los archivos de configuración (en /etc/zones).
[root@nodeint1]$ df -k /array1/bck
Sistema de archivos kbytes usados aprovechar capacidad Montado en
/dev/dsk/c2t201400A0B8261D80d8s7
202175558 65553 200088250 1% /array1/bck
[root@nodeint1]$ zonecfg -z nodebck
nodebck: No se ha configurado esa zona
Use ‘create’ para comenzar a configurar una zona nueva.
zonecfg:nodebck> create
zonecfg:nodebck> set zonepath=/array1/bck
zonecfg:nodebck> set autoboot=true
zonecfg:nodebck> add net
zonecfg:nodebck:net> set address=10.10.10.119
zonecfg:nodebck:net> set physical=ce0
zonecfg:nodebck:net> end
zonecfg:nodebck> verify
zonecfg:nodebck> commit
zonecfg:nodebck> exit
  • Instalaremos la zona configurada.
[root@nodeint1]$ zoneadm -z nodebck install
Preparing to install zone <nodebck>.
Creating list of files to copy from the global zone.
Copying <3455> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1107> packages on the zone.
Initialized <1107> packages on zone.
Zone <nodebck> is initialized.
La instalación de estos paquetes ha generado errores: <SUNWsefms SUNWsefms-dpi-array-6130 SUNWsefms-dpi-array-6140 SUNWsefms-dpi-array-6540 SUNWsefms-dpi-array-flx380>
Se ha omitido la instalación de los paquetes <25>.La instalación de estos paquetes ha generado advertencias: <SUNWtcatu>
El archivo </array1/bck/root/var/sadm/system/logs/install_log> contiene un registro de la instalación por zonas.
  • Podremos ver la zona instalada (aunque aún sin funcionar):
[root@nodeint1]$ zoneadm list -iv
ID NAME STATUS PATH
0 global running /
1 nodebck installed /array1/bck
  • Arrancaremos la zona. A continuación accederemos en modo consola. Es importante entrar en modo consola justo después de arrancar la zona por primera vez ya que en ese arranque se ejecuta la instalación inicial de la zona.
[root@nodeint1]$ zoneadm -z nodebck boot
[root@nodeint1]$
[root@nodeint1]$ zlogin -C nodebck
Select a Language
0. English
1. Spanish
2. it
Please make a choice (0 – 2), or press h or ? for help: 1
Seleccione un entorno nacional 0. Spain (ISO8859-1)
1. Spain (ISO8859-15 – Euro)
2. Spain (UTF-8)
3. Volver a la pantalla anteriorEscoja uno (0 – 3) o pulse h o ? para obtener ayuda: 1¿Qué tipo de terminal está usando?
1) Estándar ANSI CRT
2) DEC VT52
3) DEC VT100
4) Heathkit 19
5) Lear Siegler ADM31
6) Consola PC
7) Herramienta de comandos Sun
8) Estación de Trabajo (Workstation) Sun
9) Televideo 910
10) Televideo 925
11) Wyse, modelo 50
12) Emulador X Terminal (xterms)
13) Emulador de terminal CDE (dtterm)
14) Otros
Introduzca el número seleccionado y presione Intro:3
  • Configuramos los siguientes parámetros.
Kerberos Security: No
Name service: DNS
Domain name: internal.prous
DNS Server’s IP address: 10.10.10.12
Región: Europe -> Spain -> mainland
  • La configuración inicial terminará y nos dejará hacer login. Lo haremos (aún en modo consola) y editaremos la configuración de SSH para que nos permita acceder mediante root. Para ello, editaremos /etc/ssh/sshd_config y luego mataremos el proceso de SSH, que se reiniciará con los cambios aplicados:
# Are root logins permitted using sshd.
# Note that sshd uses pam_authenticate(3PAM) so the root (or any other) user
# maybe denied access by a PAM module regardless of this setting.
# Valid options are yes, without-password, no.
PermitRootLogin yes
  • Entramos mediante SSH y hacemos los cambios finales: pondremos la shell bash para el usuario root, editaremos el /etc/profile para añadir la variable PS1:
PS1=”[u@h]$ ”
export LOGNAME PATH PS1
  • Editaremos el archivo /etc/motd con la descripción de la máquina/zona.
  • Ahora, desde la zona global, vamos a realizar un cambio en la configuración de esta zona. Como hemos comentado al principio de este documento, añadiremos un directorio, /software, y haremos que este aparezca en la zona nodebck como /data. Configuraremos también el recurso como sólo lectura:
[root@nodeint1]$ zonecfg -z nodebck
zonecfg:nodebck> add fs
zonecfg:nodebck:fs> set dir=/software
zonecfg:nodebck:fs> set special=/data/software
zonecfg:nodebck:fs> set options=[ro,nodevices,nosuid]
zonecfg:nodebck:fs> set type=lofs
zonecfg:nodebck:fs> end
zonecfg:nodebck> verify
zonecfg:nodebck> commit
zonecfg:nodebck> exit
  • Verificaremos la configuración con el comando:
[root@nodeint1]$ zonecfg -z nodebck info

Por otro lado, decidimos “repartir” CPUs a las zonas (adjudicar recursos de esta forma convierte el concepto ‘zona’ en concepto ‘container’). Para ello, seguiremos los siguientes pasos:

  • Definiremos los pools con las CPUs mínimas y máximas. Crearemos un archivo de configuración con los comandos de configuración de pool a pasar a la herramienta poolcfg:

pool_commands.txt
create pset nodebck_pset ( uint pset.min = 2 ; uint pset.max = 2 )
create pool nodebck_pool
associate pool nodebck_pool ( pset nodebck_pset )
create pset nodedev_pset ( uint pset.min = 2 ; uint pset.max = 2 )
create pool nodedev_pool
associate pool nodedev_pool ( pset nodedev_pset )
create pset nodepre_pset ( uint pset.min = 2 ; uint pset.max = 2 )
create pool nodepre_pool
associate pool nodepre_pool ( pset nodepre_pset )
create pset nodetest_pset ( uint pset.min = 2 ; uint pset.max = 2 )
create pool nodetest_pool
associate pool nodetest_pool ( pset nodetest_pset )

  • Ejecutaremos el comando que habilita el sistema de pools, luego con pooladm -s generaremos el archivo de configuracion de pools por defecto (/etc/pooladm.conf), luego el comando que carga los comandos del archivo de configuración que especificamos, y finalmente con info obtenemos la información que hay cargada en el archivo de configuración (que NO la activa):

[root@nodeint1]$ pooladm -e
[root@nodeint1]$ pooladm -s
[root@nodeint1]$ poolcfg -f pool_commands.txt
[root@nodeint1]$ poolcfg -c info

  • Cargaremos la configuración sobre el kernel y finalmente la validaremos:

[root@nodeint1]$ pooladm -c
[root@nodeint1]$ pooladm -n

  • Ahora que tenemos los pools definidos, asociaremos cada zona a su pool correspondiente.

[root@nodeint1]$ zonecfg -z nodebck
zonecfg:nodebck> set pool=nodebck_pool
zonecfg:nodebck> verify
zonecfg:nodebck> commit
zonecfg:nodebck> exit
[root@nodeint1]$ zoneadm -z nodebck reboot