Guia de administração do sistema: gerenciamento de recursos Oracle Solaris Containers e Oracle Solaris Zones

Capítulo 23 Movimento e migração de regiões não globais (tarefas)

Este capítulo é novo para a versão Solaris 10 11/06. Recursos adicionais foram adicionados em versões subseqüentes.

Este capítulo descreve como:

Iniciar com o Solaris 10 10/08, se o novo host possuir a mesma versão ou versões posteriores dos pacotes de região dependente em patches associados, utilizando zoneadm attach com a opção -u atualiza o conjunto mínimo de pacotes para transformar a região não global usável no novo host. Se o novo host tiver uma mistura de correções de versões superiores e inferiores comparado ao host de origem, a atualização durante a operação de anexação não é permitida.

O comando zoneadm attach utilizado com a opção - u também ativa a migração entre classes de máquinas, como de sun4u a sun4v.

Começando com a versão Solaris 10 9/10, utilizar zoneadm attach com a opção -U atualiza todos os pacotes para a região, de modo que estes pacotes correspondam ao que seria visto com uma região não global recém-instalada nesse host. Todos os pacotes instalados no interior da região, mas não instalados na região global são ignorados e deixados como estão. Esta opção também ativa a migração automática entre classes de máquinas, como de sun4u a sun4v.

Como alternativa à atualização normal, as regiões podem ser destacadas enquanto a região global é atualizada e depois recolocado com a opção -U para coincidir com o nível do patch da região global.

Para obter informações sobre o movimento e a migração de regiões com marca lx, consulte o Capítulo 37Movimento e migração de regiões com marcas lx (tarefas).

Solaris 10 11/06: movimento de uma região não global

Este procedimento é usado para mover uma região para um novo local no mesmo sistema alterando o zonepath. A região deve estar parada. O novo zonepath deve estar em um sistema de arquivos local. Os critérios normais do zonepath descritos em Tipos de recurso e propriedade aplicam-se.

ProcedureComo mover uma região

É necessário ser administrador global na região global para executar este procedimento.

  1. Torne-se superusuário ou assuma a função de administrador principal.

    Para criar a função e atribuí-la a um usuário, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Pare a região a ser movida, db-zone neste procedimento.


    global# zoneadm -z db-zone halt
    
  3. Use o comando zoneadm com o subcomando move para mover a região [ara um novo zonepath, /export/zones/db-zone .


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. Verifique o caminho.


    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: migração de uma região não global para uma máquina diferente

Observe que com o Solaris 10 versão 5/08, você pode fazer uma execução de avaliação da migração antes de realmente mover a região para uma máquina diferente. Para obter mais informações, consulte Solaris 10 5/08: Sobre a validação de uma migração de região antes que a migração seja realizada.

Sobre migração de uma região

Novas informações foram adicionadas a esta seção a partir da versão Solaris 10 11/06.

Os comandos zonecfg e zoneadm podem ser usados para migrar uma região não global existente de um sistema para outro. A região é parada e desanexada do host atual. O zonepath é movido para o host de destino, onde é conectado.

As seguintes restrições se aplicam à migração de região:

Para verificar a arquitetura da versão Solaris e da máquina, digite:


#uname -m

O processo zoneadm detach cria as informações necessárias para anexar a região a um sistema diferente. O processo zoneadm attach verifica se a máquina de destino tem a configuração correta para hospedar a região.

Uma vez que existem várias maneiras de tornar o zonepath disponível no novo host, o movimento real do zonepath de um sistema para outro é um processo manual executado pelo administrador global.

Quando anexada ao novo sistema, a região está no estado de instalada.

ProcedureComo migrar uma região não global

É necessário ser administrador global na região global para executar este procedimento.

  1. Torne-se superusuário ou assuma a função de Administrador principal.

    Para criar a função e atribuí-la a um usuário, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Pare a região a ser migrada, my-zone neste procedimento.


    host1# zoneadm -z my-zone halt
    
  3. Desanexe a região.


    host1# zoneadm -z my-zone detach
    

    A região desanexada está agora no estado de configurada.

  4. Mova o zonepath de my-zone para o novo host.

    Para mais informações, consulte Como mover o zonepath para um novo host.

  5. No novo host, configure a região.


    host2# zonecfg -z my-zone
    

    Você verá a seguinte mensagem do sistema:


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. Para criar a região my-zone no novo host, use o comando zonecfg com a opção -a e o zonepath no novo host.


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (Opcional) Visualize a configuração.


    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. Faça ajustes na configuração conforme necessário.

    Por exemplo, o dispositivo físico de rede pode ser diferente no novo host, ou os dispositivos que fazem parte da configuração podem ter nomes diferentes no no0


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. Comprometa a configuração e saia.


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. Anexe a região ao novo host usando um dos seguintes métodos.

    • Anexe a região com uma verificação de validação.


      host2# zoneadm -z my-zone attach
      

      O administrador de sistema é notificado de ações necessárias a serem tomadas se uma ou ambas das seguintes condições estiverem presentes:

      • Pacotes e correções necessários estão ausentes na nova máquina.

      • Os níveis de software são diferentes entre as máquinas.

    • Solaris 10 10/08: anexe a região com uma verificação de validação e atualize a região para que corresponda a um host que executa versões mais recentes dos pacotes dependentes ou que possuem outra classe de máquina no anexo.


      host2# zoneadm -z my-zone attach -u
      

      Dica –

      Solaris 10 10/08: Se o sistema de origem estiver executando um versão mais antiga do sistema Solaris, ele pode não gerar uma lista correta de pacotes quando a região for desanexada. Para garantir que seja gerada a lista correta de pacotes no destino, você pode remover o arquivo SUNWdetached.xml de zonepath . A remoção deste arquivo fará com que uma nova lista de pacotes seja gerada pelo sistema de destino.

      Isso não é necessário no Solaris 10 5/09 e versões posteriores.


    • Solaris 10 9/10: anexe a região com uma verificação de validação e atualize todos os pacotes para a região para corresponder ao que seria visto com a região não global recém instalada nesse host. Todos os pacotes instalados no interior da região, mas não instalados na região global são ignorados e deixados como estão.


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 e posterior: também usa a opção -b para retirar correções específicas, tanto oficial quanto IDR, durante a anexação.


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

      Note que você pode utilizar a opção -b independente das opção -u ou - U.

    • Force a operação de anexação sem executar a validação.


      host2# zoneadm -z my-zone attach -F
      

      Cuidado – Cuidado –

      A opção -F permite que você force attach sem a execução de validação. Isto é útil em determinados casos, como em um ambiente agrupado ou para operações de backup e restauração, mas requer que o sistema seja adequadamente configurado para hospedar a região. Uma configuração incorreta pode resultar em um comportamento indefinido posteriormente.


ProcedureComo mover o zonepath para um novo host

Existem várias maneiras de criar um arquivo do zonepath. Por exemplo, você pode usar os comando cpio ou pax descritos nas páginas do manual cpio(1)) e pax(1).

Existem também várias maneiras de transferir o arquivo para o novo host. O mecanismo usado para transferir o zonepath do host de origem para o destino depende da configuração local. Em alguns casos, como um SAN, os dados do zonepath podem na verdade não ser movidos. SAN pode simplesmente se reconfigurado, de modo que zonepath seja visível para o novo host. Em outros casos, o zonepath poderia ser gravado em fita, e a fita enviada para um novo site.

Por este motivos, esta etapa não é automatizada. O administrador de sistema deve escolher a técnica mais apropriada para mover o zonepath para o novo host.

  1. Torne-se superusuário ou assuma a função de administrador principal.

    Para criar a função e atribuí-la a um usuário, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Mova o zonepath para o novo host. Você pode usar o método descrito neste procedimento ou usar outro método de sua escolha.


Exemplo 23–1 Arquivamento e movimento do zonepath com o uso do comando tar

  1. Crie um arquivo tar do zonepath no host1 e transfira-o para o host2 usando o 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. No host2, desempacote o arquivo tar.


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

Para obter mais informações, consulte sftp(1) e tar(1).


Solução de problemas

Consulte Resolução de problemas com uma operação zoneadm attach para obter informações sobre resolução de problemas relacionados ao que se segue:

Passos Seguintes

Se você tiver copiado os dados em vez de reconfigurar um SAN, os dados do zonepath ainda estarão visíveis no host de origem mesmo que a região agora esteja no estado configurado. Você pode remover manualmente o zonepath do host de origem após terminar de mover os dados para o novo host, ou pode reanexar a região ao host de origem e usar o comando zoneadm uninstall para remover o zonepath.

Solaris 10 5/08: Sobre a validação de uma migração de região antes que a migração seja realizada

Você pode realizar uma execução de avaliação antes que a região seja movida para a nova máquina, usando a opção “no execute”,-n.

O subcomando zoneadm detach é usado com a opção -n para gerar um manifesto em uma região em execução sem realmente desanexar a região. O estado da região no sistema de origem não é alterado. O manifesto da região é enviado para stdout. O administrador global pode direcionar essa saída para um arquivo ou inseri-lo em um comando remoto para que seja imediatamente validado no host de destino. O subcomando zoneadm attach é usado com a opção -n para ler esse manifesto e verificar se a máquina de destino tem a configuração correta para hospedar a região sem realmente fazer uma anexação.

A zona no sistema de destino não precisa ser configurada no novo host antes de uma anexação de execução de teste.

ProcedureSolaris 10 5/08: Como validar uma migração de região antes que a migração seja realizada

É necessário ser administrador global na região global para executar este procedimento.

  1. Torne-se superusuário ou assuma a função de administrador principal.

    Para criar a função e atribuí-la a um usuário, consulte Using the Solaris Management Tools With RBAC (Task Map) no System Administration Guide: Basic Administration .

  2. Use um dos métodos seguintes.

    • Gere o manifesto em um host de origem para my-zone e insira a saída em um comando remoto que validará imediatamente o host de destino:


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

      O hífen () no fim da linha especifica stdin para o caminho.

      A validação é a saída da tela do host de origem, que é stdout.

    • Gere o manifesto em um host de origem para my-zone e direcione a saída para um arquivo:


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

      Copie o manifesto para o sistema do novo host como descrito em Como mover o zonepath para um novo host, e realize a validação:


      global# zoneadm attach -n path_to_manifest
      

      O caminho pode ser para especificar stdin.

Migração de uma região de uma máquina que não é utilizável

Uma máquina que hospeda uma região nativa do Solaris pode se tornar inutilizável. No entanto, se o armazenamento em que a região reside, como SAN, ainda é utilizável, pode ser possível migrar com êxito a região para um novo host. Você pode mover o zonepath para a região para o novo host. Em alguns casos, como um SAN, os dados do zonepath podem na verdade não ser movidos. SAN pode simplesmente se reconfigurado, de modo que zonepath seja visível para o novo host. Uma vez que a região não foi adequadamente desanexada, você primeiro terá que criar a região no novo host usando o comando zonecfg . Uma vez feito isto, anexe a região ao novo host. Embora o novo host informe que a região não foi adequadamente desanexada, o sistema tentará anexá-la de qualquer forma.

O procedimento para esta tarefa está descrito nas etapas 4 a 8 de Como migrar uma região não global. Consulte também Como mover o zonepath para um novo host.

Usando a atualização na anexação como uma solução de correção

A atualização em anexo processo desenvolvido para migrar regiões a um sistema diferente também pode ser utilizada para as regiões de patch. Esse método permite que a região global esteja disponível mais rapidamente. O administrador do sistema pode, então, controlar quais regiões são atualizadas em primeiro lugar e obter essas regiões em execução antes que as regiões menos críticas sejam atualizadas e inicializadas.

O seguinte processo atualiza todas os patches para que a região se pareça com uma região recém-instalada no sistema:

  1. Antes de aplicar um pacote de patch para a região global, remova todas as regiões não globais.

  2. Aplique o pacote de patch a todas as regiões globais.

  3. Após do pacote ter sido aplicado e o sistema tiver sido reinicializado, utilize o comando zoneadm attach com a opção -U para trazer as regiões não globais de volta para o mesmo nível de patch que a região global.

Todos os pacotes instalados no interior da região, mas não instalados na região global são ignorados e não afetados.

Consulte Solaris 10 10/09: Correção de regiões paralelas para reduzir o tempo de correção para obter uma solução de correção rápida que utilize o utilitário patchadd.