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).
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:
Melhor integração das funções de gerenciamento de recurso e regiões. O comando zonecfg agora pode ser usado para configurar grupos temporários, limites de memória, a classe de agendamento padrão para a região e alias do controle de recursos. Não é mais necessário realizar etapas manuais para definir o gerenciamento de recursos. Novos controles de recursos foram adicionados:
zone.max-locked-memory
zone.max-msg-ids
zone.max-sem-ids
zone.max-shm-ids
zone.max-shm-memory
zone.max-swap
Capacidade de usar o comando zonecfg na região global.
Capacidade de especificar um tipo de IP para uma região. Os dois tipos de IP disponíveis para regiões não globais são IP compartilhado e IP exclusivo.
Capacidade de usar DTrace em uma região adicionando-se privilégios necessários através da propriedade limitpriv.
Capacidade de usar argumentos de inicialização em uma região através da propriedade bootargs .
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.
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:
Grupos de recursos ou CPUs atribuídas, que são usadas para a partição de recursos de máquinas
Controles de recursos, que fornecem um mecanismo para a restrição dos recursos do sistema.
Classe de agendamento, que permite que você controle a alocação de recursos de COU disponíveis entre regiões através de compartilhamentos relativos. Você pode expressa a importância das cargas de trabalho em uma dada região através do número de compartilhamentos dos recursos de CPU atribuídos a essa regiã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:
Assegurar que o caminho da região esteja especificado
Assegurar que todas as propriedades necessárias para cada recurso estejam especificadas
Para obter mais informações sobre o comando zonecfg, consulte a página do manual zonecfg(1M).
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.
É necessário escolher um nome e um caminho para a 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.
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.
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.
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.
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:
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 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.
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 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.
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 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:
Na versão Solaris 10 8/07, você pode usar a propriedade scheduling-class em zonecfg para definir a classe de agendamento para a região.
Você pode definir a classe de agendamento para uma região através do procedimento de grupos de recursos. Se a região estiver associada a um grupo cuja propriedade pool.scheduler esteja definida como uma classe de agendamento válida, os processos executados na região serão executados nessa classe de agendamento por padrão. Consulte Introdução a grupos de recursos e Como associar um grupo 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 região através de outro ação, zoneadmd definirá a classe de agendamento como FSS quando a região for inicializada.
Se a classe de agendamento não estiver definida através de qualquer outra ação, a região herdará a classe de agendamento padrão do sistema.
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.
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 região usando rcapd da região global. A propriedade physical do recurso capped-memory é usada por rcapd como valor max-rss para a região.
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.
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 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.
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:
A região deve estar conectada ao link de dados, ou seja, deve estar na mesma sub-rede ou sub-redes de IP que a região global.
Você não deseja outras capacidades que a região com IP exclusivo fornece.
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.
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:
Autoconfiguração de endereço sem informações de estado de DHCPv4 e IPv6
Filtro de IP, incluindo a funcionalidade de conversão de endereço de rede (NAT)
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 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).
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 |
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.
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.
Geralmente, os sistemas de arquivos montados em uma região 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 região
Montagens acionadas por AutoFS e AutoFS
Montagens executadas explicitamente por um administrador de regiões
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.
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.
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.
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.
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.
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:
Adicionar ao conjunto de privilégios padrão, tendo em conta que tais alterações podem fazer com que os processos de uma região afetem os processos de outras regiões 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.
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).
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.
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:
Criar ou excluir (destruir) uma configuração de região
Adicionar recursos a uma configuração específica
Definir propriedades para recursos adicionados a uma configuração
Remover recursos de uma configuração específica
Consultar ou verificar uma configuração
Decidir por uma configuração
Reverter para uma configuração anterior
Renomear uma região
Sair de uma sessão zonecfg
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).
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.
Para o subcomando add, os subcomandos end ou cancel são usados para concluir a especificação do recurso.
Para o subcomando select, os subcomandos end ou cancel são usados para concluir a modificação do recurso.
O escopo depois reverte para global.
Determinados subcomandos, como add, remove e set, têm semânticas diferentes em cada escopo.
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.
Imprime ajuda geral ou exibe ajuda sobre um determinado recurso.
zonecfg:my-zone:inherit-pkg-dir> help |
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
Esta ação é instantânea. Nenhum comprometimento é necessário, e uma região excluída não pode ser revertida.
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.
Verifica a correção da configuração atual. Assegura que todos os recursos tenham todas as propriedades necessárias especificadas.
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.
Reverte a configuração para o último estado de comprometido.
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.
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.
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.
Os tipos de recurso e propriedade são descritos como a seguir:
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.
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.
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.
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 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Um hostid que é diferente dohostid da região global pode ser configurado.
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.
Recursos também têm propriedades a serem configuradas. As propriedades a seguir estão associadas aos tipos de recursos mostrados.
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 |
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 |
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 |
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:
Especifica o ponto de montagem para o sistema de arquivos
Especifica o nome do dispositivo especial de bloco ou o diretório da região global a ser montada
Especifica o dispositivo básico no qual executar fsck antes da montagem do sistema de arquivos
Especifica o tipo de sistema de arquivos
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.
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.
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 |
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 |
address, physical, defrouter
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 |
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 |
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.
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.
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:
enhance(1)
libtecla(3LIB )
ef_expand_file(3TECLA)
gl_get_line(3TECLA)
gl_io_mode(3TECLA)
pca_lookup_file(3TECLA)
tecla(5)