Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
![]() |
Guia de administração do sistema: gerenciamento de recursos do Oracle Solaris Containers e Oracle Solaris Zones Oracle Solaris 10 1/13 Information Library (Português (Brasil)) |
Parte I Gerenciamento de Recursos
1. Introdução ao gerenciador de recursos do Solaris 10
2. Projetos e tarefas (visão geral)
3. Administração de projetos e tarefas
4. Contabilidade estendida (Visão geral)
5. Administração da contabilidade estendida (tarefas)
6. Controles de Recursos (Visão Geral)
7. Administração de controles de recursos (Tarefas)
8. Fair share scheduler (visão geral)
9. Administração do fair share scheduler (tarefas)
10. Controle da memória física usando o resource capping daemon (visão geral)
11. Administração do resource capping daemon (tarefas)
12. Pools de recursos (Visão geral)
13. Criação e administração de pools de recursos (Tarefas)
14. Exemplo de configuração de gerenciamento de recurso
15. Funcionalidade do controle de recursos no Console de gerenciamento Solaris
16. Introdução ao Solaris Zones
17. Configuração de zona não global (Visão geral)
O que há de novo neste capítulo?
Processo de configuração de pré-instalação
Inicialização automática de zona
Associação de pools de recursos
Solaris 10 8/07: recurso dedicated-cpu
Solaris 10 5/08: recurso capped-cpu
Classe de agendamento em uma zona
Solaris 10 8/07: controle da memória física e o recurso capped-memory
Zonas não globais com IP compartilhado
Solaris 10 8/07: zonas não globais com IP exclusivo
Diferenças de segurança entre zonas não globais com IP compartilhado e IP exclusivo
Uso de zonas não globais com IP compartilhado e IP exclusivo ao mesmo tempo
Sistemas de arquivos montados em zonas
Dispositivos configurados em zonas
Definição de controles de recursos de zonas
Solaris 10 11/06 e versões posteriores: Privilégios configuráveis
Modo de comando de arquivo zonecfg
Tipos de recurso e propriedade
Propriedades de tipo de recursos
Biblioteca de edição da linha de comando tecla
18. Planejamento e configuração de zonas não globais (Tarefas)
19. Sobre instalação, parada, clonagem e desinstalação de zonas não globais (Visão geral)
20. Instalação, inicialização, parada, desinstalação e clonagem de zonas não globais (Tarefas)
21. Login na zona não global (Visão geral)
22. Login em zonas não globais (Tarefas)
23. Movendo e migrando zonas não globais (Tarefas)
24. Oracle Solaris 10 9/10: migrando de um sistema Oracle Solaris físico para uma zona (Tarefas)
25. Sobre pacotes e patches em um sistema do Oracle Solaris com zonas instaladas (Visão geral)
27. Administração do Oracle Solaris Zones (Visão geral)
28. Administração do Oracle Solaris Zones (Tarefas)
29. Atualização de um sistema Oracle Solaris 10 com zonas não globais instaladas
30. Soluções diversas de problemas do Oracle Solaris Zones
Parte III 1x}Zonas não nativas
31. Sobre zonas não nativas e zonas não nativas do Linux
32. Planejamento da configuração da zona não nativa lx (Visão geral)
33. Configuração de zonas não nativas lx (Tarefas)
36. Login em zonas não nativas lx (Tarefas)
37. Movendo e migrando zonas não nativas lx (Tarefas)
38. Administração e execução de aplicativos em zonas não nativas lx (Tarefas)
Esta seção aborda os componentes de zona necessários e opcionais que podem ser configurados. Informações adicionais são fornecidas em Dados de configuração de zona.
É necessário escolher um nome e um caminho para a zona.
A configuração da propriedade autoboot determina se a zona é inicializada automaticamente quando uma zona global é inicializada. O serviço de zona svc:/system/zones:default também devem ser ativado.
Se você configurou pools de recursos no sistema como descrito no Capítulo 13, Criação e administração de pools de recursos (Tarefas), poderá usar a propriedade pool para associar a zona a um dos pools de recursos ao configurar a zona.
A partir da versão Solaris 10 8/07, se pools de recursos não estiverem configurados, você ainda poderá especificar que um subconjunto dos processadores do sistema seja dedicado a uma zona não global quando estiver em execução ao usar o recurso dedicated-cpu. O sistema criará dinamicamente um pool temporário para uso enquanto a zona estiver em execução. Com a especificação através de zonecfg, as configurações de pool se propagam durante as migrações.
Observação - Uma configuração de zona que usa um pool persistente definido através da propriedade pool é incompatível com um pool temporário configurado através do recurso dedicated-cpu. Você pode definir somente uma destas duas propriedades.
O recurso dedicated-cpu especifica que um subconjunto dos processadores do sistema devem ser dedicados a uma zona não global enquanto estiver em execução. Quando a zona for inicializada, o sistema criará dinamicamente um pool temporário para uso enquanto a zona estiver em execução.
Com a especificação em zonecfg, as configurações de pool se propagam durante as migrações.
O recurso dedicated-cpu define limites para ncpus e, opcionalmente, para importance.
Especifique o número de CPUs ou especifique um intervalo, como 2-4 CPUs. Se você especificar um intervalo porque deseja um comportamento dinâmico do pool de recursos, faça também o seguinte:
Defina a propriedade importance.
Ative o serviço poold. Para instruções, consulte Solaris 10 11/06 e posterior: como ativar o serviço de grupos de recursos dinâmicos usando svcadm.
Se estiver utilizando um intervalo de CPU para atingir o comportamento dinâmico, defina também a propriedade importance. A propriedade importance, que é opcional, define a importância relativa do grupo. Esta propriedade é necessária somente quando você especifica um intervalo para ncpus e usa pools de recursos dinâmicos gerenciados por poold. Se poold não estiver em execução, importance será ignorado. Se poold estiver em execução e importance não estiver definido, importance assumirá 1 como padrão. Para obter mais informações, consulte Restrição da propriedade pool.importance.
Observação - O recurso capped-cpu e o recurso dedicated-cpu são incompatíveis. O controle de recursos cpu-shares rctl e o recurso dedicated-cpu são incompatíveis.
O recurso capped-cpu oferece um limite absoluto na quantidade de recursos da CPU que podem ser consumidos por um projeto ou uma zona. Quando usado em conjunto com conjuntos de processadores, os caps de CPU limitam o uso da CPU dentro de um conjunto. O recurso capped-cpu possui uma única propriedade ncpus que é um decimal positivo com dois dígitos à direita do decimal. Esta propriedade corresponde a unidades de CPUs. O recurso não aceita um intervalo. O recurso não aceita um número decimal. Ao especificar ncpus, um valor 1 significa 100% de uma CPU. Um valor 1,25 significa 125% pois 100% corresponde a uma CPU completa no sistema.
Observação - O recurso capped-cpu e o recurso dedicated-cpu são incompatíveis.
Você pode usar o fair share scheduler (FSS) para controlar a alocação dos recursos de CPU disponíveis entre zonas, com base na importância das cargas de trabalho na zona. Essa importância da carga de trabalho é expressa pelo número de compartilhamentos de recursos de CPU que você atribui a cada zona. Mesmo que não esteja usando o FSS para gerenciar alocação de recursos de CPU entre zonas, você pode definir a classe de agendamento da zona para usar o FSS, de modo que possa definir compartilhamentos em projetos dentro da zona.
Quando você define explicitamente a propriedade cpu-shares, o fair share scheduler (FSS) é usado como a classe de agendamento para essa zona. No entanto, a forma preferida de usar o FSS neste caso é definir o FSS para ser a classe de agendamento padrão do sistema com o comando dispadmin. Dessa forma, todas as zonas irão se beneficiar de um compartilhamento justo dos recursos de CPU do sistema. Se cpu-shares não estiver definido para uma zona, a zona usará a classe de agendamento padrão do sistema. As seguintes ações definem a classe de agendamento para uma zona:
Na versão Solaris 10 8/07, você pode usar a propriedade scheduling-class em zonecfg para definir a classe de agendamento para a zona.
Você pode definir a classe de agendamento para uma zona através de pools de recursos. Se a zona estiver associada a um pool cuja propriedade pool.scheduler esteja definida como uma classe de agendamento válida, os processos executados na zona serão executados nessa classe de agendamento por padrão. Consulte Introdução a pools de recursos e Como associar um pool a uma classe de agendamento.
Se o controle de recurso cpu-shares estiver definido e o FSS não foi definido como a classe de agendamento para a zona através de outra ação, zoneadmd definirá a classe de agendamento como FSS quando a zona for inicializada.
Se a classe de agendamento não estiver definida através de qualquer outra ação, a zona herdará a classe de agendamento padrão do sistema.
Observe que você pode usar o priocntl descrito na página man priocntl(1) para mover processos em execução para uma classe de agendamento diferente sem alterar a classe de agendamento padrão e sem reinicializar.
O recurso capped-memory define limites para a memória física, de permuta e bloqueada. Cada limite é opcional, mas pelo menos um deve ser definido.
Determine valores para este recurso, se planejar limitar memória para a zona usando rcapd da zona global. A propriedade physical do recurso capped-memory é usada por rcapd como valor max-rss para a zona.
A propriedade swap do recurso capped-memory é a forma preferida de definir o controle de recurso zone.max-swap.
A propriedade locked do recurso capped-memory é a forma preferida de definir o controle de recurso zone.max-locked-memory.
Observação - Os aplicativos geralmente não bloqueiam significativas quantidades de memória, mas você pode decidir definir a memória bloqueada caso os aplicativos da zona bloqueiem memória. Se a segurança da zona for preocupante, você também pode optar por definir o limite de memória bloqueada como 10 por cento da memória física do sistema ou 10 por cento do limite de memória física da zona.
Para obter mais informações, consulte o Capítulo 10, Controle da memória física usando o resource capping daemon (visão geral), o Capítulo 11, Administração do resource capping daemon (tarefas) e Como configurar a zona. Para definir provisoriamente o limite de recurso de uma zona, consulte Como especificar um limite de recurso provisório de uma zona.
Interfaces de rede de zona configuradas pelo comando zonecfg para fornecer conectividade de rede serão configuradas automaticamente e colocadas na zona quando esta for inicializada.
A camada Internet Protocol (IP) aceita e entrega pacotes para a rede. Esta camada inclui roteamento de IP, o Address Resolution Protocol (ARP), a arquitetura de segurança IP (IPsec) e filtro de IP.
Há dois tipos de IP disponíveis para zonas não globais são IP compartilhado e IP exclusivo. A zona com IP compartilhado compartilha a interface de rede e a zona com IP exclusivo deve ter uma interface de rede dedicada.
Para obter informações sobre recursos de IP em cada tipo, consulte Conexão à rede em zonas não globais com IP compartilhado e Oracle Solaris 10 8/07: conexão à rede em zonas não globais com IP exclusivo.
A zonacom IP compartilhado é o tipo padrão. A zona deve ter um ou mais endereços IP dedicados. Uma zona com IP compartilhado compartilha a configuração da camada IP e o estado com a zona global. A zona deverá usar a instância de IP compartilhado se as seguintes condições forem verdadeiras:
A zona deve estar conectada ao link de dados, ou seja, deve estar na mesma sub-rede de IP que a zona global.
Você não deseja outros recursos que a zona com IP exclusivo oferece.
Zonas com IP compartilhado recebem um ou mais endereços IP usando-se o comando zonecfg. Os nomes do link de dados devem também ser configurados na zona global.
Esses endereços são associados a interfaces de rede lógica. O comando ifconfig pode ser usado a partir da zona global para adicionar ou remover interfaces lógicas em uma zona em execução. Para obter mais informações, consulte Interfaces de rede com IP compartilhado.
A funcionalidade total no nível de IP é uma zona com IP exclusivo.
Uma zona com IP exclusivo tem seu próprio estado relacionado ao IP.
Isto inclui a capacidade de usar os seguintes recursos em uma zona com IP exclusivo:
Autoconfiguração de endereço sem informações de estado de DHCPv4 e IPv6
Filtro IP, incluindo a funcionalidade NAT (Network Address Translation)
ndd para definir TCP/UDP/SCTP, assim como botões no nível de IP/ARP
Segurança de IP (IPsec) e Internet Key Exchange (IKE), que automatiza a provisão de material de entrada autenticado para a associação de segurança IPsec
Uma zona com IP exclusivo recebe seu próprio conjunto de links de dados usando-se o comando zonecfg. A zona recebe um nome de link de dados como xge0 , e1000g1, ou bge32001, usando-se a propriedadephysical do recurso net. A propriedade address do recurso net não é definida.
Observe que o link de dados atribuído permite que o comando snoop seja usado.
O comando dladm pode ser usado com o subcomando show-linkprop para mostrar a atribuição de links de dados a zonas com IP exclusivo em execução. O comando dladm pode ser usado com o subcomando set-linkprop para atribuir links de dados adicionais a zonas em execução. Para exemplos de uso, consulte Oracle Solaris 10 8/07: administração de links de dados em zonas não globais com IP exclusivo.
Em uma zona com IP exclusivo em execução, o comando ifconfig pode ser usado para configurar o IP, que inclui a capacidade de adicionar ou remover interfaces lógicas. A configuração de IP em uma zona pode ser definida da mesma forma que para a zona global, usando-se o sysidtools descrito em sysidcfg(4).
Observação - A configuração de IP de uma zona com IP exclusivo só pode ser visualizada a partir da zona global usando-se o comando zlogin. Veja este exemplo.
global# zlogin zone1 ifconfig -a
Em uma zona com IP compartilhado, aplicativos na zona, inclusive o superusuário, não podem enviar pacotes com endereços IP de origem que não sejam os atribuídos à zona através do utilitário zonecfg. Este tipo de zona não tem acesso para enviar e receber pacotes de link de dados arbitrário (camada 2).
Para uma zona com IP exclusivo, zonecfg em vez disso concede à zona o link de dados especificado inteiro. Como resultado, o superusuário em uma zona com IP exclusivo pode enviar pacotes spoof nesses links de dados, assim como isso pode ser feito na zona global.
As zonas com IP compartilhado sempre compartilham a camada IP com a zona global, e as zonas com IP exclusivo sempre têm sua própria instância na camada IP. As zonas com IP compartilhado e as zonas com IP exclusivo podem ser usadas na mesma máquina.
Geralmente, os sistemas de arquivos montados em uma zona incluem o seguinte:
O conjunto de sistemas de arquivos montados quando a plataforma virtual é inicializada
O conjunto de sistemas de arquivos montados a partir do próprio ambiente do aplicativo
Isso pode incluir, por exemplo, os seguintes sistemas de arquivos:
Sistemas de arquivos especificados em um arquivo /etc/vfstab da zona
Montagens acionadas por AutoFS e AutoFS
Montagens executadas explicitamente por um administrador de zonas
Determinadas restrições são colocadas em montagens executadas a partir do ambiente do aplicativo. Essas restrições impedem que o administrador de zonas negue serviços ao restante do sistema, de outra forma exercendo impacto negativo nas outras zonas.
Há restrições de segurança associadas à montagem de determinados sistemas de arquivos a partir de uma zona. Outros sistemas de arquivos apresentam comportamento especial quando montados em uma zona. Para obter mais informações, consulte Sistemas de arquivos e zonas não globais.
Observação - Uma configuração de zona não global nativa que inclui um sistema de arquivos /var separado não é suportada no Oracle Solaris 10. O comando patchadd e zoneadm install, detach, attach e atualização em opções de anexação podem falhar em um sistema com essa configuração. Consulte Montagem do administrador de zonas sobre sistemas de arquivos preenchidos pela zona global para obter informações adicionais sobre configurações com e sem suporte.
O comando zonecfg usa um sistema de coincidência de regras para especificar quais dispositivos devem aparecer em determinada zona. Os dispositivos que atendem a uma das regras são incluídos no sistema de arquivos /dev da zona. Para obter mais informações, consulte Como configurar a zona.
Você pode configurar uma propriedade hostid para uma zona não global diferente a partir do hostid da zona global. Isso seria feito se uma máquina física fosse consolidada em uma zona utilizando a capacidade física para virtual. Os aplicativos, agora dentro da zona, podem depender do hostid original e não seria possível atualizar a configuração do aplicativo. Consulte Tipos de recurso e propriedade para mais informações.
O administrador global pode definir controles de recursos gerais de zona privilegiados para uma zona. Os controles de recursos de zona limitam o uso total de recursos de todas as entidades de processamento dentro de uma zona.
Esses limites são especificados para zonas globais e não globais usando-se o comando zonecfg. Consulte Como configurar a zona.
A partir da versão Solaris 10 8/07, o método preferido, mais simples, para definir o controle de recursos de zona é usar o nome da propriedades em vez do recurso rctl.
Solaris 10 5/08: O controle de recursos zone.cpu-cap define um limite absoluto na quantidade de recursos da CPU que podem ser consumidos por uma zona. Um valor 100 significa 100% de uma CPU como a definição project.cpu-cap. Um valor 125 é 125% pois 100% corresponde a uma CPU completa no sistema durante o uso de caps de CPU.
Observação - Ao definir o recurso capped-cpu, você pode usar um número decimal para a unidade. O valor se correlaciona ao controle de recursos zone.capped-cpu, mas a definição é diminuída por 100. A definição 1 é equivalente a uma definição 100 para o controle de recursos.
O controle de recurso zone.cpu-shares define um limite para o número de compartilhamentos de CPU do fair share scheduler (FSS) para uma região. Os compartilhamentos de CPU são primeiro alocados para a zona e, em seguida, subdivididos entre projetos dentro da zona como especificado nas entradas project.cpu-shares. Para obter mais informações, consulte Usando o Fair Share Scheduler em um sistema Oracle Solaris com zonas instaladas. O nome da propriedade global para este controle é cpu-shares.
O controle de recurso zone.max-locked-memory limita a quantidade de memória física bloqueada disponível para uma região. A alocação do recurso de memória entre projetos dentro da região pode ser controlada usando-se o controle de recurso project.max-locked-memory. Para obter mais informações, consulte a Tabela 6-1
O controle de recurso zone.max-lwps aprimora o isolamento do recurso impedindo que demasiadas LWPs em uma zona afetem outras zonas. A alocação do recurso LWP entre projetos dentro da zona pode ser controlada usando-se o controle de recurso project.max-lwps. Para obter mais informações, consulte a Tabela 6-1 O nome da propriedade global para este controle é max-lwps.
Os controles de recurso zone.max-msg-ids, zone.max-sem-ids , zone.max-shm-ids e zone.max-shm-memory são usados para limitar os recursos V de sistema usados por todos os processos dentro de uma zona. A alocação de recursos V de sistema entre projetos dentro da zona pode ser controlada usando-se as versões de projeto desses controles de recursos. Os nomes da propriedade global para esses controles são max-msg-ids, max-sem-ids, max-shm-ids e max-shm-memory.
O controle de recurso zone.max-swap limita permuta consumida por mapeamentos de espaço de endereço de processos do usuário e montagens tmpfs dentro de uma zona. A saída de prstat -Z exibe uma coluna SWAP. A permuta relatada é a permuta total consumida pelos processos da zona e pelas montagens tmpfs. Esse valor auxiliar na monitoração da permuta reservada por zona, que pode ser usada para escolher uma configuração de zone.max-swap apropriada.
Tabela 17-1 Controles de recursos de zona
|
Esses limites podem ser especificados para processos em execução usando-se o comando prctl . Um exemplo é fornecido em Como definir compartilhamentos FSS na zona global usando o comando prctl. Limites especificados através do comando prctl não são persistentes. Os limites estão em vigor somente até o sistema ser reinicializado.
Quando uma zona é inicializada, um conjunto padrão de privilégios safe é incluído na configuração. Esses privilégios são considerados seguros porque eles impedem que um processo privilegiado na zona afete processos em outras zonas não globais no sistema ou na zona global. Você também pode usar o comando zonecfg para fazer o seguinte:
Adicionar ao conjunto de privilégios padrão, tendo em conta que tais alterações podem fazer com que os processos de uma zona afetem os processos de outras zonas por serem capazes de controlar um recurso global.
Remover do conjunto de privilégios padrão, tendo em conta que tais alterações podem impedir que alguns processos funcionem corretamente, se requererem que esses privilégios sejam executados.
Observação - Há alguns privilégios que não podem ser removidos do conjunto de privilégios padrão da zona, e também há alguns privilégios que não podem ser adicionados ao conjunto neste momento.
Para obter mais informações, consulte Privilégios em uma zona não global, Como configurar a zona e privileges(5).
Você também pode adicionar um comentário para uma zona usando o tipo de recurso attr. Para obter mais informações, consulte Como configurar a zona.