Utilice el comando zonecfg que se describe en la página del comando man zonecfg(1M) para llevar a cabo las acciones siguientes.
Crear la configuración de zona
Verificar que esté presente toda la información necesaria
Confirmar la configuración de zona no global
El comando zonecfg también puede utilizarse para especificar de forma persistente la configuración de administración de recursos para la zona global.
Mientras configura una zona con la utilidad zonecfg, puede utilizar el subcomando revert para deshacer la configuración de un recurso. Consulte Cómo deshacer una configuración de zona.
En Secuencia para configurar varias zonas se facilita una secuencia para configurar múltiples zonas en el sistema.
Para ver la configuración de una zona no global, consulte Cómo visualizar la configuración de una zona no global.
Los únicos elementos necesarios para crear una zona no global nativa son las propiedades zonename y zonepath. Otros recursos y propiedades son opcionales. Asimismo, algunos recursos opcionales precisan seleccionar entre alternativas, por ejemplo elegir entre el recurso dedicated-cpu o el recurso capped-cpu. Consulte Datos de configuración de zonas para obtener información sobre las propiedades y los recursos de zonecfg.
Para llevar a cabo este procedimiento, debe ser el administrador global de la zona global.
Conviértase en superusuario o asuma el rol de administrador principal.
Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.
Configure una zona con el nombre que ha elegido.
En este ejemplo de procedimiento se utiliza el nombre my-zone.
global# zonecfg -z my-zone |
Si es la primera vez que ha configurado esta zona, aparecerá el mensaje de sistema siguiente:
my-zone: No such zone configured Use 'create' to begin configuring a new zone. |
Cree la nueva configuración de zona.
Este procedimiento utiliza la configuración predeterminada.
zonecfg:my-zone> create |
Defina la ruta de zona /export/home/my-zone en este procedimiento.
zonecfg:my-zone> set zonepath=/export/home/my-zone |
No coloque zonepath en el ZFS en las versiones anteriores a Solaris 10 10/08.
Establezca el valor de inicio automático.
Si se configura como true, la zona se iniciará automáticamente al iniciar la zona global. En el caso de las zonas que se inician automáticamente, también debe activarse el servicio de zonas svc:/system/zones:default. El valor predeterminado es false.
zonecfg:my-zone> set autoboot=true |
Defina los argumentos de inicio persistentes para una zona.
zonecfg:my-zone> set bootargs="-m verbose" |
Dedique una CPU a esta zona.
zonecfg:my-zone> add dedicated-cpu |
Revise el conjunto de privilegios predeterminado.
zonecfg:my-zone> set limitpriv="default,sys_time" |
Esta línea añade la posibilidad de configurar el reloj del sistema con el conjunto de privilegios predeterminado.
Defina la clase de planificación como FSS.
zonecfg:my-zone> set scheduling-class=FSS |
Añada un límite de memoria.
zonecfg:my-zone> add capped-memory |
Defina el límite de memoria.
zonecfg:my-zone:capped-memory> set physical=50m |
Defina el límite de memoria de intercambio.
zonecfg:my-zone:capped-memory> set swap=100m |
Establezca el límite de memoria bloqueada.
zonecfg:my-zone:capped-memory> set locked=30m |
Finalice la especificación del límite de memoria.
zonecfg:my-zone:capped-memory> end |
Añada un sistema de archivos.
zonecfg:my-zone> add fs |
Defina el punto de montaje para el sistema de archivos /usr/local en este procedimiento.
zonecfg:my-zone:fs> set dir=/usr/local |
Especifique que /opt/zones/my-zone/local en la zona global se montará como /usr/local en la zona que se está configurando.
zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local |
En la zona no global, el sistema de archivos /usr/local podrá leerse y escribirse.
Especifique el tipo de sistema de archivos lofs en este procedimiento.
zonecfg:my-zone:fs> set type=lofs |
El tipo indica el modo en que interactúa el núcleo con el sistema de archivos.
Finalice la especificación del sistema de archivos.
zonecfg:my-zone:fs> end |
Este paso puede realizarse más de una vez para añadir más de un sistema de archivos.
(Opcional) Configure el hostid.
zonecfg:my-zone> set hostid=80f0c086 |
Añada un conjunto de datos ZFS denominado sales en la agrupación de almacenamiento tank.
zonecfg:my-zone> add dataset |
(Sólo para zonas raíz dispersas) Añada un sistema de archivos compartido que esté montado en bucle desde la zona global.
No realice este paso para crear una zona raíz completa, que no tiene ningún sistema de archivos compartido. Consulte la descripción de las zonas raíz completas de Espacio en el disco necesario.
zonecfg:my-zone> add inherit-pkg-dir |
Especifique que /opt/sfw en la zona global se montará en modo de sólo lectura en la zona que se está configurando.
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw |
La base de datos de empaquetamiento de la zona se actualiza para reflejar los paquetes. Estos recursos no se pueden modificar ni eliminar una vez se ha instalado la zona utilizando zoneadm.
Finalice la especificación de inherit-pkg-dir.
zonecfg:my-zone:inherit-pkg-dir> end |
Este paso puede realizarse más de una vez para añadir más de un sistema de archivos compartido.
Si desea crear una zona raíz completa pero se han añadido recursos de sistemas de archivos compartidos predeterminados utilizando inherit-pkg-dir, debe eliminar estos recursos inherit-pkg-dir predeterminados utilizando zonecfg antes de instalar la zona:
zonecfg:my-zone> remove inherit-pkg-dir dir=/lib
zonecfg:my-zone> remove inherit-pkg-dir dir=/platform
zonecfg:my-zone> remove inherit-pkg-dir dir=/sbin
zonecfg:my-zone> remove inherit-pkg-dir dir=/usr
(Opcional) Si está creando una zona de IP exclusiva, configure ip-type.
zonecfg:my-zone> set ip-type=exclusive |
En el paso add net sólo se especificará el tipo de dispositivo físico.
Añada una interfaz de red.
zonecfg:my-zone> add net |
(Sólo IP compartida) Defina la dirección IP para la interfaz de red 192.168.0.1 en este procedimiento.
zonecfg:my-zone:net> set address=192.168.0.1 |
Establezca el tipo de dispositivo físico para la interfaz de red, el dispositivo hme en este procedimiento.
zonecfg:my-zone:net> set physical=hme0 |
Solaris 10 10/08: (opcional, sólo IP compartida) en este procedimiento defina el enrutador predeterminado para la interfaz de red, 10.0.0.1 en este procedimiento.
zonecfg:my-zone:net> set defrouter=10.0.0.1 |
Finalice la especificación.
zonecfg:my-zone:net> end |
Este paso puede realizarse más de una vez para añadir más de una interfaz de red.
Añada un dispositivo.
zonecfg:my-zone> add device |
Defina la coincidencia del dispositivo /dev/sound/* en este procedimiento.
zonecfg:my-zone:device> set match=/dev/sound/* |
Finalice la especificación del dispositivo.
zonecfg:my-zone:device> end |
Este paso puede realizarse más de una vez para añadir más de un dispositivo.
Añada un control de recurso de zona utilizando el nombre de propiedad.
zonecfg:my-zone> set max-sem-ids=10485200 |
Este paso puede realizarse más de una vez para añadir más de un control de recurso.
Añada un comentario utilizando el tipo de recurso attr.
zonecfg:my-zone> add attr |
Defina el nombre como comment.
zonecfg:my-zone:attr> set name=comment |
Defina el tipo como string.
zonecfg:my-zone:attr> set type=string |
Configure el valor como un comentario que describe la zona.
zonecfg:my-zone:attr> set value="This is my work zone." |
Finalice la especificación del tipo de recurso attr.
zonecfg:my-zone:attr> end |
Verifique la configuración de zona para la zona.
zonecfg:my-zone> verify |
Confirme la configuración de zona para la zona.
zonecfg:my-zone> commit |
Cierre el comando zonecfg.
zonecfg:my-zone> exit |
Aunque no haya escrito explícitamente commit en el indicador, se intenta automáticamente llevar a cabo commit al escribir exit o en caso de que finalice el archivo.
El comando zonecfg también admite varios subcomandos, entre comillas y separados por puntos y coma, de la misma invocación de shell.
global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone" |
Consulte Instalación e inicio de zonas para instalar la configuración de zona confirmada.
Puede utilizar esta secuencia para configurar e iniciar varias zonas en el sistema. La secuencia adopta los parámetros siguientes:
El número de zonas que se crearán
El prefijo nombre_zona
El directorio que se utilizará como directorio base
Para ejecutar la secuencia, debe ser el administrador global de la zona global. El administrador global tiene privilegios de superusuario en la zona global o asume el rol de administrador principal.
#!/bin/ksh # # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" if [[ -z "$1" || -z "$2" || -z "$3" ]]; then echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>" exit 2 fi if [[ ! -d $3 ]]; then echo "$3 is not a directory" exit 1 fi nprocs=`psrinfo | wc -l` nzones=$1 prefix=$2 dir=$3 ip_addrs_per_if=`ndd /dev/ip ip_addrs_per_if` if [ $ip_addrs_per_if -lt $nzones ]; then echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)" echo "set it higher with 'ndd -set /dev/ip ip_addrs_per_if <num>" exit 1 fi i=1 while [ $i -le $nzones ]; do zoneadm -z $prefix$i list > /dev/null 2>&1 if [ $? != 0 ]; then echo configuring $prefix$i F=$dir/$prefix$i.config rm -f $F echo "create" > $F echo "set zonepath=$dir/$prefix$i" >> $F zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \ sed 's/^/ /g' else echo "skipping $prefix$i, already configured" fi i=`expr $i + 1` done i=1 while [ $i -le $nzones ]; do j=1 while [ $j -le $nprocs ]; do if [ $i -le $nzones ]; then if [ `zoneadm -z $prefix$i list -p | \ cut -d':' -f 3` != "configured" ]; then echo "skipping $prefix$i, already installed" else echo installing $prefix$i mkdir -pm 0700 $dir/$prefix$i chmod 700 $dir/$prefix$i zoneadm -z $prefix$i install > /dev/null 2>&1 & sleep 1 # spread things out just a tad fi fi i=`expr $i + 1` j=`expr $j + 1` done wait done i=1 while [ $i -le $nzones ]; do echo setting up sysid for $prefix$i cfg=$dir/$prefix$i/root/etc/sysidcfg rm -f $cfg echo "network_interface=NONE {hostname=$prefix$i}" > $cfg echo "system_locale=C" >> $cfg echo "terminal=xterms" >> $cfg echo "security_policy=NONE" >> $cfg echo "name_service=NONE" >> $cfg echo "timezone=US/Pacific" >> $cfg echo "root_password=Qexr7Y/wzkSbc" >> $cfg # 'l1a' i=`expr $i + 1` done i=1 para=`expr $nprocs \* 2` while [ $i -le $nzones ]; do date j=1 while [ $j -le $para ]; do if [ $i -le $nzones ]; then echo booting $prefix$i zoneadm -z $prefix$i boot & fi j=`expr $j + 1` i=`expr $i + 1` done wait done |
Para llevar a cabo este procedimiento, debe ser el administrador global de la zona global.
Conviértase en superusuario o asuma el rol de administrador principal.
Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.
Visualice la configuración de una zona.
global# zonecfg -z zonename info |