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

Capítulo 30 Soluções diversas de problemas do Solaris Zones

Este capítulo é novo para a versão Solaris 10 6/06.

Para obter uma lista completa dos novos recursos do Solaris 10 e uma descrição das versões do Solaris, consulte Novidades no Oracle Solaris 10 9/10.

Solaris 10 6/06, Solaris 10 11/06, Solaris 10 8/07 e Solaris 10 5/08: não colocar o sistema de arquivos raiz de uma região global no ZFS

O zonepath de uma região global não deve residir no ZFS nestas versões. Esta ação pode resultar em problemas de correção e possivelmente impedir que o sistema seja atualizado para uma atualização posterior da versão Solaris 10.

Observe que o sistema de arquivos raiz de uma região não global pode residir no ZFS a partir do Solaris 10 10/08. Assim, o Solaris Live Upgrade pode ser usado para atualizar o sistema.

Região com IP exclusivo usa dispositivo, por isso dladm reset-linkprop falha

Se a seguinte mensagem de erro for exibida:


dladm: warning: cannot reset link property 'zone' on 'bge0': operation failed

Referente a Como usar dladm reset-linkprop , a tentativa de usar dladm reset-linkprop falhou. A região em execução excl está usando o dispositivo, que foi atribuído executando ifconfig bge0 plumb no interior da região.

Para redefinir o valor, use o procedimento ifconfig bge0 unplumb no interior da região e reexecute o comando dladm.

Montagem do administrador de região sobre sistemas de arquivos preenchidos pela região global

A presença de arquivos dentro de uma hierarquia de sistema de arquivos quando uma região não global é iniciada pela primeira vez indica que os dados do sistema de arquivos são gerenciados pela região global. Quando a região global foi instalada, diversos arquivos de pacote na região global foram duplicados no interior da região. Esses arquivos devem residir diretamente no zonepath. Se os arquivos residirem sob um sistema de arquivos criado por um administrador de região em dispositivos de disco ou conjuntos de dados do ZFS adicionados à região, podem ocorrer problemas de pacote e correção.

O problema com o armazenamento de qualquer um dos dados do sistema de arquivos que são gerenciados pela região global em um sistema de arquivos local pode ser descrito usando ZFS como em exemplo. Se um conjunto de dados do ZFS foi delegado para uma região não global, o administrador de região não deve usar esse conjunto de dados para armazenar qualquer um dos dados do sistema de arquivos que sejam gerenciados pela região global. A correção ou a atualização da configuração podem não ser corretos.

Por exemplo, um conjunto de dados do ZFS delegado não deve ser usado como um sistema de arquivos /var. O sistema operacional do Solaris entrega pacotes de núcleo que instalam componentes em /var. Esses pacotes têm de acessar /var quando são atualizados ou corrigidos, o que não é possível se /var estiver montado em um conjunto de dados delegado do ZFS.

Montagens do sistema de dados sob partes da hierarquia controlada pela região global têm suporte. Por exemplo, se existir um diretório /usr/local vazio na região global, o administrador de região pode montar outros conteúdos sob esse diretório.

Você pode usar um conjunto de dados delegado do ZFS para sistemas de arquivos que não precisam ser acessados durante correção ou atualização, como /export na região não global.

A região não pára

Caso o estado do sistema associado à região não possa ser destruído, a operação de parada falhará no meio do processo. Isto deixa a região em um estado intermediário, algo entre execução e instalada. Neste estado não há processos de usuário ativos nem segmentos do kernel, e nenhum pode ser criado. Quando a operação de parada falha, você deve intervir manualmente para concluir o processo.

A causa mais comum de uma falha é incapacidade do sistema de desmontar todos os sistemas de arquivos. Diferentemente de um desligamento de sistema tradicional do Solaris, que destrói o estado do sistema, regiões devem garantir que nenhuma montagem executada durante a inicialização da região ou durante a operação da região permaneça depois de a região ter sido parada. Mesmo que zoneadm assegure que não haja processos em execução na região, a operação de desmontagem pode falhar se processos na região global tiverem arquivos abertos na região. Use as ferramentas descritas nas páginas do manual proc(1) (consulte pfiles) e fuser(1M) para localizar esses processos e tomar a ação apropriada. Depois de se ter lidado com esses processos, invocar zoneadm halt deveria parar totalmente a região.

Para uma região que não pode ser interrompido, a partir da versão Solaris 10 09/10, você pode migrar de uma região que não foi removida, utilizando a opção zoneadm attach - F para forçar o anexo sem uma validação. O sistema de destino deve ser corretamente configurado para hospedar a região. Uma configuração incorreta pode resultar em um comportamento indefinido. Além disso, não há nenhuma maneira de saber o estado dos arquivos dentro da região.

Conjunto de privilégios incorreto especificado na configuração de região

Se o conjunto de privilégios da região contiver um privilégio não permitido, não tiver um privilégio necessário ou incluir um nome de privilégio desconhecido, uma tentativa de verificação, pronto ou inicialização da região irá falhar com uma mensagem de erro como a seguinte:


zonecfg:zone5> set limitpriv="basic"
.
.
.
global# zoneadm -z zone5 boot
 	required privilege "sys_mount" is missing from the zone's privilege set
 	zoneadm: zone zone5 failed to verify

Aviso de netmasks exibido na inicialização da região

Se você vir a seguinte mensagem ao inicializar a região como descrito em Como inicializar uma região:


# zoneadm -z my-zone boot
zoneadm: zone 'my-zone': WARNING: hme0:1: no matching subnet
	found in netmasks(4) for 192.168.0.1; using default of
	255.255.255.0.

A mensagem é somente um aviso e o comando teve êxito. A mensagem indica que o sistema não pôde localizar netmask para ser usado para o endereço IP especificado na configuração da região.

Para impedir que o aviso seja exibido em reinicializações subseqüentes, assegure-se de que os bancos de dados corretos de netmasks estejam listados no arquivo /etc/nsswitch.conf na região global e de que pelo menos um desses bancos de dados contenham uma sub-rede e netmasks a serem usados para a região my-zone.

Por exemplo, se o arquivo /etc/inet/netmasks e o banco de dados NIS local forem usados para resolver netmasks na região global, a entrada apropriada em /etc/nsswitch.conf é como a seguir:

netmasks: files nis

A sub-rede e as informações de netmask correspondentes para a região my-zone podem então ser adicionadas a /etc/inet/netmasks para uso subseqüente.

Para obter mais informações sobre o comando netmasks, consulte a página do manual netmasks(4).

Resolução de problemas com uma operação zoneadm attach

ProcedureCorreções e pacotes estão fora de sincronia

O sistema de destino deve executar as mesmas versões dos seguintes pacotes e correções do sistema operacional necessários que as versões instaladas no host original.

  1. Se pacotes e correções forem diferentes do host original e do novo host, você poderá ver uma exibição semelhante à seguinte:


    host2# zoneadm -z my-zone attach
    	These packages installed on the source system are inconsistent with this system:
                SUNWgnome-libs (2.6.0,REV=101.0.3.2005.12.06.20.27) version mismatch
                        (2.6.0,REV=101.0.3.2005.12.19.21.22)
                SUNWudaplr (11.11,REV=2005.12.13.01.06) version mismatch
                        (11.11,REV=2006.01.03.00.45)
                SUNWradpu320 (11.10.0,REV=2005.01.21.16.34) is not installed
                SUNWaudf (11.11,REV=2005.12.13.01.06) version mismatch
                        (11.11,REV=2006.01.03.00.45)
                NCRos86r (11.10.0,REV=2005.01.17.23.31) is not installed
    	These packages installed on this system were not installed on the source system:
                SUNWukspfw (11.11,REV=2006.01.03.00.45) was not installed
                SUNWsmcmd (1.0,REV=2005.12.14.01.53) was not installed
    	These patches installed on the source system are inconsistent with this system:
                120081 is not installed
                118844 is not installed
                118344 is not installed
    	These patches installed on this system were not installed on the source system:
                118669 was not installed
                118668 was not installed
                116299 was not installed
  2. Para migrar a região com êxito, use um dos métodos a abaixo:

ProcedureAs versões do sistema operacional não coincidem

Para migrar a região com êxito, instale a mesma versão do Solaris que está em execução no host original em um sistema com a mesma arquitetura.

  1. Verifique a versão do Solaris em execução no sistema original.


    host1# uname -a
    
  2. Instale a mesma versão no novo host.

    Consulte a documentação de instalação do Solaris em docs.sun.com.

ProcedureAs arquiteturas de máquina não coincidem

Para migrar com êxito a região, use a opção -u no zoneadm attach.

  1. Verifique a arquitetura do sistema em ambos os sistemas.


    host1# uname -a
    
  2. Se as arquiteturas forem diferentes, use a opção -u com zoneadm attach para realizar a anexação.


    host2# zoneadm -z my-zone attach -u
    

    Para obter mais informações, consulte Como migrar uma região não global.

Regiões com um recurso fs definido com um tipo de lofs não podem ser atualizadas para a versão Solaris 10 11/06


Observação –

Este problema foi corrigido na versão Solaris 10 8/07.


Se todas as regiões não globais configuradas com recursos lofs fs estão montando diretórios que existem na minirraiz, o sistema poderá ser atualizado a partir de uma versão anterior do Solaris 10 para a versão Solaris 10 11/06 usando-se a atualização padrão. Por exemplo, um diretório /opt montado comlofs não apresenta problemas para a atualização.

No entanto, se uma região não global estiver configurada com uma montagem de lofs não padrão, como um diretório /usr/local montado com lofs, a seguinte mensagem de erro será exibida:


The zones upgrade failed and the system needs to be restored
from backup.  More details can be found in the file
/var/sadm/install_data/upgrade_log on the upgrade root file
system.

Embora esta mensagem de erro afirme que o sistema deve ser restaurado de backup, o sistema na verdade está funcionando bem, e pode ser atualizado com êxito usando-se a seguinte solução:

  1. Reinicialize o sistema com o sistema operacional instalado.

  2. Reconfigure as regiões, removendo os recursos fs definidos com um tipo de lofs.

  3. Após remover estes recursos, atualize o sistema para o Solaris 10 11/06.

  4. Após a atualização, você poderá reconfigurar as regiões novamente para restaurar recursos fs adicionais que foram removidos.