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

Capítulo 23 Movimiento y migración de zonas no globales (tareas)

Este capítulo es nuevo de la versión Solaris 10 11/06. En versiones posteriores se han incorporado otras funciones.

En este capítulo se explica:

A partir de Solaris 10 10/08, si el nuevo host tiene la misma versión o versiones posteriores de los paquetes que dependen de zonas y de los parches asociados, el uso de zoneadm attach con la opción -u actualiza el conjunto mínimo de paquetes para que la zona no global sea utilizable en el nuevo host. Si el nuevo host tiene una mezcla de parches de versiones anteriores y posteriores en comparación con el host de origen, no se puede realizar una actualización durante el proceso de conexión.

El comando zoneadm attach utilizado con la opción -u también permite la migración entre clases de equipos, como de sun4u a sun4v.

A partir de la versión Solaris 10 9/10, el uso de zoneadm attach con la opción -U actualiza todos los paquetes de la zona, por lo que estos paquetes coincidirán con lo que se vería con una zona no global recién instalada en este host. Los paquetes instalados dentro de la zona, pero no instalados en la zona global, se omiten y se dejan tal cual. Asimismo, esta opción permite migrar de manera automática entre clases de equipos, como por ejemplo de sun4u a sun4v.

Como alternativa a la aplicación de parches normal, las zonas se pueden separar mientras se aplican parches a la zona global y, a continuación, volver a conectar con la opción -U para que coincida con el nivel de parche de la zona global.

Para obtener información sobre cómo mover y migrar zonas con marca lx, consulte el Capítulo 37Cómo mover y migrar zonas con marca lx (tareas).

Solaris 10 11/06: movimiento de una zona no global

Este procedimiento se utiliza para mover la zona a una ubicación nueva del mismo sistema cambiando zonepath. La zona debe detenerse. La nueva zonepath debe estar en un sistema de archivos local. Se aplica el criterio zonepath habitual que se describe en Tipos de propiedades y recursos.

ProcedureCómo mover una zona

Para llevar a cabo este procedimiento, debe ser el administrador global de la zona global.

  1. Conviértase en superusuario o asuma el rol de administrador principal.

    Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.

  2. Detenga la zona que vaya a mover (en este procedimiento, db-zone).


    global# zoneadm -z db-zone halt
    
  3. Utilice el comando zoneadm con el subcomando move para mover la zona a una nueva zonepath, /export/zones/db-zone.


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. Verifique la ruta.


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  db-zone  installed    /export/zones/db-zone          native     shared

Solaris 10 11/06: migración de una zona no global a un equipo distinto

En la versión Solaris 10 5/08, puede efectuar una ejecución de prueba de una migración de zona antes de mover la zona a otro equipo. Para obtener más información, consulte Solaris 10 5/08: validación de una migración de zona antes de efectuar la migración.

Acerca de la migración de una zona

Se ha añadido información nueva a esta sección desde la versión 10 11/06 de Solaris.

Los comandos zonecfg and zoneadm se pueden utilizar para migrar una zona no global de un sistema a otro. La zona se detiene y desconecta de su host actual. La zonepath se pasa al sistema de destino, al que se conecta.

Se aplican las siguientes restricciones a la migración de zona:

Para comprobar la versión de Solaris y la arquitectura del equipo, escriba:


#uname -m

El proceso zoneadm detach crea la información necesaria para conectar a zona en un sistema diferente. El proceso zoneadm attach verifica que el equipo de destino esté configurado correctamente para poder alojar la zona.

Dado que hay varios modos de hacer que zonepath esté disponible en el nuevo host, el movimiento de zonepath de un sistema a otro es un proceso manual que lleva a cabo el administrador global.

Cuando se conecta al sistema nuevo, la zona tiene el estado de instalado.

ProcedureCómo migrar una zona no global

Debe ser el administrador global de la zona global para llevar a cabo este procedimiento.

  1. Conviértase en superusuario o asuma el rol de administrador principal.

    Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.

  2. Detenga la zona que vaya a migrar (my-zone en este procedimiento).


    host1# zoneadm -z my-zone halt
    
  3. Desconecte la zona.


    host1# zoneadm -z my-zone detach
    

    La zona desconectada tiene ahora el estado de configurada.

  4. Mueva zonepath para my-zone al nuevo host.

    Consulte Cómo mover zonepath a un nuevo host para obtener más información.

  5. En el nuevo host, configure la zona.


    host2# zonecfg -z my-zone
    

    Aparecerá el siguiente mensaje del sistema:


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. Para crear la zona my-zone en el nuevo host, utilice el comando zonecfg con la opción -a y zonepath en el nuevo host.


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (Opcional) Visualice la configuración.


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. Realice los ajustes de configuración necesarios.

    Por ejemplo, el dispositivo físico de red es diferente en el nuevo host, o los dispositivos que forman parte de la configuración podrían tener nombres diferentes en el nuevo host.


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. Confirme la configuración y cierre.


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. Conecte la zona al nuevo host mediante uno de los métodos siguientes.

    • Conecte la zona con una comprobación de la validación.


      host2# zoneadm -z my-zone attach
      

      El administrador del sistema recibe una notificación de las acciones que se deben llevar a cabo si se producen una o las dos condiciones que se especifican a continuación:

      • Los parches y paquetes necesarios no se encuentran en el nuevo equipo.

      • Los niveles de software cambian en función del equipo.

    • Solaris 10/08: conecte la zona con una comprobación de la validación y actualícela para que coincida con un host que ejecute versiones posteriores de los paquetes dependientes o que tenga una clase de máquina distinta tras la conexión.


      host2# zoneadm -z my-zone attach -u
      

      Consejo –

      Solaris 10 10/08: si el sistema de origen ejecuta una versión anterior del sistema Solaris, es posible que no genere una lista correcta de paquetes cuando se desconecte la zona. Para asegurarse de que se genere la lista de paquetes correcta en el destino, elimine el archivo SUNWdetached.xml de zonepath. Al eliminar este archivo, el sistema de destino genera una nueva lista de paquetes.

      No es necesario con la versión Solaris 10 5/09 ni con versiones posteriores.


    • Solaris 10 9/10: conecte la zona con una comprobación de la validación y actualice todos los paquetes de la zona, de tal forma que estos paquetes coincidan con lo que se vería con una zona no global recién instalada en este host. Los paquetes instalados dentro de la zona, pero no instalados en la zona global, se omiten y se dejan tal cual.


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 y versiones posteriores: utilice también la opción -b para recuperar parches determinados, oficiales o IDR, durante la conexión.


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      Tenga en cuenta que puede utilizar la opción -b independientemente de las opciones -u o - U.

    • Fuerce la operación de conexión sin llevar a cabo la validación.


      host2# zoneadm -z my-zone attach -F
      

      Precaución – Precaución –

      La opción -F permite forzar attach sin realizar ninguna validación. Esto resulta útil en determinados casos, como en un entorno de clúster o para las operaciones de copia de seguridad y restauración, pero requiere que el sistema esté configurado correctamente para alojar la zona. Una configuración incorrecta podría conllevar un comportamiento inesperado más adelante.


ProcedureCómo mover zonepath a un nuevo host

Hay múltiples modos de crear un archivo de zonepath. Por ejemplo, puede utilizar los comandos cpio o pax que se describen en las páginas del comando man cpio(1)) y pax(1).

Existen diversos modos de transferir el archivo al nuevo host. El mecanismo utilizado para transferir zonepath del host de origen al destino depende de la configuración local. En algunos casos, como en una SAN, los datos de zonepath podrían no moverse realmente. La SAN podría reconfigurarse simplemente para que zonepath esté visible en el nuevo host. En otros casos, zonepath podría guardarse en una cinta, y ésta enviarse a un nuevo emplazamiento.

Por estos motivos, este paso no es automático. El administrador del sistema debe seleccionar la técnica más apropiada para mover zonepath al nuevo host.

  1. Conviértase en superusuario o asuma el rol de administrador principal.

    Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.

  2. Mueva zonepath al nuevo host. Puede utilizar el método que se describe en este procedimiento, u otro método que elija.


Ejemplo 23–1 Cómo archivar y mover zonepath utilizando el comando tar

  1. Cree un archivo tar de zonepath en host1 y transfiéralo a host2 utilizando el comando sftp.


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. En host2, desempaquete el archivo tar.


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

Para obtener más información, consulte sftp(1) y tar(1).


Errores más frecuentes

Consulte Resolución de problemas con una operación zoneadm attach para obtener información acerca de la resolución de problemas sobre:

Pasos siguientes

Si ha copiado los datos en lugar de volver a configurar la SAN, los datos de zonepath seguirán visibles en el host de origen aunque ahora la zona tenga el estado de configurada. Puede eliminar manualmente zonepath del host de origen una vez haya terminado de mover los datos al nuevo host, o volver a conectar la zona al host de origen y utilizar el comando zoneadm uninstall para eliminar zonepath.

Solaris 10 5/08: validación de una migración de zona antes de efectuar la migración

Antes de mover la zona al nuevo equipo, puede realizar una ejecución de prueba utilizando la opción -n de “no ejecutar”.

El submcomando zoneadm detach se utiliza con la opción -n para generar un manifiesto de una zona que se ejecuta sin desconectarla realmente. El estado de la zona del sistema de origen no se modifica. El manifiesto de la zona se envía a stdout. El administrador global puede dirigir esta salida a un archivo o conectarla con un comando remoto para que se valide inmediatamente en el host de destino. El subcomando zoneadm attach se utiliza con la opción -n para leer este manifiesto y comprobar que el equipo de destino tenga la configuración correcta para alojar la zona sin necesidad de realizar una conexión realmente.

La zona del sistema de destino no se debe configurar en el host nuevo antes de efectuar una conexión de ejecución de prueba.

ProcedureSolaris 10 5/08: cómo validar una migración de zona antes de efectuar la migración

Para llevar a cabo este procedimiento, debe ser el administrador global de la zona global.

  1. Conviértase en superusuario o asuma el rol de administrador principal.

    Para crear el rol y asignarlo a un usuario, consulte Using the Solaris Management Tools With RBAC (Task Map) de System Administration Guide: Basic Administration.

  2. Utilice uno de los métodos siguientes:

    • Genere el manifiesto en el host de origen para my-zone y vincule la salida con un comando remoto que, de forma inmediata, validará el host de destino:


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      El guión () al final de la línea especifica stdin para la ruta.

      La validación es la salida a la pantalla del host de origen, que es stdout.

    • Genere el manifiesto en el host de origen para my-zone y dirija la salida a un archivo:


      global# zoneadm -z my-zone detach -n > filename
      

      Copie el manifiesto en el nuevo sistema host teniendo en cuenta las instrucciones de Cómo mover zonepath a un nuevo host. A continuación, efectúe la validación:


      global# zoneadm attach -n path_to_manifest
      

      La ruta puede ser para especificar stdin.

Cómo migrar una zona desde un equipo que no se puede utilizar

Un equipo que aloja una zona de Solaris nativa puede convertirse en inutilizable. Sin embargo, si el almacenamiento en el que se encuentra la zona, por ejemplo una SAN, sigue siendo utilizable, se podría migrar correctamente la zona a un nuevo host. Puede mover zonepath para la zona al nuevo host. En algunos casos, como en una SAN, los datos de zonepath podrían no moverse realmente. La SAN podría reconfigurarse simplemente para que zonepath esté visible en el nuevo host. Dado que la zona no se ha desconectado correctamente, primero debe crear la zona en el nuevo host utilizando el comando zonecfg. A continuación, conecte la zona en el nuevo host. Aunque el nuevo host indica que la zona no se ha desconectado correctamente, el sistema intentará realizar la conexión de todos modos.

Este procedimiento se describe en los pasos del 4 al 8 de Cómo migrar una zona no global. Consulte también Cómo mover zonepath a un nuevo host.

Uso de la actualización tras conexión como solución para aplicar parches

El proceso de actualizar al conectar desarrollado para migrar zonas a un sistema diferente se puede utilizar también para aplicar parches a zonas. Este método permite que la zona global esté disponible más rápidamente. Entonces el administrador del sistema puede controlar qué zonas se actualizan primero y conseguir que esas zonas estén en ejecución antes de que se actualicen e inicien zonas menos importantes.

El proceso siguiente actualiza todos los parches por lo que la zona parece una zona recién instalada en el sistema:

  1. Antes de aplicar un paquete de parches a la zona global, separe todas las zonas no globales.

  2. Aplique el paquete de parches a la zona global.

  3. Cuando se haya aplicado el paquete y se haya reiniciado el sistema, utilice el comando zoneadm attach con la opción -U para colocar las zonas no globales al mismo nivel de parche que la zona global.

Los paquetes instalados dentro de la zona, pero no instalados en la zona global, se omiten y se dejan tal cual.

Consulte Solaris 10 10/09: aplicación de parches a zonas en paralelo para reducir su tiempo de aplicación para una rápida solución de aplicación de parches que use la utilidad patchadd.