Guía de administración de sistemas: administración de recursos y contenedores de Oracle Solaris y zonas de Oracle Solaris

Datos de configuración de zonas

Los datos de configuración de zonas se componen de dos tipos de entidades, recursos y propiedades. Cada recurso tiene un tipo y también pude tener un conjunto de una o más propiedades. Las propiedades tienen nombres y valores. El conjunto de propiedades depende del tipo de recurso.

Tipos de propiedades y recursos

Los tipos de propiedades y recursos se describen del modo siguiente:

Zone name

El nombre de zona identifica la zona para la utilidad de configuración. Se aplican las siguientes reglas a los nombres de zonas:

  • Cada zona debe tener un nombre exclusivo.

  • Los nombres de zona distinguen entre mayúsculas y minúsculas.

  • Un nombre de zona debe empezar con un carácter alfanumérico.

    El nombre puede contener caracteres alfanuméricos, guiones de subrayado, (_), guiones (-) y puntos (.).

  • El nombre no puede superar los 64 caracteres.

  • El nombre global y todos los nombres que empiezan por SUNW están reservados y no pueden utilizarse.

zonepath

La propiedad zonepath es la ruta que contiene la raíz de la zona. Cada zona tiene un directorio root que reside en el sistema de archivos de la zona global en su zonepath . En el momento de la instalación de la zona, la jerarquía de directorios zonepath se creará con el propietario y modo correctos. Es obligatorio que el directorio zonepath sea propiedad de root con el modo 700.

La ruta del directorio raíz de la zona no global se encuentra a un nivel inferior. El directorio raíz de la zona tiene la misma propiedad y los mismos permisos que el directorio raíz ( /) de la zona global. El directorio de la zona debe ser propiedad de root con el modo 755. Estos directorios se crean automáticamente con los permisos correctos, y no es necesario que los verifique el administrador de zona. Con esta jerarquía se asegura que los usuarios sin privilegios de la zona global no pasen a un sistema de archivos de una zona no global.

Ruta 

Descripción 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

Raíz de la zona 

/home/export/my-zone/dev

Dispositivos creados para la zona 

Consulte Recorrido de sistemas de archivos para obtener información más detallada sobre esta cuestión.


Nota –

Consulte Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 y Solaris 10 5/08: no coloque el sistema de archivos raíz en una zona no global en ZFS para conocer las limitaciones de ZFS para estas versiones.


autoboot

Si esta propiedad está configurada como verdadera, la zona se inicia automáticamente cuando se inicia la zona global. Tenga en cuenta que si el servicio de zonas, svc:/system/zones:default, está desactivado, la zona no se iniciará automáticamente, independientemente de la configuración de esta propiedad. Puede activar el servicio de zonas con el comando svcadm descrito en la página del comando man svcadm(1M):


global# svcadm enable zones
bootargs

Solaris 10 8/07: Esta propiedad se utiliza para configurar un argumento de inicio para la zona. Se aplica el argumento de inicio a menos que lo modifiquen los comandos reboot, zoneadm boot o zoneadm reboot. Consulte Solaris 10 8/07: argumentos de inicio de zona.

pool

Esta propiedad se utiliza para asociar la zona con una agrupación de recursos del sistema. Varias zonas pueden compartir los recursos de una agrupación. Consulte también Solaris 10 8/07: recurso dedicated-cpu.

limitpriv

Solaris 10 11/06 y posteriores: Esta propiedad se utiliza para especificar una máscara con privilegios que no sea la predeterminada. Consulte Privilegios en una zona no global.

Se añaden privilegios especificando el nombre del privilegio, con o sin priv_ al inicio. Los privilegios se excluyen incluyendo un guión (-) o un signo de exclamación (!) al principio del nombre. Los valores de privilegios se separan con comas y se colocan entre comillas ().

Tal como se describe en priv_str_to_set(3C), los conjuntos de privilegios especiales de none, all y basic se expanden a sus definiciones normales. Dado que la configuración de zona tiene lugar desde la zona global, no es posible utilizar el conjunto de privilegios especiales zone. Dado que un uso común es modificar el conjunto de privilegios predeterminado añadiendo o eliminando ciertos privilegios, el conjunto especial default se asigna al conjunto de privilegios predeterminado. Cuando se incluye default al principio de la propiedad limitpriv, se expande al conjunto predeterminado.

La entrada siguiente añade la posibilidad de utilizar los programas de DTrace que sólo requieren los privilegios dtrace_proc y dtrace_user en la zona:


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

Si el conjunto de privilegios de la zona contiene un privilegio no permitido, no tiene un privilegio obligatorio o incluye un privilegio desconocido, cualquier intento de verificar, configurar como lista o iniciar la zona generará un mensaje de error.

scheduling-class

Solaris 10 8/07: Esta propiedad configura la clase de planificación para la zona. Consulte Clase de planificación en una zona para obtener información adicional y conocer algunas recomendaciones.

ip-type

Solaris 10 8/07: Es necesario configurar esta propiedad sólo si la zona es una zona de IP exclusiva. Consulte Solaris 10 8/07: zonas no globales de IP exclusiva y Cómo configurar la zona.

dedicated-cpu

Solaris 10 8/07: Este recurso dedica un subconjunto de los procesadores del sistema a la zona mientras se ejecuta. El recurso dedicated-cpu establece los límites de ncpus y, opcionalmente, importance. Para más información, consulte Solaris 10 8/07: recurso dedicated-cpu.

recurso capped-cpu

Solaris 10 5/08: Este recurso establece un límite en la cantidad de recursos de CPU que la zona puede consumir mientras se ejecuta. El recurso proporciona un límite para ncpus.

capped-memory resource

Solaris 10 8/07: Este recurso agrupa las propiedades que se utilizan al limitar la memoria para la zona. El recurso capped-memory establece los límites para la memoria physical, swap y locked. Debe especificarse al menos una de estas propiedades.

dataset

Solaris 10 6/06: La adición de un recurso de conjunto de datos del sistema de archivos ZFS permite delegar la administración del almacenamiento a una zona no global. El administrador de zona puede crear y destruir sistemas de archivos dentro de ese conjunto de datos, crear y destruir clones y modificar las propiedades del conjunto de datos. El administrador de zona no puede modificar los conjuntos de datos que no se han añadido a la zona o que superan el nivel superior establecido en el conjunto de datos asignado a la zona.

Los conjuntos de datos ZFS se pueden añadir a una zona de los modos siguientes.

  • Como sistema de archivos montado en lofs, cuando el objetivo es únicamente compartir espacio con la zona global

  • Como conjunto de datos delegado

Consulte el Capítulo 10, Temas avanzados de Oracle Solaris ZFS de Guía de administración de Oracle Solaris ZFS y Sistemas de archivos y zonas no globales.

Consulte también el Capítulo 30Resolución de problemas relativos a las zonas de Solaris para obtener información sobre las cuestiones relativas a los conjuntos de datos.

fs

Cada zona puede tener diferentes sistemas de archivos que se montan cuando la zona pasa del estado de instalada al estado de lista. El recurso del sistema de archivos especifica la ruta al punto de montaje del sistema de archivos. Para obtener información sobre el uso de los sistemas de archivos en las zonas, consulte Sistemas de archivos y zonas no globales.

inherit-pkg-dir

Este recurso no debe configurarse en una zona raíz completa.

En una zona raíz dispersa, el recurso inherit-pkg-dir se utiliza para representar los directorios que contienen software empaquetado que comparte una zona no global con la zona global.

El contenido de los paquetes de software transferido al directorio inherit-pkg-dir lo hereda la zona no global en modo de sólo lectura. 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.


Nota –

En la configuración se incluyen cuatro recursos inherit-pkg-dir predeterminados. Estos recursos de directorios indican los directorios que deben heredar sus paquetes asociados de la zona global. Los recursos se implementan a través de un montaje de sistema de archivos con bucle de sólo lectura.

  • /lib

  • /platform

  • /sbin

  • /usr


net

El recurso de la interfaz de red es el nombre de la interfaz. Cada zona puede tener interfaces de red que se configuran cuando la zona pasa del estado de instalada al estado de lista.

device

El recurso de dispositivo es el especificador de coincidencia del archivo. Cada zona puede tener dispositivos que deben configurarse cuando la zona pasa del estado de instalada al estado de lista.

rctl

El recurso rctl se utiliza para los controles de recursos de toda la zona. Los controles están activos cuando la zona pasa del estado de instalada al estado de lista.

hostid

Se puede establecer un hostid que sea diferente del hostid de la zona global.

attr

Este atributo genérico puede utilizarse para los comentarios del usuario u otros subsistemas. La propiedad name de attr debe empezar con un carácter alfanumérico. La propiedad name puede contener caracteres alfanuméricos, guiones (-) y puntos (.) . Los nombres de atributos que empiezan por zone. se reservan para uso del sistema.

Propiedades del tipo de recurso

Los recursos también cuentan con propiedades que configurar. Las siguientes propiedades se asocian con los tipos de recursos mostrados.

dedicated-cpu

ncpus, importance

Solaris 10 8/07: especifica el número de CPU y, de forma opcional, la importancia relativa de la agrupación. El ejemplo siguiente especifica un intervalo de CPU para uso de la zona my-zone. También se configura importance.


zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

Especifique el número de CPU. El ejemplo siguiente especifica los límites del recurso capped-cpu de 3,5 CPU de la zona my-zone.


zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-zone:capped-cpu> end
capped-memory

physical, swap, locked

Especifica los límites de memoria para la zona my-zone. Cada límite es opcional, pero debe configurarse como mínimo uno.


zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
fs

dir, special, raw, type, options

Los parámetros de recursos fs proporcionan los valores que determinan cómo y dónde se montan los sistemas de archivos. Los parámetros fs se definen del modo siguiente:

dir

Especifica el punto de montaje para el sistema de archivos.

special

Especifica el nombre del dispositivo especial o el directorio a partir de la zona global que montar.

raw

Especifica el dispositivo básico en el que ejecutar fsck antes de montar el sistema de archivos.

type

Especifica el tipo de sistema de archivos.

options

Especifica las opciones de montaje similares a las que se encuentran con el comando mount

Las líneas del ejemplo siguiente especifican que /dev/dsk/c0t0d0s2 en la zona global se montará como /mnt en una zona que se está configurando. La propiedad raw especifica un dispositivo opcional en el que se ejecutará el comando fsck antes de intentar montar el sistema de archivos. El tipo de sistema de archivos que se utilizará es UFS. Se añaden las opciones nodevices y logging.


zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/mnt
zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2
zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2
zonecfg:my-zone:fs> set type=ufs
zonecfg:my-zone:fs> add options [nodevices,logging]
zonecfg:my-zone:fs> end

Para más información, consulte La opción -o nosuid, Limitaciones de seguridad y comportamiento del sistema de archivos y las páginas del comando man fsck(1M) y mount(1M). Las páginas del comando man 1M de la sección están disponibles para las opciones de montaje que son exclusivas de un sistema de archivos específico. Los nombres de estas páginas del comando man tienen el formato mount_ sistema_archivos.


Nota –

Para añadir un sistema de archivos ZFS utilizando la propiedad del recurso fs, consulte Adición de sistemas de archivos ZFS a una zona no global de Guía de administración de Oracle Solaris ZFS.


dataset

name

Las líneas del ejemplo siguiente especifican que el conjunto de datos sales se visualizará y montará en la zona no global y dejará de estar visible en la zona global.


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

Las líneas del ejemplo siguiente especifican que /opt/sfw se montará en bucle desde la zona global.


zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:my-zone:inherit-pkg-dir> end
net

address, physicaldefrouter


Nota –

Para una zona de IP compartida, se especifican tanto la dirección IP como el dispositivo. Si lo desea, se puede definir el enrutador predeterminado.

  • La propiedad defrouter se puede utilizar para definir una ruta predeterminada cuando la zona no global está en una subred que no esté configurada en la zona global.

  • Cualquier zona que tenga establecida la propiedad defrouter debe estar en una subred que no esté configurada en la zona global.

Cuando existan zonas de IP compartida en subredes diferentes, no configure un vínculo de datos en la zona global.

Para una zona de IP exclusiva, sólo se especifica la interfaz física. La propiedad física puede ser un VNIC.


En el ejemplo siguiente para una zona de IP compartida, se añade la dirección IP 192.168.0.1 a la zona. Se utiliza una tarjeta hme0 para la interfaz física. Para determinar la interfaz física que se va a utilizar, escriba ifconfig -a en el sistema. Cada línea de la salida, a excepción de las líneas de controladores de bucle, empieza por el nombre de una tarjeta instalada en el sistema. Las líneas que contienen LOOPBACK en las descripciones no se aplican a las tarjetas.


zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> end

En el ejemplo siguiente para una zona de IP exclusiva, se utiliza un vínculo bge32001 para la interfaz física. Para determinar los vínculos de datos que están disponibles, utilice el comando dladm show-link. El vínculo de datos debe ser GLDv3 para utilizar con zonas de IP exclusiva, y los vínculos de datos que no sean GLDv3 aparecen como type: legacy en la salida de dladm show-link. También debe especificarse ip-type=exclusive.


zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=bge32001
zonecfg:my-zone:net> end
device

match

En el ejemplo siguiente, se incluye un dispositivo /dev/pts en una zona.


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

name, value

Solaris 10 8/07: Los nuevos controles de recursos de esta versión son zone.max-locked-memory, zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids, zone.max-shm-memory y zone.max-swap.

Hay disponibles los siguientes controles de recursos de la zona:

  • zone.cpu-shares (recomendado: cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (se recomienda: max-lwps)

  • zone.max-msg-ids (se recomienda: max-msg-ids )

  • zone.max-sem-ids (se recomienda: max-sem-ids )

  • zone.max-shm-ids (se recomienda: max-shm-ids )

  • zone.max-shm-memory (se recomienda: max-shm-memory )

  • zone.max-swap

El método mas sencillo y recomendable para configurar un control de recurso de zona es utilizar el nombre de propiedad en lugar del recurso rctl, tal como se muestra en Cómo configurar la zona. Si se configuran las entradas de control de recurso de zona utilizando addrctl, el formato es diferente que el de las entradas de control de recurso de la base de datos project. En una configuración de zona, el tipo de recurso rctl se compone de tres pares de nombre y valor. Los nombres son priv, limit y action. Cada uno de los nombres adquiere un valor simple.


zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.cpu-shares
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)zonecfg:my-zone:rctl> end

zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.max-lwps
zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:my-zone:rctl> end

Para obtener información sobre los atributos y controles de recursos, consulte el Capítulo 6Controles de recursos (descripción general) y Controles de recursos utilizados en zonas no globales.

attr

name, type, value

En el ejemplo siguiente, se añade un comentario sobre una zona.


zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="Production zone"
zonecfg:my-zone:attr> end

Puede utilizar el subcomando export para imprimir una configuración de zona en la salida estándar. La configuración se guarda en un formato que se puede utilizar en un archivo de comandos.