A facilidade do Solaris Zones no Solaris Operating System oferece um ambiente isolado no qual executar aplicativos no sistema. Solaris Zones é um componente do ambiente de recipiente do Solaris.
Este capítulo aborda os seguintes tópicos:
Se você estiver pronto para começar a criar regiões no sistema, passe para o Capítulo 17Configuração de região não global (visão geral).
A tecnologia de partição do Solaris Zones é usada para virtualizar serviços de sistemas operacionais e oferece um ambiente isolado e seguro para executar aplicativos. Uma região é ambiente de sistema operacional virtualizado, criado dentro de uma única instância do Solaris Operating System. Ao criar uma região, você produz um ambiente de execução de aplicativo em que processos são isolados do resto do sistema. Este isolamento impede que processos executados em uma região monitorem ou afetem processos executados em outras regiões. Mesmo um processo executado com credenciais de superusuário não pode visualizar ou afetar atividades em outras regiões.
Uma região também oferece uma camada abstrata que separa aplicativos dos atributos físicos da máquina em que eles são implantados. Exemplos desses atributos incluem caminhos de dispositivos físicos.
As regiões podem ser usadas em qualquer máquina que execute como mínimo a versão Solaris 10. O limite máximo para o número de regiões em um sistema é 8192. O número de regiões que podem ser hospedadas efetivamente em um único sistema é determinado pelo total de requisitos de recursos do software de aplicativo executado em todas as regiões.
Há dois tipos de modelos de sistema de arquivos raiz de região não global no Solaris 10: raiz esparsa e inteira. O modelo de zona raiz esparsa otimiza o compartilhamento de objetos. O modelo de zona raiz inteira fornece a configurabilidade máxima. Estes conceitos são tratados no Capítulo 18Planejamento e configuração de regiões não globais (tarefas).
Solaris 10 9/10: os produtos que são instalados, chamados de recursos do sistema, são controlados por um recurso de registro automático. Durante a instalação, o usuário fornece credenciais ou registros anonimamente. Quando o sistema for reinicializado, os marcadores de serviço para os novos produtos são carregados para o servidor My Oracle Support. Esse recurso funciona apenas na região global. Consulte o System Administration Guide: Basic Administration para mais informações.
Regiões com marca (BrandZ) fornecem o fluxo para criar containers que contêm conjuntos alternativos de comportamento de executáveis. O termo marca pode se referir a uma ampla gama de ambientes operacionais. Por exemplo, a região não global pode emular os sistema operacional Solaris 8 ou um ambiente operacional como o Linux.
A marca define o ambiente operacional que pode ser instalado na região e determina como o sistema irá se comportar dentro da região, para que o software instalado na região funcione corretamente. Além disso, a marca da região é usada para identificar o tipo de aplicativo correto no momento de iniciar o aplicativo. Todo o gerenciamento da região de marca é feito através de extensões para os comandos padrão da região. A maioria dos procedimentos administrativos são idênticos para todas as regiões.
As seguintes duas marcas são suportadas nas máquinas SPARC executando o sistema operacional Solaris 10 8/07 ou uma versão posterior do Solaris 10:
A marca solaris8, Containers do Solaris 8, documentada em System Administration Guide: Solaris 8 Containers
A marca solaris9, Containers do Solaris 9, documentada em System Administration Guide: Solaris 9 Containers
Outras marcas suportadas no sistema operacional Solaris, incluem:
A marca Linux lx para os sistemas x86 e x64, documentada em Parte III, 1x}Regiões com marca
A marca cluster, documentada em Coleção de Software Sun Cluster 3.2 1/09 para o SO Solaris em docs.sun.com.
Embora você possa configurar e instalar regiões com marca em um sistema Solaris confiável, que tenha legendas ativadas, não é possível inicializar regiões com marca na configuração deste sistema.
Regiões são ideais para ambientes que consolidam diversos aplicativos em um único servidor. O custo e a complexidade de gerenciar inúmeras máquinas tornam vantajoso consolidar vários aplicativos em servidores maiores e mais escalonáveis.
A figura abaixo mostra um sistema com quatro regiões. Cada uma das regiões apps, users e work está executando uma carga de trabalho não relacionada com as cargas de trabalho das outras regiões, em uma amostra de ambiente consolidado. Este exemplo ilustra que diferentes versões do mesmo aplicativo podem ser executadas sem conseqüências negativas em diferentes regiões, para atender os requisitos de consolidação. Cada região pode oferecer um conjunto personalizado de serviços.
As regiões permitem uma utilização de recursos mais eficiente no sistema. A realocação dinâmica de recursos permitem que recursos não usados possam ser transferidos para outros recipientes, conforme necessário. O isolamento de falhas e segurança significa que aplicativos que se comportam incorretamente não requerem um sistema dedicado e subutilizado. Com o uso de regiões, esses aplicativos podem ser consolidados com outros aplicativos.
As regiões permitem que você delegue algumas funções administrativas enquanto mantém a segurança geral do sistema.
Pode-se pensar em uma região não global como uma caixa. Um ou mais aplicativos podem ser executados nesta caixa sem interagirem com o resto do sistema. As regiões do Solaris isolam aplicativos de software ou serviços usando limites flexíveis e definidos pelo software. Aplicativos executados na mesma instância do Solaris Operating System podem então ser gerenciados independentemente um do outro. Assim, diferentes versões do mesmo aplicativo podem ser executados em diferentes regiões, para atender os requisitos de sua configuração.
Um processo atribuído a uma região pode manipular, monitorar e se comunicar diretamente com outros processos que estão atribuídos à mesma região. Os processos não podem executar essas funções com processos atribuídos a outras regiões no sistema ou com processos atribuídos à região. Os processos atribuídos a diferentes regiões podem se comunicar somente através de APIs de rede.
A partir do Solaris 10 8/07, a rede IP pode ser configurada de duas formas diferentes, dependendo de a região estar atribuída a uma instância de IP exclusivo ou de compartilhar o estado e a configuração da camada IP com a região global. Para obter mais informações sobre tipo de IP em regiões, consulte Interfaces de rede de região. Para obter informações sobre configuração, consulte Como configurar a região.
Todo sistema do Solaris contém uma região global. A região global tem uma função dupla. A região global é tanto a região padrão para o sistema como a região usada para o controle administrativo do sistema geral. Todos os processos executados na região global, se não regiões não globais, conhecidas simplesmente como regiões, são criados pelo administrador global.
A região global é a única região a partir da qual uma região não global pode ser configurada, instalada, gerenciada ou desinstalada. Somente a região global é inicializável a partir do hardware do sistema. A administração da infra-estrutura do sistema, como dispositivos físicos, roteamento em uma região de IP compartilhado ou reconfiguração dinâmica (DR), é somente possível na região global. Processos apropriadamente privilegiados executados na região global podem acessar objetos associados a outras regiões.
Processos não privilegiados na região global podem executar operações não permitidas a processos privilegiados em uma região não global. Por exemplo, usuários na região global podem visualizar informações sobre cada processo no sistema. Se esta capacidade apresentar um problema para seu site, você pode restringir acesso à região global.
A cada região, incluindo a região global, é atribuído um nome de região. A região global sempre tem o nome global. Cada região também recebe um identificador numérico exclusivo, que é atribuído pelo sistema quando a região é inicializada. A região global é sempre mapeada para o ID 0. Os nomes de região e os IDs numéricos são tratados em Uso do comando zonecfg .
Cada região também pode ter um nome de nó que é completamente independente do nome de região. O nome de nó é atribuído pelo administrador da região. Para obter mais informações, consulte Nome do nó em região não global.
Cada região tem um caminho para seu diretório raiz que é relacionado ao diretório raiz da região global. Para obter mais informações, consulte Uso do comando zonecfg .
A classe de agendamento para uma região não global é definida como a classe de agendamento para o sistema por padrão. Consulte Classe de agendamento em uma região para uma discussão dos métodos usados para definir a classe de agendamento em uma região.
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.
A tabela abaixo resume as características de regiões globais e não globais.
Um administrador global tem privilégios de superusuário ou a função de administrador principal. Quando conectado à região global, o administrador global pode monitorar e controlar o sistema como um todo.
Uma região não global pode ser administrada por um administrador de região. O administrador global atribuir o perfil de gerenciamento de região ao administrador de região. Os privilégios de um administrador de regiões limitam-se a uma região não global.
O administrador global usa o comando zonecfg para configurar uma região especificando vários parâmetros para a plataforma virtual da região e o ambiente de aplicativo. A região é em seguida instalada pelo administrador global, que usa o comando de administração de região zoneadm para instalar software no nível de pacotes na hierarquia do sistema de arquivos estabelecida para a região. O administrador global pode efetuar login na região instalada usando o comando zlogin. No primeiro login, a configuração interna para a região é completada. O comando zoneadm é então usado para inicializar a região.
Para obter informações configuração de região, consulte o Capítulo 17Configuração de região não global (visão geral). Para obter informações sobre instalação de região, consulte o Capítulo 19Sobre instalação, parada, clonagem e desinstalação de regiões não globais (visão geral). Para obter informações sobre login em região, consulte o Capítulo 21Login na região não global (visão geral).
Uma região não global pode estar em um dos seis estados seguintes:
A configuração da região está completa e comprometida no armazenamento. No entanto, esses elementos do ambiente de aplicativo da região que devem ser especificados após a inicialização inicial ainda não estão presentes.
Durante uma operação de instalação ou desinstalação, zoneadm define o estado da região de destino como incompleto. Após a conclusão bem-sucedida da operação, o estado ß definido para o estado correto.
A configuração da região é instanciada no sistema. O comando zoneadm é usado para verificar se a configuração pode ser usada com êxito no sistema do Solaris designado. Pacotes são instalados sob o caminho raiz da região. Neste estado, a região não tem plataforma virtual associada.
A plataforma virtual para a região é estabelecida. O kernel cria o processo zsched, interfaces de rede são configuradas disponibilizadas para a rede, sistemas de arquivos são montados e dispositivos são configurados. Um ID de região exclusivo é atribuído pelo sistema. Neste estágio, nenhum processo associado à região foi iniciado.
Processos de usuário associados ao ambiente de aplicativo da região estão em execução. A região entra no estado de execução assim que o primeiro processo de usuário associado ao ambiente de aplicativo (init) é criado.
Estes estados são estados de transição que são visíveis enquanto a região está sendo parada. No entanto, a região que não pode desligar por alguma razão irá parar em um destes estados.
O Capítulo 20Instalação, inicialização, parada, desinstalação e clonagem de regiões não globais (tarefas) e a página do manual zoneadm(1M) descrevem como usar o comando zoneadm para iniciar transições entre estes estados.
Tabela 16–1 Comandos que afetam o estado da região
Estado atual da região |
Comandos aplicáveis |
---|---|
Configurado |
zonecfg -z zonename verify zonecfg -z zonename commit zonecfg -z zonename delete zoneadm -z zonename attach zoneadm -z zonename verify zoneadm -z zonename install zoneadm -z zonename clone Você pode também usar zonecfg para renomear uma região no estado de configurado ou instalado. |
Incompleto |
zoneadm -z zonename uninstall |
Instalado |
zoneadm -z zonename ready (opcional) zoneadm -z zonename boot zoneadm -z zonename uninstall desinstala do sistema a configuração da região especificada. zoneadm -z zonename move path zoneadm -z zonename detach zonecfg -z zonename podem ser usados para adicionar ou remover uma propriedade de attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl,ou scheduling-class . Você pode também renomear uma região no estado de instalado. Os recursos inherit-pkg-dir não podem ser alterados. |
Preparado |
zoneadm -z zonename boot zoneadm halt e reinicialização do sistema retornam uma região no estado de preparado para o estado de instalado. zonecfg -z zonename podem ser usados para adicionar ou remover uma propriedade de attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl,ou scheduling-class . Os recursos inherit-pkg-dir não podem ser alterados. |
Execução |
zlogin options zonename zoneadm -z zonename reboot zoneadm -z zonename halt retorna uma região preparada para o estado de instalada. zoneadm halt e a reinicialização do sistema retorna uma região no estado de execução para o estado de instalada. zonecfg -z zonename podem ser usados para adicionar ou remover uma propriedade de attr, bootargs, capped-memory, dataset, dedicated-cpu, device, fs, ip-type, limitpriv , net, rctl,ou scheduling-class . Os recursos zonepath e inherit-pkg-dir não podem ser alterados. |
Parâmetros alterados através de zonecfg não afetam uma região em execução. A região deve ser reinicializada para as alterações entrarem em vigor.
Uma região fornece isolamento em quase qualquer nível de granularidade de que você necessita. Uma região não precisa de uma CPU dedicada, de um dispositivo físico ou de uma parte da memória física. Esses recursos podem ser multiplexados entre diversas regiões executadas dentro de um único domínio ou sistema, ou alocados em uma base por região usando as facilidades de gerenciamento de recurso disponíveis no sistema operacional.
Cada região pode oferecer um conjunto personalizado de serviços. Para aplicar isolamento básico de processo, um processo pode ver ou sinalizar somente os processos que existem na mesma região. A comunicação básica entre regiões é realizada dando-se a cada região conectividade de rede IIP. Um aplicativo executado em uma região não pode observar o tráfego de rede de outra região. Este isolamento é mantido mesmo através de fluxos respectivos de percursos de pacotes através da mesma interface física.
Cada região recebe uma parte da hierarquia do sistema de arquivos. Uma vez que cada região é confinada a sua sub-árvore da hierarquia do sistema de arquivos, uma carga de trabalho em execução em uma determinada região não pode acessar os dados em disco de outra carga de trabalho em execução em uma região diferente.
Arquivos usados por serviços de identificação residem dentro de uma vista do sistema de arquivos raiz da região. Assim, serviços de identificação em regiões diferentes são isolados uns dos outros e os serviços podem ser configurados diferentemente.
Se usar as facilidades do gerenciamento de recurso, você deve alinhar os limites dos controles de gerenciamento de recurso com os das regiões. Esse alinhamento cria um modelo mais completo de uma máquina virtual, onde acesso a espaço de nome, isolamento de segurança e uso de recursos são controlados.
Quaisquer requisitos especiais para o uso de várias facilidades de gerenciamento de recurso com regiões são tratados em capítulos individuais deste manual que documentam essas facilidades.
Regiões não globais oferece as seguintes facilidades:
Quando o processo foi colocado em uma região diferente da região global, nem o processo nem qualquer um de seus filhos subseqüentes podem alterar regiões.
Serviços de rede podem ser executados em uma região. Ao executar serviços de rede em uma região, você limita o dano possível no caso de uma violação de segurança. Um intruso que explore com êxito uma falha de segurança em software executado dentro de uma região é confinado ao conjunto restrito de ações possíveis dentro dessa região. Os privilégios disponíveis dentro de uma região são um subconjunto dos disponíveis no sistema como um todo.
As regiões permitem a implantação de vários aplicativos na mesma máquina, mesmo se esses aplicativos operarem em diferentes domínios de confiança, requererem acesso exclusivo a um recurso global ou apresentem dificuldades com configurações globais. Por exemplo, vários aplicativos em execução em diferentes regiões com IP compartilhado no mesmo sistema podem se vincular à mesma porta da rede usando os diferentes endereços IP associados a cada região ou usando o endereço curinga. Os aplicativos também são impedidos de monitorarem ou interceptarem o tráfego de rede uns dos outros, dados do sistema de arquivos ou atividades de processo.
Se uma região precisar ser isolada na camada IP na rede, por exemplo sendo conectada a diferentes VLANs ou diferentes LANs da região global e outras regiões não globais, por motivos de segurança a região poderá ter um IP exclusivo. A região de IP exclusivo pode ser usada para consolidar aplicativos que devem se comunicar em sub-redes diferentes que estão em VLANs ou LANs diferentes.
As regiões também podem ser configuradas como regiões de IP compartilhado. Essas regiões se conectam com as mesmas VLANs ou LANs como a região global e compartilham a configuração de roteamento de IP com a região global. Regiões com IP compartilhado têm endereços IP separados, mas compartilham as outras partes do IP.
As regiões fornecem um ambiente virtualizado que pode ocultar de outros aplicativos detalhes como dispositivos físicos e o endereço IP primário do sistema e o nome do host. O mesmo ambiente de aplicativo pode ser mantido em diferentes máquinas físicas. O ambiente virtualizado permite a administração separada de cada região. As ações tomadas por um administrador de região em uma região não global não afetam o resto do sistema.
Uma região pode fornecer isolamento em quase qualquer nível de granularidade. Para obter mais informações, consulte Características da região não global.
As regiões não alteram o ambiente no qual aplicativos são executados, exceto quando necessário para atingir objetivos de segurança e isolamento. As regiões não apresentam uma nova API ou ABI a cujas portas os aplicativos devem ser conectados. Em vez disso, as regiões fornecem as interfaces e o ambiente de aplicativo padrão do Solaris, com algumas restrições. As restrições afetam primeiramente aplicativos que tentam executar operações privilegiadas.
Aplicativos na região global são executados sem modificação, estejam regiões adicionais configuradas ou não.
A tabela abaixo fornece uma visão geral básica das tarefas que estão envolvidas na configuração de regiões no sistema pela primeira vez.
Tarefa |
Descrição |
Para instruções |
---|---|---|
Identificar os aplicativos que você gostaria de executar em regiões. |
Revisar os aplicativos em execução no sistema:
|
Consultar seus objetivos comerciais e a documentação do sistema, se necessário. |
Determinar quantas regiões devem ser configuradas. |
Avaliar:
| |
Determinar se você usará grupos de recursos com a região para criar um recipiente. |
Se também estiver usando facilidades de gerenciamento de recursos no sistema, determine como alinhar as regiões com os limites de gerenciamento de recursos. Configurar grupos de recursos antes de configurar regiões. A partir da versão Solaris 10 8/07, observe que você pode adicionar rapidamente controles de recursos de região geral e a funcionalidade de grupo a uma região usando as propriedades de zonecfg. |
Consulte Como configurar a região e o Capítulo 13Criação e administração de grupos de recursos (tarefas). |
Desempenhar as tarefas de pré-configuração. |
Determinar o nome da região e o caminho da região. Determinar se a região será uma região com IP compartilhado ou uma região com IP exclusivo, e obter endereços IP ou o nome do link de dados. Determinar os sistemas de arquivos e os dispositivos necessários para cada região. Determinar a classe de agendamento para a região. Determina o conjunto de privilégios aos quais se limitem os processos no interior da região, se o conjunto padrão não for suficiente. Observe que algumas definições de zonecfg adicionam automaticamente os privilégios. Por exemplo, ip-type=exclusive adiciona automaticamente vários privilégios necessários para configurar e gerenciar pilhas de rede. |
Para obter informações sobre o nome e o caminho da região, tipos de IP, endereços IP, sistemas de arquivos, dispositivos, classe de agendamento e privilégios, consulte o Capítulo 17Configuração de região não global (visão geral) e Avaliação da configuração atual do sistema. Para uma lista de privilégios padrão e privilégios que podem ser configurados em uma região não global, consulte Privilégios em uma região não global. Para obter informações sobre a disponibilidade do recurso IP, 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. |
Desenvolver configurações. |
Configurar regiões não globais. |
Consulte Configuração, verificação e comprometimento de uma região e a página do manual zonecfg(1M). |
Como administrador global, verificar e instalar regiões configuradas. |
As regiões devem ser verificadas e instaladas antes do login. |
Consulte o Capítulo 19Sobre instalação, parada, clonagem e desinstalação de regiões não globais (visão geral) e o Capítulo 20Instalação, inicialização, parada, desinstalação e clonagem de regiões não globais (tarefas). |
Como administrador global, efetuar login em cada região não global usando o comando zlogin com a opção -C ou colocar o arquivo sysidcfg no diretório /etc da região. |
|
Consulte o Capítulo 21Login na região não global (visão geral) e o Capítulo 22Login em regiões não globais (tarefas). |
Como administrador global, inicializar a região não global. |
Inicializar cada região para colocar a região no estado de execução. |
Consulte o Capítulo 19Sobre instalação, parada, clonagem e desinstalação de regiões não globais (visão geral) e o Capítulo 20Instalação, inicialização, parada, desinstalação e clonagem de regiões não globais (tarefas). |
Preparar a nova região para uso de produção. |
Crie contas do usuário, adicione software adicional e personalize a configuração da região. |
Consulte a documentação que você usa para configurar uma máquina recém-instalada. Considerações especiais aplicáveis ao ambiente das regiões são abordadas neste guia. |