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

Capítulo 17 Configuração de região não global (visão geral)

Este capítulo apresenta uma introdução à configuração de uma região global.

Os tópicos a seguir são tratados neste capítulo:

Após se informar sobre configuração de região, vá para o Capítulo 18Planejamento e configuração de regiões não globais (tarefas) para configurar regiões não globais para instalação em seu sistema.

Para obter informações sobre a configuração de região com marca lx, consulte o Capítulo 32Planejamento da configuração da região com marca lx (visão geral) e o Capítulo 33Configuração da região com marca lx (tarefas).

O que há de novo neste capítulo?

Solaris 10 6/06: Foi adicionado suporte ao sistema de arquivos ZFS, incluindo a capacidade de adicionar um recurso de conjunto de dados em uma região não global nativa. Para obter mais informações, consulte Propriedades de tipo de recursos.

Solaris 10 11/06: Foi adicionado suporte a privilégios configuráveis. Consulte Solaris 10 11/06 e versões posteriores: Privilégios configuráveis.

Solaris 10 8/07: Suporte para os seguintes recursos foi adicionado ao comando zonecfg:

Solaris 10 10/08: A propriedade defrouter foi adicionada ao recurso net no utilitário zonecfg para regiões não globais com IP compartilhado. Você pode definir o roteador padrão da interface de rede neste procedimento.

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.

Sobre recursos em regiões

Uma região que inclui funções de gerenciamento de recursos é chamada de recipiente. Os recursos que podem ser controlados em um recipiente incluem os seguintes:

Processo de configuração de pré-instalação

Antes de poder instalar uma região não global e usá-la no sistema, a região deve ser configurada.

O comando zonecfg é usado para criar a configuração e para determinar se os recursos e as propriedades especificados são válidos em um sistema hipotético. A verificação realizada por zonecfg para uma dada configuração examina o seguinte:

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

Componentes de região

Esta seção aborda os componentes de região necessários e opcionais que podem ser configurados. Informações adicionais são fornecidas em Dados de configuração de região.

Nome e caminho de região

É necessário escolher um nome e um caminho para a região.

Inicialização automática de região

A configuração da propriedade autoboot determina se a região é inicializada automaticamente quando uma região global é inicializada. Os serviços de região svc:/system/zones:default também devem ser ativados.

Associação de grupo de recursos

Se você configurou grupos de recursos no sistema como descrito no Capítulo 13Criação e administração de grupos de recursos (tarefas), pode usar a propriedade pool para associar a região a um dos grupos de recursos ao configurar a região.

A partir da versão Solaris 10 8/07, se grupos de recursos não estiverem configurados, você ainda pode especificar que um subconjunto dos processadores do sistema seja dedicado a uma região não global quando estiver em execução ao usar o recurso dedicated-cpu. O sistema criará dinamicamente um grupo temporário para uso enquanto a região 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 região que use um grupo persistente definido através da propriedade pool é incompatível com um grupo temporário configurado através do recurso dedicated-cpu. Você pode definir somente uma destas duas propriedades.


Solaris 10 8/07: recurso dedicated-cpu

O recurso dedicated-cpu especifica que um subconjunto dos processadores do sistema devem ser dedicados a uma região não global enquanto estiver em execução. Quando a região for inicializada, o sistema criará dinamicamente um grupo temporário para uso enquanto a região 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.

ncpus

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 grupo de recursos, faça também o seguinte:

importance

Se estiver usando um intervalo de para obter 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 grupos 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.


Solaris 10 5/08: recurso capped-cpu

O recurso capped-cpu oferece um limite absoluto na quantidade de recursos da CPU que podem ser consumidos por um projeto ou uma região. 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.


Classe de agendamento em uma região

Você pode usar o fair share scheduler (FSS) para controlar a alocação dos recursos de CPU disponíveis entre regiões, com base na importância das cargas de trabalho na região. Essa importância da carga de trabalho é expressa pelo número de compartilhamentos de recursos de CPU que você atribui a cada região. Mesmo que não esteja usando o FSS para gerenciar alocação de recursos de CPU entre regiões, você pode definir a classe de agendamento da região para usar o FSS, de modo que possa definir compartilhamentos em projetos dentro da região.

Quando você define explicitamente a propriedade cpu-shares, o fair share scheduler (FSS) é usado como a classe de agendamento para essa região. 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. Desta forma todas as regiões irão se beneficiar de um compartilhamento justo dos recursos de CPU do sistema. Se cpu-shares não estiver definido para uma região, a região usará a classe de agendamento padrão do sistema. As ações a seguir definem a classe de agendamento para uma região:

Observe que você pode usar o priocntl descrito na página do manual 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.

Solaris 10 8/07: controle da memória física e o recurso capped-memory

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.


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 região bloqueiem memória. Se a segurança da região 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 região.


Para obter mais informações, consulte o Capítulo 10Controle da memória física usando o resource capping daemon (visão geral), Capítulo 11Administração do resource capping daemon (tarefas) e Como configurar a região. Para definir provisoriamente o limite de recurso de uma região, consulte Como especificar um limite de recurso provisório de uma região.

Interfaces de rede de região

Interfaces de rede de região configuradas pelo comando zonecfg para fornecer conectividade de rede serão configuradas automaticamente e colocadas na região 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 regiões não globais são IP compartilhado e IP exclusivo. A região com IP compartilhado compartilha a interface de rede e a região 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 regiões não globais com IP compartilhado e Solaris 10 8/07: conexão à rede em regiões não globais com IP exclusivo.

Regiões não globais com IP compartilhado

A região com IP compartilhado é o tipo padrão. A região deve ter um ou mais endereços IP dedicados. Uma região com IP compartilhado compartilha a configuração da camada IP e o estado com a região global. A região deve usar a instância de IP compartilhado se ambos que se segue for verdadeiro:

Regiões 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 região global.

Esses endereços são associados a interfaces de rede lógica. O comando ifconfig pode ser usado a partir da região global para adicionar ou remover interfaces lógicas em uma região em execução. Para obter mais informações, consulte Interfaces de rede com IP compartilhado.

Solaris 10 8/07: regiões não globais com IP exclusivo

A funcionalidade total no nível de IP é uma região com IP exclusivo.

Uma região com IP exclusivo tem seu próprio estado relacionado a IP.

Isto inclui a capacidade de usar os seguintes recursos em uma região com IP exclusivo:

Uma região com IP exclusivo recebe seu pr≤prio conjunto de links de dados usando-se o comando zonecfg. A região 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 regiões com IP exclusivo em execução. O comando dladm pode ser usado com o subcomando set-linkprop para atribuir links de dados adicionais a regiões em execução. Para exemplos de uso, consulte Solaris 10 8/07: administração de links de dados em regiões não globais com IP exclusivo.

No interior de uma região com IP exclusivo em execução, o comando ifconfig pode ser usado para configurar IP, que inclui a capacidade de adicionar ou remover interfaces lógicas. A configuração de IP em uma região pode ser definida da mesma forma que para a região global, usando-se o sysidtools descrito em sysidcfg(4).


Observação –

A configuração de IP de uma região com IP exclusivo pode somente ser visualizada a partir da região global usando-se o comando zlogin. Segue-se um exemplo.


global# zlogin zone1 ifconfig -a

Diferenças de segurança entre regiões não globais com IP compartilhado e IP exclusivo

Em uma região com IP compartilhado, aplicativos na região, inclusive o superusuário, não podem enviar pacotes com endereços IP de origem que não sejam os atribuídos à região através do utilitário zonecfg. Este tipo de região não tem acesso para enviar e receber pacotes de link de dados arbitrário (camada 2).

Para uma região com IP exclusivo, zonecfg em vez disso concede à região o link de dados especificado inteiro. Como resultado, o superusuário em uma região com IP exclusivo pode enviar pacotes spoof nesses links de dados, assim como isso pode ser feito na região global.

Uso de regiões não globais com IP compartilhado e IP exclusivo ao mesmo tempo

As regiões com IP compartilhado sempre compartilham a camada IP com a região global, e as regiões com IP exclusivo sempre têm sua própria instância na camada IP. As regiões com IP compartilhado e as regiões com IP exclusivo pode ser usadas na mesma máquina.

Sistemas de arquivos montados em regiões

Geralmente, os sistemas de arquivos montados em uma região incluem o seguinte:

Isso pode incluir, por exemplo, os seguintes sistemas de arquivos:

Determinadas restrições são colocadas em montagens executadas a partir do ambiente do aplicativo. Essas restrições impedem que o administrador de regiões negue serviços ao resto do sistema, de outra forma exercendo impacto negativo sobre outras regiões.

Há restrições de segurança associadas à montagem de determinados sistemas de arquivos a partir de uma região. Outros sistemas de arquivos expõem comportamento especial quando montados em uma região. Para obter mais informações, consulte Sistemas de arquivos e regiões não globais.

Dispositivos configurados em regiões

O comando zonecfg usa um sistema de coincidência de regras para especificar quais dispositivos devem aparecer em uma determinada região. Os dispositivos que atendem a uma das regras são incluídos no sistema de arquivos /dev da região. Para obter mais informações, consulte Como configurar a região.

Host ID em regiões

Você pode configurar uma propriedade hostid para uma região não global diferente a partir do hostid da região global. Isso seria feito se uma máquina física fosse consolidada em uma região utilizando a capacidade física para virtual. Os aplicativos, agora dentro da região, 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.

Definição de controles de recursos de região geral

O administrador global pode definir controles de recursos de região geral privilegiados para uma região. Os controles de recursos gerais de região limitam o uso total de recursos de todas as entidades de processamento dentro de uma região.

Esses limites são especificados para regiões globais e não globais usando-se o comando zonecfg. Consulte Como configurar a região.

A partir da versão Solaris 10 8/07, o método preferido, mais simples, para definir o controle de recurso de região geral é 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 região. 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 região e, em seguida, subdivididos entre projetos dentro da região como especificado nas entradas project.cpu-shares. Para obter mais informações, consulte Uso do fair share scheduler em um sistema do Solaris com regiões 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 região afetem outras regiões. A alocação do recurso LWP entre projetos dentro da região 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 região. A alocação de recursos V de sistema entre projetos dentro da região 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 região. A saída de prstat -Z exibe uma coluna SWAP. A permuta relatada é a permuta total consumida pelos processos da região e pelas montagens tmpfs. Esse valor auxiliar na monitoração da permuta reservada por região, que pode ser usada para escolher uma configuração de zone.max-swap apropriada.

Tabela 17–1 Controles de recursos gerais de região

Nome do controle 

Nome da propriedade global 

Descrição 

Unidade padrão 

Valor usado para 

zone.cpu-cap

 

Solaris 10 5/08: Limite absoluto na quantidade de recursos de CPU dessa região.

Quantidade (número de CPUs), expressa como uma porcentagem 


Observação –

Ao definir o recurso capped-cpu, você pode usar um número decimal para a unidade.


 

zone.cpu-shares

cpu-shares

Número de partilhas de CPU do fair share scheduler (FSS) para esta região. 

Quantidade (compartilhamentos) 

 

zone.max-locked-memory

 

Quantidade total de memória física bloqueada disponível para uma região. 

Se priv_proc_lock_memory for atribuído a uma região, configure também este controle de recurso para impedir que a região bloqueie a memória inteira.

Tamanho (bytes) 

propriedade locked de capped-memory.

zone.max-lwps

max-lwps

Número máximo de LWPs disponíveis simultaneamente para esta região. 

Quantidade (LWPs) 

 

zone.max-msg-ids

max-msg-ids

Número máximo de IDs de fila de mensagens permitido para esta região. 

Quantidade (IDs de fila de mensagens) 

 

zone.max-sem-ids

max-sem-ids

Número máximo de IDs de semáforo permitido para esta região. 

Quantidade (IDs de semáforo) 

 

zone.max-shm-ids

max-shm-ids

Número máximo de IDs de memória compartilhada permitido para esta região. 

Quantidade (IDs de memória compartilhada) 

 

zone.max-shm-memory

max-shm-memory

Quantidade total de memória compartilhada V de sistema para esta região. 

Tamanho (bytes) 

 

zone.max-swap

 

Quantidade total de permuta que pode ser consumida por mapeamentos de espaço de endereço de processamento de usuário e por montagens tmpfs para esta região.

Tamanho (bytes) 

propriedade swap de capped-memory

Esses limites podem ser especificados para processos em execução usando-se o comando prctl . Um exemplo é fornecido em Como definir compartilhamentos FSS na região 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.

Solaris 10 11/06 e versões posteriores: Privilégios configuráveis

Quando uma região é 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 região afete processos em outras regiões não globais no sistema ou na região global. Você também pode usar o comando zonecfg para fazer o seguinte:


Observação –

Há alguns privilégios que não podem ser removidos do conjunto de privilégios padrão da região, 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 região não global, Como configurar a região e privileges(5).

Inclusão de comentário para uma região

Você também pode adicionar um comentário para uma região usando o tipo de recurso attr. Para obter mais informações, consulte Como configurar a região.

Uso do comando zonecfg

O comando zonecfg, que é descrito na página do manual zonecfg(1M), é usado para configurar uma região não global. Na versão Solaris 10 8/07, este comando também pode ser usado para especificar persistentemente as configurações de gerenciamento de recursos para a região global.

O comando zonecfg pode ser usado no modo interativo, no modo linha de comando ou no modo arquivo de comando. As seguintes operações podem ser executadas usando-se este comando:

O prompt zonecfg é da seguinte forma:


zonecfg:zonename>

Quando você configura um tipo de recurso específico, como um sistema de arquivos, esse tipo de recurso também é incluído no prompt:


zonecfg:zonename:fs>

Para obter mais informações, incluindo procedimentos que mostram como usar os vários componentes de zonecfg descritos neste capítulo, consulte o Capítulo 18Planejamento e configuração de regiões não globais (tarefas).

Modos de zonecfg

O conceito de um escopo é usado para a interface do usuário. O escopo pode ser global ou específico do recurso. O escopo padrão é global.

No escopo global, o subcomando add e o subcomando select são usados para selecionar um recurso específico. O escopo depois se altera para o do tipo de recurso.

O escopo depois reverte para global.

Determinados subcomandos, como add, remove e set, têm semânticas diferentes em cada escopo.

Modo interativo de zonecfg

No modo interativo, os subcomandos a seguir têm suporte. Para obter informações detalhadas sobre semântica e opções usadas com os subcomandos, consulte a página do manual zonecfg(1M) para opções. Para qualquer subcomando que possa resultar em ações destrutivas ou em perda de trabalho, o sistema solicita a confirmação do usuário antes de prosseguir. Você pode usar a opção -F (forçar) para ignorar esta confirmação.

help

Imprime ajuda geral ou exibe ajuda sobre um determinado recurso.


zonecfg:my-zone:inherit-pkg-dir> help
create

Comece a definir a configuração de uma memória para a nova região especificada para um destes propósitos:

  • Aplicar as configurações padrão da a uma nova configuração. Este método é o padrão.

  • Com a opção -t template, para criar uma configuração que é idêntica ao modelo especificado. O nome da região é alterado do nome do modelo para o novo nome da região.

  • Com a opção -F, para substituir uma configuração existente.

  • Com a opção -b, para criar uma configuração em branco em que nada é definido.

export

Imprime a configuração em saída padrão, ou no arquivo de saída especificado, em uma forma que pode ser usada em um arquivo de comando.

add

No escopo global, adicione o tipo de recurso especificado para a configuração.

No escopo de recurso, adicione uma propriedade do nome dado com o valor dado.

Para obter mais informações, consulte Como configurar a região e a página do manual zonecfg(1M).

set

Define um nome de propriedade dado como o valor de propriedade dado. Observe que algumas propriedades, como zonepath, são globais, enquanto outras são específicas do recurso. Assim, este comando é aplicável nos escopos global e de recurso.

select

Aplicável somente no escopo global. Selecione o recurso do tipo dado que coincida com os critérios do par de valores nome-propriedade de uma dada propriedade para modificação. O escopo é alterado para esse tipo de recurso. É necessário especificar um número suficiente de pares nome-valor da propriedade para o recurso ser identificado com exclusividade.

clear

Solaris 10 8/07: Limpa o valor para configurações opcionais. Configurações necessárias não podem ser limpas. No entanto, algumas configurações necessárias podem ser alteradas pela atribuição de um novo valor.

remove

No escopo global, remove o tipo de recurso especificado. É necessário especificar um número suficiente de pares nome-valor da propriedade para o tipo de recurso ser identificado com exclusividade. Se nenhum par nome-valor da propriedade for especificado, todas as instâncias serão removidas. Se existir mais de uma, será necessária uma confirmação, a não ser que a opção -F seja usada.

No escopo de recurso, remova do recurso atual o valor nome-propriedade especificado da propriedade.

end

Aplicável somente no escopo de recurso. Finaliza a especificação do recurso.

O comando zonecfg verifica a seguir se o recurso atual está totalmente especificado.

  • Se o recurso estiver totalmente especificado, ele será adicionado à configuração na memória e o escopo irá reverter para global.

  • Se a especificação estiver incompleta, o sistema exibirá uma mensagem de erro que descreve o que é necessário fazer.

cancel

Aplicável somente no escopo de recurso. Finaliza a especificação do recurso e redefine o escopo como global. Quaisquer recursos especificados parcialmente não serão retidos.

delete

Destrói a configuração especificada. Exclui a configuração da memória e do armazenamento. É necessário usar a opção -F (forçar) com delete.


Cuidado – Cuidado –

Esta ação é instantânea. Nenhum comprometimento é necessário, e uma região excluída não pode ser revertida.


info

Exibe informações sobre a configuração atual ou as propriedades de recurso global zonepath, autoboot e pool. Se um tipo de recurso estiver especificado, exibe informações somente sobre recursos desse tipo. No escopo de recurso, este subcomando se aplica somente ao recurso que está sendo adicionado ou modificado.

verify

Verifica a correção da configuração atual. Assegura que todos os recursos tenham todas as propriedades necessárias especificadas.

commit

Envia a configuração atual da memória para o armazenamento. Até a configuração na memória ser enviada, alterações podem ser removidas com o subcomando revert. É necessário que uma configuração seja enviada para ser usada pelo zoneadm. Há uma tentativa automática desta operação quando você conclui uma sessão zonecfg. Uma vez que somente uma configuração correta pode ser comprometida, a operação de comprometimento executa automaticamente uma verificação.

revert

Reverte a configuração para o último estado de comprometido.

exit

Sai da sessão zonecfg. Você pode usar a opção -F (forçar) com exit.

Há uma tentativa automática de commit, se necessário. Observe que um caractere EOF também pode ser usado para sair da sessão.

Modo de comando de arquivo zonecfg

No modo de comando de arquivo, a entrada é tomada de um arquivo. O subcomando export descrito em Modo interativo de zonecfg é usado para produzir este arquivo. A configuração pode ser impressa na saída padrão, ou a opção -f pode ser usada para especificar um arquivo de saída.

Dados de configuração de região

Os dados de configuração da região estão formados por dois tipos de entidades, recursos e propriedades. Cada recurso tem um tipo, e cada recurso também tem um conjunto ou mais de propriedades. As propriedades têm nomes e valores. O conjunto de propriedades é dependente do tipo de recurso.

Tipos de recurso e propriedade

Os tipos de recurso e propriedade são descritos como a seguir:

Nome da região

O nome da região identifica a região para o utilitário de configuração. As regras seguintes aplicam-se a nomes de regiões:

  • Cada região deve ter um nome exclusivo.

  • Um nome de região diferencia maiúsculas de minúsculas.

  • Um nome de região deve começar com um caractere alfanumérico.

    O nome pode conter caracteres alfanuméricos, barras inferiores (_), hifens (-) e pontos (.).

  • O nome não pode ter mais de 64 caracteres.

  • O nome global e todos os nomes que começam com SUNW são reservados e não podem ser usados.

zonepath

A propriedade zonepath é o caminho que contém a raiz da região. Cada região possui um diretório raiz que reside no sistema de arquivos da região global sob sua zonepath. No momento da instalação da região, a hierarquia de diretório zonepath será criada com o proprietário e modo apropriados.. O diretório zonepath é exigido para pertencer a raiz com o modo700.

O caminho para a raiz da região global é um nível inferior. O diretório raiz da região tem as mesmas posses e permissões que o diretório raiz ( /) na região global. O diretório da região deve ser pertencente a root com o modo 755. Esses diretórios são criados automaticamente com as permissões corretas e não requerem verificação pelo administrador de regiões. Esta hierarquia garante que usuários não privilegiados na região global não atravessem um sistema de arquivos da região não global.

Caminho 

Descrição 

/home/export/my-zone

zonecfg zonepath

/home/export/my-zone/root

Raiz da região 

/home/export/my-zone/dev

Dispositivos criados para a região 

Consulte Atravessamento de sistemas de arquivos para mais discussões sobre esta questão.


Observação –

Consulte 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 para restrições de ZFS nestas versões.


autoboot

Se esta propriedade estiver definida para verdadeira, a região será inicializada automaticamente quando a região global for inicializada. Observe que se o serviço de regiões svc:/system/zones:default estiver desativado, a região não será inicializada automaticamente, independentemente da configuração desta propriedade. Você pode ativar o serviço de regiões com o comando svcadm descrito na página do manual svcadm(1M):


global# svcadm enable zones
bootargs

Solaris 10 8/07: Esta propriedade é usada para definir um argumento de inicialização para a zona. O argumento de inicialização é aplicado, a menos que seja ignorada pelos comando reboot, zoneadm boot ou zoneadm reboot. Consulte Solaris 10 8/07: argumentos de inicialização de região.

pool

Esta propriedade é usada para associar a região a um grupo de recursos no sistema. Várias regiões podem compartilhar os recursos de um grupo. Consulte também Solaris 10 8/07: recurso dedicated-cpu.

limitpriv

Solaris 10 11/06 e posterior: Esta propriedade é usada para especificar uma máscara de privilégio diferente da padrão. Consulte Privilégios em uma região não global.

Privilégios são adicionados especificando-se o nome do privilégio, com ou sem o primeiro priv_. Privilégios são excluídos precedendo-se o nome com um traço (-) ou um sinal de exclamação (!). Os valores de um privilégio são separados por vírgulas e colocados entre aspas ().

Como descrito em priv_str_to_set(3C), os conjuntos de privilégios especiais de none, all e basic expandem-se para as definições normais. Uma vez que a configuração de região deriva da região global, o conjunto de privilégios especiais zone não pode ser usado. Visto que um uso comum é alterar o conjunto de privilégios padrão adicionando ou removendo determinados privilégios, o conjunto especial default mapeia para o padrão, conjunto de privilégios. Quando default aparece no início da propriedade limitpriv, ele expande-se para o conjunto padrão.

A entrada seguinte adicionar a capacidade para usar programas do DTrace que somente requerem os privilégios dtrace_proc e dtrace_user na região:


global# zonecfg -z userzone
zonecfg:userzone> set limitpriv="default,dtrace_proc,dtrace_user"

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 privilégio desconhecido, uma tentativa de verificação, pronto ou inicialização da região irá falhar com uma mensagem de erro.

scheduling-class

Solaris 10 8/07: Esta propriedade define a classe de agendamento para a região. Para obter informações adicionais e dicas, consulte Classe de agendamento em uma região.

ip-type

Solaris 10 8/07: É necessário que esta propriedade seja definida somente se a região for uma região com IP exclusivo. Consulte Solaris 10 8/07: regiões não globais com IP exclusivo e Como configurar a região.

dedicated-cpu

Solaris 10 8/07: Este recurso dedica um subconjunto de processadores do sistema à região enquanto está em execução. O recurso dedicated-cpu fornece limites para ncpus e, opcionalmente, importância . Para obter mais informações, consulte Solaris 10 8/07: recurso dedicated-cpu.

capped-cpu resource

Solaris 10 5/08: Este recurso define um limite na quantidade de recursos da CPU que podem consumidos pela região durante a sua execução. O recurso fornece um limite para ncpus.

recurso capped-memory

Solaris 10 8/07: Este recurso agrupa as propriedades usadas ao se limitar a memória para a região. O recurso capped-memory fornece limites para a memória física, de permuta e bloqueada. Pelo menos uma destas propriedades deve ser especificada.

dataset

Solaris 10 6/06: A adição do recurso de conjunto de dados do sistema de arquivos do ZFS permite a delegação da administração do armazenamento a uma região não global. O administrador de região pode criar e destruir sistemas de arquivos dentro desse conjunto de dados, criar e destruir clones e modificar as propriedades do conjunto de dados. O administrador da região não pode afetar conjuntos de dados que foram adicionados à região ou excederam quaisquer cotas de nível superior no conjunto de dados atribuído à região.

Conjuntos de dados do ZFS podem ser adicionados a uma região nas seguintes maneiras.

  • Como um sistema de arquivos montado lofs, quando o objeto é unicamente compartilhar espaço com a região global

  • Como um conjunto de dados delegado

Consulte o Capítulo 10, Tópicos avançados do ZFS do Oracle Solaris, no Guia de administração do ZFS Oracle Solaris e Sistemas de arquivos e regiões não globais.

Para obter informações sobre problemas do conjunto de dados, consulte também o Capítulo 30Soluções diversas de problemas do Solaris Zones.

fs

Cada região pode ter vários sistemas de arquivos que são montados quando a região passada do estado de instalado para o estado de pronto. O recurso do sistema de arquivos especifica o caminho para o ponto de montagem do sistema de arquivos. Para obter mais informações sobre o uso de sistemas de arquivos em regiões, consulte Sistemas de arquivos e regiões não globais.

inherit-pkg-dir

Este recurso não deve ser configurado em uma zona raiz inteira.

Em uma zona raiz inteira, o recurso inherit-pkg-dir é usado para representar diretórios que contêm pacote de software que uma região não global compartilha com a região global.

O conteúdo dos pacotes de software transferidos para o diretório inherit-pkg-dir é herdado no modo somente leitura pela região não global. O banco de dados de empacotamento da região é atualizado para refletir os pacotes. Estes recursos não podem ser modificados ou removidos após a região ter sido instalada usando-se zoneadm.


Observação –

Por padrão, recursos inherit-pkg-dir são incluídos na configuração. Estes recursos de diretório indicam quais diretórios devem ter pacotes associados herdados da região global. Os recursos são implementados através de uma montagem de sistema de arquivos com auto-retorno somente leitura.

  • /lib

  • /platform

  • /sbin

  • /usr


net

O recurso de interface de rede é o nome da interface virtual. Cada região pode ter interfaces de rede que devem ser configuradas quando a região passa do estado de instalado para o estado de pronto.

device

O recurso de dispositivo é o especificador de coincidência de dispositivo. Cada região pode ter dispositivos que devem ser configurados quando a região passa do estado de instalado para o estado de pronto.

rctl

O recurso rctl é usado para controles gerais de região. Os controles são ativados quando a região passa do estado de instalado para o estado de pronto.

hostid

Um hostid que é diferente dohostid da região global pode ser configurado.

attr

Este atributo genérico pode ser usado para comentários de usuário ou por outros subsistemas. A propriedade name de um attr deve começar com um caractere alfanumérico. A propriedade name pode conter caracteres alfanuméricos, hifens (-) e pontos (.). Nomes de atributos iniciados com zone. são reservados para uso pelo sistema.

Propriedades de tipo de recursos

Recursos também têm propriedades a serem configuradas. As propriedades a seguir estão associadas aos tipos de recursos mostrados.

dedicated-cpu

ncpus, importance

Solaris 10 8/07: Especifica o número de CPUs e, opcionalmente, a importância relativa do grupo. O exemplo a seguir especifica um intervalo de CPU a ser usado pela região my-zone. importance é também definido.


zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-3
zonecfg:my-zone:dedicated-cpu> set importance=2
zonecfg:my-zone:dedicated-cpu> end
capped-cpu

ncpus

Especifica o número de CPUs. O exemplo seguinte especifica um cap de CPU de 3,5 CPUs a ser usado pela região my-zone.


zonecfg:my-zone> add capped-cpu
zonecfg:my-zone:capped-cpu> set ncpus=3.5
zonecfg:my-zone:capped-cpu> end
capped-memory

physical, swap, locked

Especifica os limites de memória para a regiãomy-zone. Cada limite é opcional, mas pelo menos um deve ser definido.


zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=50m
zonecfg:my-zone:capped-memory> set swap=100m
zonecfg:my-zone:capped-memory> set locked=30m
zonecfg:my-zone:capped-memory> end
fs

dir, special, raw, type, options

Os parâmetros do recurso fs fornecem os valores para determinar como e onde montar sistemas de arquivos. Os parâmetros de fs são definidos como a seguir:

dir

Especifica o ponto de montagem para o sistema de arquivos

special

Especifica o nome do dispositivo especial de bloco ou o diretório da região global a ser montada

raw

Especifica o dispositivo básico no qual executar fsck antes da montagem do sistema de arquivos

type

Especifica o tipo de sistema de arquivos

options

Especifica opções de montagem semelhantes às encontradas com o comando mount

As linhas no exemplo seguinte especificam que /dev/dsk/c0t0d0s2 na região global deve ser montado como /mnt em uma região que está sendo configurada. A propriedade raw especifica um dispositivo opcional no qual o comando fsck será executado antes de se fazer uma tentativa de montar o sistema de arquivos. O tipo de sistema de arquivos a ser usado é UFS. As opções nodevices e logging são adicionadas.


zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/mnt
zonecfg:my-zone:fs> set special=/dev/dsk/c0t0d0s2
zonecfg:my-zone:fs> set raw=/dev/rdsk/c0t0d0s2
zonecfg:my-zone:fs> set type=ufs
zonecfg:my-zone:fs> add options [nodevices,logging]
zonecfg:my-zone:fs> end

Para obter mais informações, consulte A opção -o nosuid , Restrições de segurança e comportamento do sistema de arquivos, e as páginas do manual fsck(1M) e mount(1M). Observe também que as páginas do manual da seção 1M estão disponíveis para opções de montagem que são exclusivas de um sistema de arquivos específico. Os nomes dessas páginas do manual têm a forma mount_filesystem.


Observação –

Para adicionar um sistema de arquivos ZFS utilizando a propriedade do recurso fs, consulte Adicionando sistemas de arquivos ZFS a uma região não global no Guia de administração do ZFS Oracle Solaris.


dataset

nome

As linhas no exemplo seguinte especificam que o conjunto de dados sales será visível e montado na região não global e não mais visível na região global.


zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
inherit-pkg-dir

dir

As linhas no exemplo seguinte especificam que /opt/sfwserá montado com auto-retorno a partir da região global.


zonecfg:my-zone> add inherit-pkg-dir
zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/sfw
zonecfg:my-zone:inherit-pkg-dir> end
net

address, physical, defrouter


Observação –

para uma região com IP compartilhado, o endereço IP e o dispositivo são especificados. Como opção, o roteador padrão pode ser definido.

  • A propriedade defrouter pode ser utilizada para configurar uma rota padrão quando a região não global estiver em uma subrede que não está configurada na região global.

  • Qualquer região que possua o conjunto de propriedades defrouter deve estar em uma subrede que não está configurada na região global.

Quando houver regiões de IP compartilhado em subredes diferentes, não configure um link de dados na região global.

Para uma região com IP exclusivo, somente a interface física é especificada. A propriedade física pode ser uma VNIC.


No exemplo seguinte para uma região com IP compartilhado, o endereço IP 192.168.0.1 é adicionado à região. Um placa hme0 é usada para a interface física. Para determinar a interface física a ser usada, digite ifconfig - a em seu sistema. Cada linha da saída, que não linhas do driver de auto-retorno, começa com o nome de uma placa instalada em seu sistema. Linhas que contêm LOOPBACK nas descrições não se aplicam a placas.


zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=hme0
zonecfg:my-zone:net> set address=192.168.0.1
zonecfg:my-zone:net> end

No exemplo seguinte para uma região com IP exclusivo, um link bge32001 é usado para a interface física. Para determinar quais links de dados estão disponíveis, use o comando dladm show-link. O link de dados deve ser GLDv3 para ser usado com regiões com IP exclusivo, e links de dados não GLDv3 aparecem como type: legacy na saída dladm show-link. Observe que ip-type=exclusive também deve ser especificado.


zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add net
zonecfg:my-zone:net> set physical=bge32001
zonecfg:my-zone:net> end
device

match

No exemplo seguinte, um dispositivo /dev/pts é incluído em uma região.


zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/pts*
zonecfg:my-zone:device> end
rctl

name, value

Solaris 10 8/07: Novos controles de recursos para esta versão são zone.max-locked-memory, zone.max-msg-ids , zone.max-sem-ids, zone.max-shm-ids, zone.max-shm-memory e zone.max-swap.

Os seguintes controles de recursos de região geral estão disponíveis:

  • zone.cpu-shares (preferido: cpu-shares )

  • zone.max-locked-memory

  • zone.max-lwps (preferido: max-lwps)

  • zone.max-msg-ids (preferido: max-msg-ids )

  • zone.max-sem-ids (preferido: max-sem-ids )

  • zone.max-shm-ids (preferido: max-shm-ids )

  • zone.max-shm-memory (preferido: max-shm-memory )

  • zone.max-swap

Observe que o método preferido, mais simples, para definir um controle de recursos de região geral é usar o nome da propriedade, em vez do recurso rctl, como mostrado em Como configurar a região. Se as entradas do controle de recurso de região geral em uma região forem configuradas usando-se add rctl, o formato será diferente das entradas do controle de recurso no banco de dados de project. Na configuração de uma região, o tipo de recurso rctl consiste em três pares nome-valor. Os nomes são priv, limit e action. Cada nome tem um valor simples.


zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.cpu-shares
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)zonecfg:my-zone:rctl> end

zonecfg:my-zone> add rctl
zonecfg:my-zone:rctl> set name=zone.max-lwps
zonecfg:my-zone:rctl> add value (priv=privileged,limit=100,action=deny)
zonecfg:my-zone:rctl> end

Para obter informações gerais sobre controles de recursos e atributos, consulte o Capítulo 6Controles de recursos (visão geral) e Controles de recursos em regiões não globais.

attr

name, type, value

No exemplo a seguir, é adicionado um comentário sobre uma região.


zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="Production zone"
zonecfg:my-zone:attr> end

Você pode usar o subcomando export para imprimir uma configuração de região para saída padrão. A configuração é salva em uma forma que pode ser usada em um arquivo de comando.

Biblioteca de edição da linha de comando tecla

A biblioteca de edição da linha de comando tecla é incluída para uso com o comando zonecfg. A biblioteca fornece um mecanismo para histórico de linha de comando e suporte a edição.

A biblioteca de edição da linha de comando tecla é documentada nas seguintes páginas do manual: