Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Administración de Oracle Solaris 11.1: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos Oracle Solaris 11.1 Information Library (Español) |
Parte I Gestión de recursos de Oracle Solaris
1. Introducción a la gestión de recursos
2. Proyectos y tareas (información general)
3. Administración de proyectos y tareas
4. Contabilidad ampliada (descripción general)
5. Administración de contabilidad ampliada (tareas)
6. Controles de recursos (descripción general)
7. Administración de controles de recursos (tareas)
8. Programador de reparto justo (descripción general)
9. Administración del programador de reparto justo (tareas)
10. Control de memoria física utilizando el daemon de límite de recursos (descripción general)
11. Administración del daemon de límite de recursos (tareas)
12. Agrupaciones de recursos (descripción general)
13. Creación y administración de agrupaciones de recursos (tareas)
14. Ejemplo de configuración de administración de recursos
Parte II Zonas de Oracle Solaris
15. Introducción a Zonas de Oracle Solaris
16. Configuración de zonas no globales (descripción general)
17. Planificación y configuración de zonas no globales (tareas)
Planificación y configuración de zonas no globales (mapa de tareas)
Evaluación de la configuración del sistema actual
Requisitos de espacio en el disco
Restricción del tamaño de zona
Cómo determinar el nombre de host de la zona y los requisitos de red
Dirección de red de zona de IP compartida
Dirección de red de zona de IP exclusiva
Configuración del sistema de archivos
Creación, revisión y supresión de configuraciones de zonas no globales (mapa de tareas)
Configuración, verificación y confirmación de una zona
Uso del comando zonecfg para modificar una configuración de zona
Cómo modificar un tipo de recurso en una configuración de zona
Cómo borrar una propiedad de una configuración de zona
Cómo cambiar el nombre de una zona
Cómo agregar un dispositivo dedicado a una zona
Cómo configurar zone.cpu-shares en la zona global
Uso del comando zonecfg para deshacer o eliminar una configuración de zona
Cómo deshacer una configuración de zona
Cómo suprimir una configuración de zona
19. Cómo instalar, iniciar, cerrar, detener, desinstalar y clonar zonas no globales (tareas)
20. Inicio de sesión en zonas no globales (descripción general)
21. Registro en zonas no globales (tareas)
22. Acerca de migraciones de zonas y la herramienta zonep2vchk
23. Migración de sistemas Oracle Solaris y migración de zonas no globales (tareas)
25. Administración de zonas de Oracle Solaris (descripción general)
26. Administración de zonas de Oracle Solaris (tareas)
27. Configuración y administración de zonas inmutables
28. Resolución de problemas relativos a las zonas de Oracle Solaris
Parte III Zonas de Oracle Solaris 10
29. Introducción a las zonas de Oracle Solaris 10
30. Evaluación de un sistema Oracle Solaris 10 y creación de un archivo
32. Configuración de la zona con marca solaris10
33. Instalación de zona con marca solaris10
34. Inicio de una zona, inicio de sesión y migración de zona
El comando zonecfg descrito en la página del comando man zonecfg(1M) se utiliza para realizar las siguientes acciones.
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 gestió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 de comandos para configurar varias zonas se facilita una secuencia de comandos 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.
Tenga en cuenta que los únicos elementos necesarios para crear una zona no global 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.
Debe ser el administrador global o un usuario con las autorizaciones adecuadas en la zona global para llevar a cabo este procedimiento.
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.
Este procedimiento utiliza la configuración predeterminada.
zonecfg:my-zone> create create: Using system default template 'SYSdefault'
zonecfg:my-zone> set zonepath=/zones/my-zone
La zona debe residir en un conjunto de datos ZFS. El conjunto de datos ZFS se creará automáticamente cuando la zona se instale o se conecte. Si un conjunto de datos ZFS no puede ser creado, la zona no se instalará ni se conectará. Tenga en cuenta que si el directorio principal de la ruta de la zona existe, debe ser el punto de montaje de un conjunto de datos montado.
Si se configura como true, la zona se iniciará automáticamente al iniciar la zona global. El valor predeterminado es false. En el caso de las zonas que se inician automáticamente, también debe activarse el servicio de zonas svc:/system/zones:default. Este servicio se encuentra activado de manera predeterminada.
zonecfg:my-zone> set autoboot=true
zonecfg:my-zone> set bootargs="-m verbose"
zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
zonecfg:my-zone:dedicated-cpu> set importance=10
El valor predeterminado es 1.
zonecfg:my-zone:dedicated-cpu> end
zonecfg:my-zone> set limitpriv="default,sys_time"
Esta línea agrega la posibilidad de configurar el reloj del sistema con el conjunto de privilegios predeterminado.
zonecfg:my-zone> set scheduling-class=FSS
zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=1g
zonecfg:my-zone:capped-memory> set swap=2g
zonecfg:my-zone:capped-memory> set locked=500m
zonecfg:my-zone:capped-memory> end
Nota - Para utilizar el recurso capped-memory, el paquete resource-cap debe estar instalado en la zona global.
zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/usr/local
zonecfg:my-zone:fs> set special=/opt/local
En la zona no global, el sistema de archivos /usr/local podrá leerse y escribirse.
zonecfg:my-zone:fs> set type=lofs
El tipo indica el modo en que interactúa el núcleo con el sistema de archivos.
zonecfg:my-zone:fs> end
Este paso puede realizarse más de una vez para agregar más de un sistema de archivos.
zonecfg:my-zone> set hostid=80f0c086
zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
El administrador de zona puede crear y destruir instantáneas, sistemas de archivos y volúmenes dentro del conjunto de datos. El administrador de zona puede modificar las propiedades del conjunto de datos, y controlar la compresión y el cifrado.
zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add anet
zonecfg:my-zone:anet> set lower-link=auto
El daemon zoneadmd seleccionará de forma automática el enlace sobre el que se creará la VNIC cada vez se inicie la zona. Los enlaces IPoIB se omiten al seleccionar el enlace de datos.
zonecfg:my-zone:anet> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/sound/*
zonecfg:my-zone:device> end
Este paso puede realizarse más de una vez para agregar más de un dispositivo.
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=infiniband/ofs/*
zonecfg:my-zone:device> end
Las herramientas de diagnóstico IB no se admiten en las zonas no globales. Los dispositivos agregados se pueden utilizar con componentes de OFUV, como verbos y rdma_cm.
Este paso puede realizarse más de una vez para agregar más de un dispositivo.
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=infiniband/hca/*
zonecfg:my-zone:device> end
Las herramientas de diagnóstico IB no se admiten en las zonas no globales. Los dispositivos agregados se pueden utilizar con componentes de OFUV, como verbos y rdma_cm.
Este paso puede realizarse más de una vez para agregar más de un dispositivo.
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
zonecfg:my-zone:device> set allow-partition=true
zonecfg:my-zone:device> end
Este paso puede realizarse más de una vez para agregar más de un dispositivo.
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
zonecfg:my-zone:device> set allow-raw-io=true
zonecfg:my-zone:device> end
Precaución - Si permite que una zona realice operaciones uscsi en un disco, también permitirá a la zona acceder a cualquier otro dispositivo conectado al mismo bus que el disco. Por lo tanto, la activación de esta capacidad podría crear un riesgo de seguridad y permitir ataques contra la zona global u otras zonas que utilizan recursos en el mismo bus. Consulte uscsi(7I). |
Este paso puede realizarse más de una vez para agregar más de un dispositivo.
zonecfg:my-zone> set max-sem-ids=10485200
Este paso puede realizarse más de una vez para agregar más de un control de recurso.
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="This is my work zone."
zonecfg:my-zone:attr> end
zonecfg:my-zone> verify
zonecfg:my-zone> commit
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.
Consejo - 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=/zones/my-zone"
Para zonas de IP compartida, una dirección estática sólo se puede asignar en un recurso zonecfg net. No puede ser proporcionada en la línea de comandos.
Consulte Instalación e inicio de zonas para instalar la configuración de zona confirmada.
Puede utilizar esta secuencia de comandos para configurar e iniciar varias zonas en el sistema. Las zonas creadas son zonas de IP exclusiva predeterminadas con un recurso anet.
Antes de ejecutar la secuencia de comandos, cree un perfil de configuración mediante la ejecución de la herramienta SCI:
global# sysconfig create-profile -o sc_config.xml
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
El nombre de ruta completo del perfil de configuración recién creado
Debe ser el administrador global con privilegios root en la zona global o un usuario con el perfil de derechos correcto para ejecutar la secuencia de comandos.
#!/bin/ksh # # Copyright 2006-2012 Oracle Corporation. All rights reserved. # Use is subject to license terms. # # # This script serves as an example of how to instantiate several zones # with no administrative interaction. Run the script with no arguments to # get a usage message. The general flow of the script is: # # 1) Parse and check command line arguments # 2) Configure all zones that are not yet configured # 3) Install the first zone, if needed # 4) Create the remaining zones as clones of the first zone # # Upon successful completion, the requested number of zones will be # been installed and booted. # export PATH=/usr/bin:/usr/sbin me=$(basename $0) function fail_usage { print -u2 "Usage: $me <#-of-zones> <zonename-prefix> <basedir> <sysconfig.xml> Generate sysconfig.xml with: sysconfig create-profile -o sysconfig.xml When running sysconfig, choose \"Automatically\" or \"None\" for network configuration. The value entered for \"Computer Name\" will ignored: each zone's nodename will be set to match the zone name." exit 2 } function log { print "$(date +%T) $@" } function error { print -u2 "$me: ERROR: $@" } function get_zone_state { zoneadm -z "$1" list -p 2>/dev/null | cut -d: -f3 } # # Parse and check arguments # (( $# != 4 )) && fail_usage # If $1 is not a number nzones will be set to 0. integer nzones=$1 if (( nzones < 1 )); then error "Invalid number of zones \"$1\"" fail_usage fi # Be sure that zonename prefix is an allowable zone name and not too long. prefix=$2 if [[ $prefix != @([a-zA-Z0-9])*([-_.a-zA-Z0-9]) || ${#prefix} > 62 ]]; then error "Invalid zonename prefix" fail_usage fi # Be sure that basedir is an absolute path. zoneadm will create the directory # if needed. dir=$3 if [[ $dir != /* ]]; then error "Invalid basedir" fail_usage fi # Be sure the sysconfig profile is readable and ends in .xml sysconfig=$4 if [[ ! -f $sysconfig || ! -r $sysconfig || $sysconfig != *.xml ]]; then error "sysconfig profile missing, unreadable, or not *.xml" fail_usage fi # # Create a temporary directory for all temp files # export TMPDIR=$(mktemp -d /tmp/$me.XXXXXX) if [[ -z $TMPDIR ]]; then error "Could not create temporary directory" exit 1 fi trap 'rm -rf $TMPDIR' EXIT # # Configure all of the zones # for (( i=1; i <= nzones; i++ )); do zone=$prefix$i state=$(get_zone_state $zone) if [[ -n $state ]]; then log "Skipping configuration of $zone: already $state" continue fi log "Configuring $zone" zonecfg -z "$zone" "create; set zonepath=$dir/$zone" if (( $? != 0 )); then error "Configuration of $zone failed" exit 1 fi done # # Install the first zone, then boot it for long enough for SMF to be # initialized. This will make it so that the first boot of all the clones # goes much more quickly. # zone=${prefix}1 state=$(get_zone_state $zone) if [[ $state == configured ]]; then log "Installing $zone" # Customize the nodename in the sysconfig profile z_sysconfig=$TMPDIR/$zone.xml search="<propval type=\"astring\" name=\"nodename\" value=\".*\"/>" replace="<propval type=\"astring\" name=\"nodename\" value=\"$zone\"/>" sed "s|$search|$replace|" $sysconfig > $z_sysconfig zoneadm -z $zone install -c $z_sysconfig if (( $? != 0 )); then error "Installation of $zone failed." rm -f $z_sysconfig exit 1 fi rm -f $z_sysconfig elif [[ $state != installed ]]; then error "Zone $zone is currently in the $state state." error "It must be in the installed state to be cloned." exit 1 fi # Boot the zone no further than single-user. All we really want is for # svc:/system/manifest-import:default to complete. log "Booting $zone for SMF manifest import" zoneadm -z $zone boot -s if (( $? != 0 )); then error "Failed to boot zone $zone" exit 1 fi # This zlogin will return when manifest-import completes log "Waiting for SMF manifest import in $zone to complete" state= while [[ $state != online ]]; do printf "." sleep 1 state=$(zlogin $zone svcs -Ho state \ svc:/system/manifest-import:default 2>/dev/null) done printf "\n" log "Halting $zone" zoneadm -z $zone halt if (( $? != 0 )); then error "failed to halt $zone" exit 1 fi firstzone=$zone # # Clone and boot the remaining zones # for (( i=2; i <= $nzones; i++ )); do zone=$prefix$i # Be sure that it needs to be installed state=$(get_zone_state $zone) if [[ $state != configured ]]; then log "Skipping installation of $zone: current state is $state." continue fi log "Cloning $zone from $firstzone" # Customize the nodename in the sysconfig profile z_sysconfig=$TMPDIR/$zone.xml search='<propval type="astring" name="nodename" value=".*"/>' replace='<propval type="astring" name="nodename" value="'$zone'"/>' sed "s|$search|$replace|" $sysconfig > $z_sysconfig # Clone the zone zoneadm -z $zone clone -c $z_sysconfig $firstzone if (( $? != 0 )); then error "Clone of $firstzone to $zone failed" rm -f $z_sysconfig exit 1 fi rm -f $z_sysconfig # Boot the zone log "Booting $zone" zoneadm -z $zone boot if (( $? != 0 )); then error "Boot of $zone failed" exit 1 fi done # # Boot the first zone now that clones are done # log "Booting $firstzone" zoneadm -z $firstzone boot if (( $? != 0 )); then error "Boot of $firstzone failed" exit 1 fi log "Completed in $SECONDS seconds" exit 0
Salida de secuencia de comandos:
$ ./buildzones Usage: buildzones <#-of-zones> <zonename-prefix> <basedir> <sysconfig.xml> Generate sysconfig.xml with: sysconfig create-profile -o sysconfig.xml When running sysconfig, choose "Automatically" or "None" for network configuration. The value entered for "Computer Name" will be ignored: each zone's nodename will be set to match the zone name. # ~user/scripts/buildzones 3 bz /tank/bz /var/tmp/sysconfig.xml 12:54:04 Configuring bz1 12:54:05 Configuring bz2 12:54:05 Configuring bz3 12:54:05 Installing bz1 A ZFS file system has been created for this zone. Progress being logged to /var/log/zones/zoneadm.20110816T195407Z.bz1.install Image: Preparing at /tank/bz/bz1/root. Install Log: /system/volatile/install.24416/install_log AI Manifest: /usr/share/auto_install/manifest/zone_default.xml SC Profile: /tmp/buildzones.F4ay4T/bz1.xml Zonename: bz1 Installation: Starting ....
Debe ser el administrador global de la zona global o un usuario con el perfil de derechos correcto para llevar a cabo este procedimiento.
global# zonecfg -z zonename info