Este capítulo proporciona una introducción a la configuración de zonas no globales.
En este capítulo, se describen los siguientes temas:
Cuando haya adquirido los conocimientos relativos a la configuración de zonas, vaya al Capítulo 18Planificación y configuración de zonas no globales (tareas) para configurar las zonas no globales para la instalación en su sistema.
Para obtener información sobre la configuración de la zona con marca lx, consulte el Capítulo 32Planificación de la configuración de zonas con marca lx (descripción general) y el Capítulo 33Configuración de las zonas con marca lx (tareas).
Solaris 10 6/06: se ha añadido compatibilidad con el sistema de archivos ZFS, incluida la posibilidad de añadir un recurso de conjunto de datos en una zona no global nativa. Consulte Propiedades del tipo de recurso para obtener más información.
Solaris 10 11/06: Se ha añadido compatibilidad con los privilegios configurables. Consulte Solaris 10 11/06 y posteriores: privilegios configurables .
Solaris 10 8/07: Se ha añadido compatibilidad con las siguientes funciones al comando zonecfg:
Mejor integración de las zonas y funciones de administración de recursos. El comando zonecfg ahora puede utilizarse para configurar agrupaciones temporales, límites de memoria, la clase de planificación predeterminada de la zona y los alias de control de recursos. Ya no es necesario realizar los pasos manualmente para configurar la administración de recursos. Se han añadido nuevos controles de recursos:
zone.max-locked-memory
zone.max-msg-ids
zone.max-sem-ids
zone.max-shm-ids
zone.max-shm-memory
zone.max-swap
Posibilidad de utilizar el comando zonecfg en la zona global.
Posibilidad de especificar un tipo de IP para una zona. Los dos tipos de IP disponibles para las zonas no globales son direcciones IP compartidas y direcciones IP exclusivas.
Posibilidad de utilizar DTrace en una zona añadiendo los privilegios necesarios mediante la propiedad limitpriv.
Posibilidad de utilizar argumentos de inicio en una zona a través de la propiedad bootargs.
Solaris 10 10/08: la propiedad defrouter se ha añadido al recurso net, en la utilidad zonecfg para zonas no globales de dirección IP compartida. Mediante esta propiedad puede definir el enrutador predeterminado para la interfaz de red.
Para ver una lista completa de las nuevas funciones de Solaris 10 y una descripción de las versiones de Solaris, consulte Novedades de Oracle Solaris 10 9/10.
Una zona que incluye funciones de administración de recursos se denomina contenedor. Los recursos que se pueden controlar en un contenedor incluyen:
Agrupaciones de recursos o CPU asignadas, que se utilizan para particionar los recursos del equipo.
Controles de recursos, que proporcionan un mecanismo para la limitación de los recursos del sistema.
La clase de planificación, que permite controlar la asignación de los recursos de la CPU disponibles entre las zonas a través de los recursos compartidos relativos. Puede expresar la importancia de las cargas de trabajo en una zona concreta mediante el número de recursos compartidos de la CPU que asigna a la zona.
Antes de instalar una zona no global y utilizarla en el sistema, es necesario que la zona esté configurada.
El comando zonecfg se utiliza para crear la configuración y determinar si las propiedades y los recursos especificados son válidos en un sistema hipotético. La comprobación realizada por zonecfg para una configuración concreta verifica lo siguiente:
Asegura que se especifica una ruta de zona
Asegura que se especifican todas las propiedades necesarias para cada recurso
Para obtener más información sobre el comando zonecfg, consulte la página del comando man zonecfg(1M).
Esta sección describe los componentes de zona obligatorios y opcionales que pueden configurarse. En Datos de configuración de zonas se proporciona información adicional.
Debe elegir un nombre y una ruta para la zona.
La configuración de la propiedad autoboot determina si la zona se inicia automáticamente al iniciar la zona global. También debe habilitarse el servicio de zonas, svc:/system/zones:default.
Si ha configurado agrupaciones de recursos en el sistema tal como se describe en el Capítulo 13Creación y administración de agrupaciones de recursos (tareas), puede utilizar la propiedad pool para asociar la zona con una de las agrupaciones de recursos al configurar la zona.
A partir de Solaris 10 8/07, si no tiene configuradas las agrupaciones de recursos, puede especificar que un subconjunto de los procesadores del sistema se dedique a una zona no global mientras se ejecuta utilizando el recurso dedicated-cpu. El sistema creará dinámicamente una agrupación temporal para utilizar mientras se ejecuta la zona. Con la especificación a través de zonecfg, la configuración de la agrupación se propaga durante las migraciones.
Una configuración de zona que utiliza un conjunto de agrupaciones persistentes mediante la propiedad pool es incompatible con una agrupación temporal configurada mediante el recurso dedicated-cpu. Puede definir sólo una de estas dos propiedades.
El recurso dedicated-cpu especifica que un subconjunto de los procesadores del sistema debe dedicarse a una zona no global mientras se ejecuta. Cuando se inicia la zona, el sistema crea dinámicamente una agrupación temporal para utilizar mientras se ejecuta la zona.
Con la especificación en zonecfg, la configuración de la agrupación se propaga durante las migraciones.
El recurso dedicated-cpu establece los límites de ncpus y, opcionalmente, importance.
Especifique el número de CPU o un intervalo, por ejemplo 2–4 CPU. Si especifica un intervalo porque desea que la agrupación de recursos tenga un comportamiento dinámico, haga también lo siguiente:
Configure la propiedad importance.
Active el servicio poold. Para obtener instrucciones, consulte Solaris 10 11/06 y posteriores: Cómo activar el servicio de agrupaciones de recursos dinámicos utilizando svcadm.
Si utiliza un intervalo de CPU para conseguir un comportamiento dinámico, defina también la propiedad importance. La propiedad importance, que es opcional, define la importancia relativa de la agrupación. Esta propiedad sólo se necesita cuando especifica un intervalo para ncpus y está utilizando agrupaciones de recursos dinámicos administradas por poold. Si poold no está en ejecución, se omite importance. Si poold está en ejecución y no se configura importance, importance tendrá el valor de 1 de forma predeterminada. Para obtener más información, consulte Restricción de la propiedad pool.importance.
Los recursos capped-cpu y dedicated-cpu son incompatibles. Los recursos cpu-shares rctl y dedicated-cpu son incompatibles.
El recurso capped-cpu proporciona un límite de grano fino absoluto de la cantidad de recursos de CPU que un proyecto o una zona pueden consumir. Al utilizarse con conjuntos de procesadores, los recursos capped-cpu limitan el uso de las CPU en un conjunto. El recurso capped-cpu tiene una sola propiedad ncpus que es un número positivo con dos decimales. Esta propiedad corresponde a unidades de CPU. El recurso no acepta un intervalo. El recurso acepta un número decimal. Cuando se especifica ncpus, un valor de 1 significa el 100 por ciento de una CPU. Un valor de 1,25 significa el 125 por ciento, ya que el 100 por ciento corresponde a toda una CPU del sistema.
Los recursos capped-cpu y dedicated-cpu son incompatibles.
Puede utilizar el programador de reparto justo (FSS) para controlar la asignación de los recursos de CPU disponibles entre las zonas, basándose en la importancia de las cargas de trabajo en la zona. Dicha importancia se expresa con el número de recursos compartidos de la CPU que asigna a cada zona. Aunque no utilice FSS para administrar la asignación de recursos de la CPU entre las zonas, puede configurar la clase de planificación de la zona para que utilice FSS y pueda definir los recursos compartidos de los proyectos en la zona.
Cuando define la propiedad cpu-shares de forma explícita, el programador de reparto justo (FSS) se utilizará como clase de planificación para dicha zona. Sin embargo, se recomienda utilizar FSS como la clase de planificación predeterminada con el comando dispadmin. De este modo, todas las zonas se beneficiarán de un reparto justo de los recursos de la CPU del sistema. Si no se configura cpu-shares para una zona, la zona utilizará la clase de planificación predeterminada del sistema. Las acciones siguientes definen la clase de planificación para una zona:
En Solaris 10 8/07, puede utilizar la propiedad scheduling-class en zonecfg para definir la clase de planificación para la zona.
Es posible configurar la clase de planificación para una zona mediante la utilidad de agrupaciones de recursos. Si la zona se asocia con una agrupación que tiene la propiedad pool.scheduler configurada como una clase de planificación válida, de modo predeterminado los procesos que se ejecutan en la zona se ejecutan en dicha clase. Consulte Introducción a las agrupaciones de recursos y Cómo asociar una agrupación con una clase de planificación.
Si el rctl cpu-shares está configurado y FSS no se ha configurado como clase de planificación para la zona mediante otra acción, zoneadmddefine la clase de planificación como FSS cuando se inicia la zona.
Si no se configura la clase de planificación mediante otra acción, la zona hereda la clase de planificación predeterminada del sistema.
Puede utilizar el comando priocntl descrito en la página del comando man priocntl(1) para mover los procesos en ejecución a una clase de planificación diferente sin cambiar la clase de planificación predeterminada ni reiniciar.
El recurso capped-memory establece los límites para la memoria physical, swap, y locked. Cada límite es opcional, pero debe configurarse como mínimo uno.
Determine los valores para este recurso si tiene previsto limitar la memoria para la zona utilizando rcapd de la zona global. La propiedad physical del recurso capped-memory la utiliza rcapd como valor max-rss para la zona.
La propiedad swap del recurso capped-memory es el modo preferido de configurar el control de recurso zone.max-swap.
La propiedad locked del recurso capped-memory es el modo recomendado para configurar el control de recurso zone.max-locked-memory.
Normalmente, las aplicaciones no bloquean cantidades importantes de memoria, pero, si lo desea, puede establecer memoria bloqueada si se sabe que las aplicaciones de la zona bloquean la memoria. Si le preocupa la confianza en una zona, también puede establecer un límite de memoria bloqueada de hasta un 10% de la memoria física del sistema o un 10% del límite de la memoria física de la zona.
Para más información, consulte el Capítulo 10Control de memoria física utilizando el daemon de límite de recursos (descripción general), Capítulo 11Administración del daemon de límite de recursos (tareas) y Cómo configurar la zona. Para definir temporalmente un límite de recursos para una zona, consulte Cómo especificar un límite de recursos temporal para una zona .
Las interfaces de red de zona configuradas por el comando zonecfg para proporcionar conectividad de red se configurarán automáticamente y se colocarán en la zona cuando se inicie.
La capa de protocolo de Internet (IP) acepta y entrega paquetes para la red. Esta capa incluye rutas IP, el protocolo de resolución de dirección (ARP), la arquitectura de seguridad IP (IPsec) y el filtro IP.
Hay dos tipos de IP disponibles para las zonas no globales: direcciones IP compartidas y direcciones IP exclusivas. La zona de IP compartida comparte una interfaz de red y la zona de IP exclusiva debe tener una interfaz de red dedicada.
Para obtener información sobre las funciones IP de cada tipo, consulte Redes en zonas no globales de IP compartida y Solaris 10 8/07: redes en zonas no globales de IP exclusiva.
La zona de IP compartida es el tipo predeterminado. Debe tener una o más direcciones IP dedicadas. Una zona de IP compartida comparte la configuración de capa de la IP y el estado con la zona global. La zona debe utilizar la instancia de IP compartida si se cumplen las dos condiciones siguientes:
La zona se va a conectar al mismo vínculo de datos, es decir, estará en la misma subred o las mismas subredes de IP que la zona global.
No desea utilizar las otras funciones que proporciona la zona de IP exclusiva.
A las zonas de IP compartida se asignan una o más direcciones IP utilizando el comando zonecfg. Los nombres del vínculo de datos también deben configurarse en la zona global.
Estas direcciones se asocian con las interfaces de red lógicas. El comando ifconfig puede utilizarse desde la zona global para añadir o eliminar interfaces lógicas en una zona en ejecución. Para más información, consulte Interfaces de red de IP compartida.
Las zonas de IP exclusiva cuentan con todas las funciones del nivel de IP.
Una zona de IP exclusiva tiene su propio estado relacionado con la IP.
Esto incluye la posibilidad de utilizar las siguientes funciones en una zona de IP exclusiva:
Configuración automática de direcciones sin estado DHCPv4 y IPv6
Filtro IP, incluida la función de traducción de direcciones de red (NAT)
Comando ndd para configurar TCP/UDP/SCTP y controles de nivel de IP/ARP
Seguridad IP (IPsec) e intercambio de claves de Internet (IKE), que automatiza la provisión de materiales de claves autenticado para la asociación de seguridad de IPsec
A una zona de IP exclusiva se le asigna su propio conjunto de vínculos de datos utilizando el comando zonecfg. A la zona se le asigna un nombre de vínculo de datos como xge0, e1000g1 o bge3200, utilizando la propiedad physical del recurso net. La propiedad address del recurso net no está configurada.
Tenga en cuenta que el vínculo de datos asignado permite utilizar el comando snoop.
El comando dladm puede utilizarse con el subcomando show-linkprop para mostrar la asignación de vínculos de datos a las zonas de IP exclusiva en ejecución. El comando dladm puede utilizarse con el subcomando set-linkproppara asignar vínculos de datos adicionales a las zonas en ejecución. Consulte Solaris 10 8/07: administración de vínculos de datos en zonas no globales de IP exclusiva para ver ejemplos de uso.
En una zona de IP exclusiva en ejecución, el comando ifconfig puede utilizarse para configurar la dirección IP, que incluye la posibilidad de añadir o eliminar interfaces lógicas. La configuración IP de una zona puede configurarse del mismo modo que la zona global, utilizando sysidtools tal como se describe en sysidcfg(4).
La configuración IP de una zona de IP exclusiva sólo puede verse desde la zona global utilizando el comando zlogin. A continuación se muestra un ejemplo.
global# zlogin zone1 ifconfig -a |
En una zona de IP compartida, las aplicaciones de la zona, incluido el superusuario, no pueden enviar paquetes con direcciones IP de origen que no sean las asignadas a la zona con la utilidad zonecfg. Este tipo de zona no tiene acceso para enviar y recibir paquetes de vínculos de datos arbitrarios (capa 2).
En una zona de IP exclusiva, zonecfg concede el vínculo de datos completo especificado a la zona. Como resultado, el superusuario de una zona de IP exclusiva puede enviar paquetes spoofed en uno de esos vínculos de datos, al igual que puede hacerse en la zona global.
Las zonas de IP compartida siempre comparten la capa IP con la zona global, y las zonas de IP exclusiva siempre tienen su propia instancia de la capa IP. Pueden utilizarse tanto zonas de IP compartida como zonas de IP exclusiva en el mismo equipo.
Generalmente, los sistemas de archivos montados en una zona incluyen:
El conjunto de sistemas de archivos montados cuando se inicia la plataforma virtual
El conjunto de sistemas de archivos montados desde el entorno de aplicación
Puede incluir, por ejemplo, los siguientes sistemas de archivos:
Sistemas de archivos especificados en el archivo /etc/vfstab de una zona
Montajes activados por AutoFS y AutoFS
Montajes llevados a cabo por un administrador de zona de forma explícita
Los montajes llevados a cabo desde el entorno de aplicación tienen determinadas limitaciones. Estas limitaciones evitan que el administrador de zona deniegue el servicio al resto del sistema, o que tenga repercusiones negativas en otras zonas.
Existen limitaciones de seguridad asociadas con el montaje de determinados sistemas de archivos dentro de una zona. Otros sistemas de archivos muestran un comportamiento especial cuando se montan en una zona. Consulte Sistemas de archivos y zonas no globales para obtener más información.
El comando zonecfg utiliza un sistema de concordancia de reglas para especificar los dispositivos que deben aparecer en una zona específica. Los dispositivos que concuerdan con una de las reglas se incluyen en el sistema de archivos /dev de la zona. Para obtener más información, consulte Cómo configurar la zona.
Puede establecer una propiedad hostid para la zona no global que sea diferente del hostid de la zona global. Esto se realizaría en el caso de un equipo físico consolidado en una zona utilizando la función de físico a virtual. Las aplicaciones que estén actualmente en el interior la zona podrían depender del hostid original, y es posible que no se pudiera actualizar la configuración de la aplicación. Consulte Tipos de propiedades y recursos para obtener más información.
El administrador global puede establecer controles de recursos de zonas con privilegios para una zona. Los controles de recursos de la zona limitan el uso total de los recursos de todas las entidades de procesos de una zona.
Estos límites se especifican tanto para las zonas globales como para las no globales utilizando el comando zonecfg. Consulte Cómo configurar la zona.
A partir de Solaris 10 8/07, el método recomendado y más sencillo para configurar un control de recursos de zona es utilizar el nombre de propiedad en lugar del recurso rctl.
Solaris 10 5/08: El control de recurso zone.cpu-cap establece un límite absoluto en la cantidad de recursos de CPU que una zona puede consumir. Un valor de 100 significa el 100 por ciento de una CPU como opción de project.cpu-cap. Un valor de 125 representa el 125 por ciento, ya que el 100 por ciento corresponde a una CPU completa del sistema al utilizar el recurso cpu-cap.
Al establecer el recurso capped-cpu, se puede establecer un número decimal para la unidad. El valor está correlacionado con el control de recurso zone.capped-cpu , pero la configuración se reduce a 100. Una configuración de 1 es equivalente a una configuración de 100 para el control de recursos.
El control de recurso zone.cpu-shares establece un límite para el número de recursos compartidos de la CPU del programador de reparto justo (FSS) para una zona. Los recursos compartidos de la CPU se asignan en primer lugar a la zona, y luego se subdividen entre los proyectos de la zona tal como se especifica en las entradas project.cpu-shares. Para obtener más información, consulte Uso del programador de reparto justo en un sistema Solaris con zonas instaladas. El nombre de propiedad global para este control es cpu-shares.
El control de recurso zone.max-locked-memory limita la cantidad de memoria física bloqueada disponible para una zona. La asignación del recurso de memoria bloqueado para los proyectos de la zona se puede realizar con el control de recurso project.max-locked-memory. Consulte la Tabla 6–1 para obtener más información.
El control de recurso zone.max-lwps mejora el aislamiento del recurso al evitar que demasiados procesos ligeros (LWP) de la zona afecten a otras zonas. La asignación del recurso LWP para los proyectos de la zona se puede realizar con el control de recurso project.max-lwps. Consulte la Tabla 6–1 para obtener más información. El nombre de propiedad global de este control es max-lwps.
Los controles de recurso zone.max-msg-ids, zone.max-sem-ids, zone.max-shm-ids y zone.max-shm-memory se utilizan para limitar los recursos de System V que utilizan todos los procesos de una zona. La asignación de los recursos de System V para los proyectos de la zona puede realizarse con las versiones de proyecto de estos controles de recurso. Los nombres de propiedad global de estos controles son max-msg-ids, max-sem-ids, max-shm-ids y max-shm-memory.
El control de recurso zone.max-swap limita el intercambio que consumen las asignaciones de espacio de dirección del proceso de usuario y los montajes tmpfs de una zona. La salida de prstat -Z muestra una columna de intercambio. El intercambio que se registra es el intercambio total que consumen los montajes tmpfs y los procesos de la zona. Este valor ayuda a supervisar el intercambio reservado por cada zona, que se puede utilizar para elegir la configuración adecuada de zone.max-swap.
Tabla 17–1 Controles de recursos de la zona
Nombre de control |
Nombre de propiedad global |
Descripción |
Unidad predeterminada |
Valor utilizado para |
---|---|---|---|---|
zone.cpu-cap |
Solaris 10 5/08: límite absoluto de la cantidad de recursos de CPU para esta zona. |
Cantidad (número de CPU), expresada como porcentaje Nota – Al establecer el recurso capped-cpu, se puede establecer un número decimal para la unidad. | ||
zone.cpu-shares |
cpu-shares |
Número de recursos compartidos de CPU del planificador de reparto justo (FSS) para esta zona. |
Cantidad (recursos compartidos) | |
zone.max-locked-memory |
Cantidad total de memoria física bloqueada disponible para una zona. Si se asigna priv_proc_lock_memory a una zona, procure configurar también este control de recurso para evitar que la zona bloquee toda la memoria. |
Tamaño (bytes) |
Propiedad locked de capped-memory. |
|
zone.max-lwps |
max-lwps |
Número máximo de procesos ligeros disponibles de forma simultánea para esta zona. |
Cantidad (LWP) | |
zone.max-msg-ids |
max-msg-ids |
Número máximo de ID de cola de mensajes permitidos para esta zona. |
Cantidad (ID de cola de mensajes) | |
zone.max-sem-ids |
max-sem-ids |
Número máximo de ID de semáforo permitidos para esta zona. |
Cantidad (ID de semáforo) | |
zone.max-shm-ids |
max-shm-ids |
Número máximo de ID de memoria compartida permitidos para esta zona. |
Cantidad (ID de memoria compartida) | |
zone.max-shm-memory |
max-shm-memory |
Cantidad total de memoria compartida System V permitida para esta zona. |
Tamaño (bytes) | |
zone.max-swap |
Cantidad total de intercambio que pueden consumir las asignaciones de espacio de direcciones del proceso del usuario y los montajes tmpfs para esta zona. |
Tamaño (bytes) |
Propiedad swap de capped-memory |
Estos límites pueden especificarse para ejecutar procesos utilizando el comando prctl. Se incluye un ejemplo en Cómo definir recursos compartidos de FSS en la zona global mediante el comando prctl. Los límites especificados a través del comando prctl no son persistentes. Los límites sólo surten efecto cuando se reinicia el sistema.
Cuando se inicia una zona, se incluye en la configuración un conjunto predeterminado de privilegios safe. Estos privilegios se consideran seguros porque evitan que un proceso con privilegios de la zona afecte a los procesos de otras zonas no globales en el sistema o en la zona global. Puede utilizar el comando zonecfg para:
Añadir al conjunto predeterminado de privilegios, teniendo en cuenta que esta clase de cambios puede permitir que los procesos de una zona afecten a los procesos de otras zonas al ser capaces de controlar un recurso global.
Eliminar del conjunto predeterminado de privilegios, teniendo en cuenta que esta clase de cambios puede impedir que algunos procesos funcionen correctamente si requieren la ejecución de dichos privilegios.
Existen unos cuantos privilegios que no se pueden eliminar del conjunto de privilegios predeterminado de la zona, y hay otros tantos que no se pueden añadir al conjunto en este momento.
Para más información, consulte Privilegios en una zona no global, Cómo configurar la zona y privileges(5).
Puede añadir un comentario para una zona utilizando el tipo de recurso attr. Para obtener más información, consulte Cómo configurar la zona.
El comando zonecfg, que se describe en la página del comando man zonecfg(1M), se utiliza para configurar una zona no global. En Solaris 10 8/07, este comando también puede utilizarse para especificar de forma persistente la configuración de la administración de recursos para la zona global.
El comando zonecfg se puede utilizar de modo interactivo, en el modo de línea de comandos o en el modo de archivo de comandos. Con este comando pueden realizarse las operaciones siguientes:
Crear o eliminar (destruir) una configuración de zona
Añadir recursos a una configuración específica
Definir las propiedades para los recursos añadidos a una configuración
Eliminar recursos de una configuración específica
Consultar o verificar una configuración
Confirmar una configuración
Restablecer una configuración anterior
Cambiar el nombre de una zona
Salir de una sesión de zonecfg
El indicador zonecfg tiene el siguiente formato:
zonecfg:zonename> |
Cuando configura un tipo de recurso específico, como un sistema de archivos, dicho tipo de recurso también se incluye en el indicador:
zonecfg:zonename:fs> |
Si desea más información, incluidos los procedimientos que muestran cómo utilizar los distintos componentes de zonecfg que se describen en este capítulo, consulte el Capítulo 18Planificación y configuración de zonas no globales (tareas).
El concepto de ámbito se utiliza para la interfaz de usuario. El ámbito puede ser global o específico del recurso. El ámbito predeterminado es global.
En el ámbito global, los subcomandos add y select se utilizan para seleccionar un recurso concreto. A continuación, el ámbito cambia al tipo de recurso.
En el caso del subcomando add, se utilizan los subcomandos end o cancel para completar la especificación del recurso.
En el caso del subcomando select, se utilizan los subcomandos end o cancel para completar la modificación del recurso.
El ámbito pasa a ser de nuevo global.
Determinados subcomandos, como add, remove y set, tienen semánticas diferentes para cada ámbito.
En el modo interactivo, se admiten los subcomandos siguientes. Para obtener información detallada sobre la semántica y las opciones que se utilizan con los subcomandos, consulte las opciones en la página del comando man zonecfg(1M. ) En el caso de los subcomandos que podrían ocasionar acciones destructivas o una pérdida de trabajo, el sistema solicita una confirmación del usuario antes de proceder. Puede utilizar la opción -F (forzar) para pasar por alto esta confirmación.
Imprime ayuda general o muestra ayuda sobre un recurso específico.
zonecfg:my-zone:inherit-pkg-dir> help |
Inicia una configuración interna de la memoria para la nueva zona especificada para una de estas finalidades:
Para aplicar la configuración predeterminada a una nueva configuración. Este método es el método predeterminado.
Con la opción -t plantilla, para crear una configuración idéntica a la plantilla especificada. Se cambia el nombre de zona del nombre de plantilla al nuevo nombre de zona.
Con la opción -F, para sobrescribir una configuración existente.
Con la opción -b, para crear una configuración vacía en la que no se ha establecido ningún parámetro.
Imprime la configuración en una salida estándar, o el archivo de salida especificado, con un formato que pueda utilizarse en una línea de comandos.
En el ámbito global, añade el tipo de recurso especificado a la configuración.
En el ámbito de recurso, añade una propiedad con un nombre y valor específicos.
Consulte Cómo configurar la zona y la página del comando man zonecfg(1M) para obtener más información.
Establece un nombre de propiedad determinado con un valor de propiedad específico. Observe que algunas propiedades, como zonepath, son globales, mientras que otras son específicas del recurso. De este modo, este comando se aplica tanto en los ámbitos global como del recurso.
Sólo se aplica en el entorno global. Seleccione el recurso del tipo específico que coincida con el criterio de par de valor de propiedad y nombre de propiedad para su modificación. El ámbito se cambia para ese tipo de recurso. Debe especificar un número suficiente de valores de nombre y valor para que el recurso se identifique de modo exclusivo.
Solaris 10 8/07: Borra el valor de los parámetros opcionales. Los parámetros obligatorios no se pueden borrar. Sin embargo, es posible cambiar algunos parámetros obligatorios asignándoles un nuevo valor.
En el ámbito global, elimina el tipo de recurso especificado. Debe especificar un número suficiente de pares de nombre y valor de propiedad para poder identificar de forma exclusiva el tipo de recurso. Si no se especifica ningún par de nombre y valor de propiedad, se eliminan todas las instancias. Si hay más de uno, se requiere una confirmación a menos que se utilice la opción -F.
En el ámbito del recurso, elimina el valor de propiedad y el nombre de la propiedad del recurso actual.
Sólo se aplica al ámbito del recurso. Finaliza la especificación del recurso.
A continuación, el comando zonecfg verifica que se especifique por completo el recurso actual.
Si se especifica por completo, se añade a la configuración de la memoria interna y el ámbito pasará a ser de nuevo global.
Si la especificación está incompleta, el sistema muestra un mensaje de error que describe lo que debe hacerse.
Sólo se aplica al ámbito del recurso. Finaliza la especificación del recurso y restablece el ámbito global. No se conserva ningún recurso especificado parcialmente.
Destruye la configuración especificada. Elimina la configuración de la memoria y del almacenamiento estable. Debe utilizar la opción -F (forzar) con delete.
Esta acción es instantánea. No se requiere ninguna confirmación, y una zona eliminada no puede recuperarse.
Muestra información sobre la configuración actual o las propiedades de recursos globales zonepath, autoboot y pool. Si se especifica un tipo de recurso, únicamente muestra información sobre los recursos de ese tipo. En el ámbito del recurso, este subcomando sólo se aplica al recurso que se está añadiendo o modificando.
Comprueba que la configuración actual sea correcta. Se asegura de que todos los recursos tengan especificadas todas las propiedades obligatorias.
Confirma la configuración actual de la memoria al almacenamiento estable. Hasta que se confirma la configuración de la memoria interna, los cambios se pueden eliminar con el subcomando revert. Una configuración debe confirmarse para que la pueda utilizar zoneadm. Esta operación se intenta realizar automáticamente al completar una sesión de zonecfg. Dado que sólo se puede confirmar una configuración correcta, la operación de confirmación lleva a cabo una verificación.
Devuelve la configuración al último cambio confirmado.
Cierra la sesión zonecfg. Puede utilizar la opción -F (forzar) con exit.
Se intenta automáticamente el comando commit si es preciso. También puede utilizarse un carácter EOF para cerrar la sesión.
En el modo de archivo de comando, la información se obtiene de un archivo. El subcomando export que se describe en Modo interactivo de zonecfg se utiliza para producir este archivo. La configuración puede imprimirse en una salida estándar, o bien puede utilizarse la opción -f para especificar un archivo de salida.
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.
Los tipos de propiedades y recursos se describen del modo siguiente:
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.
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.
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.
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Se puede establecer un hostid que sea diferente del hostid de la zona global.
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.
Los recursos también cuentan con propiedades que configurar. Las siguientes propiedades se asocian con los tipos de recursos mostrados.
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 |
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 |
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 |
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:
Especifica el punto de montaje para el sistema de archivos.
Especifica el nombre del dispositivo especial o el directorio a partir de la zona global que montar.
Especifica el dispositivo básico en el que ejecutar fsck antes de montar el sistema de archivos.
Especifica el tipo de sistema de archivos.
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.
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.
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 |
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 |
address, physicaldefrouter
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 |
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 |
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.
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.
Se incluye la biblioteca de edición de línea de comandos Tecla para utilizar con el comando zonecfg. La biblioteca proporciona un mecanismo para el historial de línea de comandos y la compatibilidad con la edición.
En las siguientes páginas del comando man se documenta la biblioteca de edición de línea de comandos Tecla:
enhance(1)
libtecla(3LIB )
ef_expand_file(3TECLA)
gl_get_line(3TECLA)
gl_io_mode(3TECLA)
pca_lookup_file(3TECLA)
tecla(5)