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

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.