JavaScript is required to for searching.
Omitir V�nculos de navegaci�n
Salir de la Vista de impresi�n
Administración de Oracle Solaris: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos     Oracle Solaris 11 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

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

Espacio en el disco necesario

Restricción del tamaño de zona

Cómo determinar el nombre de host de la zona y los requisitos de red

Nombre de sistema de zona

Dirección de red de zona de IP compartida

Dirección de red de zona IPv4

Dirección de red de zona IPv6

Dirección de red de zona de IP exclusiva

Configuración del sistema de archivos

Creación, revisión y eliminación de configuraciones de zonas no globales (mapa de tareas)

Configuración, verificación y confirmación de una zona

Cómo configurar la zona

Dónde proseguir

Secuencia para configurar varias zonas

Cómo visualizar la configuración de una zona no global

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 añadir 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 eliminar una configuración de zona

18.  Acerca de la instalación, el cierre, la detención, la desinstalación y la clonación de zonas no globales (descripción general)

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)

24.  Acerca de la instalación automática y los paquetes de un sistema Oracle Solaris 11 con zonas instaladas

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

31.  (Opcional) Migración de una zona no global native de Oracle Solaris 10 a una zona de Oracle Solaris 10

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

Glosario

Índice

Configuración, verificación y confirmación de una zona

El comando zonecfg descrito en la página del comando man zonecfg(1M) se utiliza para realizar las siguientes acciones.

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.

Cómo configurar la zona

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.

  1. Conviértase en un administrador.
  2. 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.
  3. Cree la nueva configuración de zona.

    Este procedimiento utiliza la configuración predeterminada.

    zonecfg:my-zone> create
    create: Using system default template 'SYSdefault'
  4. Defina la ruta de zona /zones/my-zone en este procedimiento.
    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.

  5. Establezca el valor de inicio automático.

    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 habilitado de manera predeterminada.

    zonecfg:my-zone> set autoboot=true
  6. Defina los argumentos de inicio persistentes para una zona.
    zonecfg:my-zone> set bootargs="-m verbose"
  7. Dedique una CPU a esta zona.
    zonecfg:my-zone> add dedicated-cpu
    1. Defina el número de CPU.
      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
    2. (Opcional) Configure la importancia.
      zonecfg:my-zone:dedicated-cpu> set importance=10

      El valor predeterminado es 1.

    3. Finalice la especificación.
      zonecfg:my-zone:dedicated-cpu> end
  8. 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.

  9. Defina la clase de planificación como FSS.
    zonecfg:my-zone> set scheduling-class=FSS
  10. Añada un límite de memoria.
    zonecfg:my-zone> add capped-memory
    1. Defina el límite de memoria.
      zonecfg:my-zone:capped-memory> set physical=1g
    2. Defina el límite de memoria de intercambio.
      zonecfg:my-zone:capped-memory> set swap=2g
    3. Establezca el límite de memoria bloqueada.
      zonecfg:my-zone:capped-memory> set locked=500m
    4. Finalice la especificación del límite de memoria.
      zonecfg:my-zone:capped-memory> end

    Nota - Para utilizar el recurso capped-memory, el paquete resource-cap debe estar instalado en la zona global.


  11. Añada un sistema de archivos.
    zonecfg:my-zone> add fs
    1. Defina el punto de montaje para el sistema de archivos /usr/local en este procedimiento.
      zonecfg:my-zone:fs> set dir=/usr/local
    2. Especifique que /opt/local en la zona global se montará como /usr/local en la zona que se está configurando.
      zonecfg:my-zone:fs> set special=/opt/local

      En la zona no global, el sistema de archivos /usr/local podrá leerse y escribirse.

    3. 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.

    4. 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.

  12. Establezca el hostid si es necesario.
    zonecfg:my-zone> set hostid=80f0c086
  13. Agregue un conjunto de datos ZFS denominado sales en la agrupación de almacenamiento tank.
    zonecfg:my-zone> add dataset
    1. Especifique la ruta al conjunto de datos ZFS sales.
      zonecfg:my-zone> set name=tank/sales
    2. Finalice la especificación del conjunto de datos.
      zonecfg:my-zone> end

    El administrador de la zona puede crear y destruir los sistemas de archivos del conjunto de datos, así como modificar sus propiedades.

  14. Cree una zona de IP exclusiva con una VNIC automática.
    zonecfg:my-zone> set ip-type=exclusive
    zonecfg:my-zone> add anet
    1. Especifique auto como enlace subyacente para que se cree el enlace.
      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.

    2. Finalice la especificación.
      zonecfg:my-zone:anet> end
  15. Añada un dispositivo.
    zonecfg:my-zone> add device
    1. Defina la coincidencia del dispositivo /dev/sound/* en este procedimiento.
      zonecfg:my-zone:device> set match=/dev/sound/*
    2. 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.

  16. Para permitir el etiquetado del disco con el comando format, un disco/LUN entero se debe delegar a una zona, y se debe establecer la propiedad allow-partition.
    zonecfg:my-zone> add device
    1. Establezca la coincidencia del dispositivo /dev/*dsk/c2t40d3* en este procedimiento.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. Establezca allow-partition en true.
      zonecfg:my-zone:device> set allow-partition=true
    3. 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.

  17. Para permitir operaciones uscsi en un disco, se debe establecer la propiedad allow-raw-io.
    zonecfg:my-zone> add device
    1. Establezca la coincidencia del dispositivo /dev/*dsk/c2t40d3* en este procedimiento.
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. Establezca allow-raw-io en true.
      zonecfg:my-zone:device> set allow-raw-io=true
    3. Finalice la especificación del dispositivo.
      zonecfg:my-zone:device> end

      Precaución

      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 habilitació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 añadir más de un dispositivo.

  18. 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.

  19. Añada un comentario utilizando el tipo de recurso attr.
    zonecfg:my-zone> add attr
    1. Defina el nombre como comment.
      zonecfg:my-zone:attr> set name=comment
    2. Defina el tipo como string.
      zonecfg:my-zone:attr> set type=string
    3. Configure el valor como un comentario que describe la zona.
      zonecfg:my-zone:attr> set value="This is my work zone."
    4. Finalice la especificación del tipo de recurso attr.
      zonecfg:my-zone:attr> end
  20. Verifique la configuración de zona para la zona.
    zonecfg:my-zone> verify
  21. Confirme la configuración de zona para la zona.
    zonecfg:my-zone> commit
  22. 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.

Uso de varios subcomandos desde la línea de comandos

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.


Dónde proseguir

Consulte Instalación e inicio de zonas para instalar la configuración de zona confirmada.

Secuencia para configurar varias zonas

Puede utilizar esta secuencia 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:

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-2011 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 ....

Cómo visualizar la configuración de una zona no global

Debe ser el administrador global de la zona global o un usuario con el perfil de derechos correcto para llevar a cabo este procedimiento.

  1. Conviértase en un administrador.
  2. Visualice la configuración de una zona.
    global# zonecfg -z zonename info