|
| United States Worldwide |
![]() |
![]() |
|
Compreendendo o Solaris Containers
Uma das tecnologias mais inovadoras do Solaris 10, o Solaris Containers é utilizado na consolidação de servidores, além de melhorar a disponibilidade e a capacidade de gerenciamento dos aplicativos. Nesta entrevista, o Inner Circle faz 20 perguntas aos especialistas em virtualização da Sun Joost Pronk van Hoogeveen, Jeff Victor e Chien-Hua Yen para entender melhor o potencial, os recursos e as limitações do Solaris Containers e do Solaris Zones. IC: Quais são as diferenças entre Domínios Lógicos, Solaris Zones e Solaris Containers? Joost Pronk van Hoogeveen: Os domínios são um tipo de particionamento de hardware, ou seja, o particionamento é feito no nível do hardware. O Solaris Zones faz parte da tecnologia Solaris Containers. Sendo assim, gerencia o isolamento do espaço de nome (endereços IP e usuários distintos, por exemplo) do Containers. Containers e Zones são um tipo de virtualização do sistema operacional, sendo que o particionamento não é feito no nível do hardware, mas sim no próprio sistema operacional. IC: Zones e Containers são a mesma coisa? Jeff Victor: Não exatamente. A definição oficial de um Solaris 10 Container é um Solaris Zone com gerenciamento de recursos. Mas falando de forma casual, poucas pessoas distinguem o Zones do Containers. IC: Além do Zones, o que mais faz parte do Solaris Containers? Joost Pronk van Hoogeveen: O Solaris Containers engloba dois componentes principais: o Solaris Zones e o Solaris Resource Manager (SRM). O SRM gerencia os recursos físicos do sistema que cada Container recebe, e o Solaris Zones controla o isolamento do espaço de nome. Juntos, o Zones e o SRM formam a base do Solaris Containers. IC: O que distingue o Solaris Containers das tecnologias de domínio virtual, como as partições lógicas (LPARs)? Joost Pronk van Hoogeveen: LPARs são uma tecnologia comum de máquina virtual com uma camada hypervisor entre o hardware e o sistema operacional, enquanto o Solaris Containers é um tipo de virtualização do sistema operacional. Domínios e máquinas virtuais permitem a execução de tipos diferentes de sistemas operacionais simultaneamente na mesma máquina física. Porém, como em todas as tecnologias de máquina virtual, essa abordagem apresenta uma sobrecarga de desempenho considerável. Em contrapartida, o Solaris Containers é muito leve e praticamente não gera sobrecarga de desempenho. Porém, o Solaris Containers permite apenas uma única versão do sistema operacional. IC: Quais são as vantagens relativas do Solaris Containers em comparação com as LPARs? Jeff Victor: O Solaris Containers tem inúmeras vantagens, incluindo custos menores de licenciamento e suporte do sistema operacional, custos menores de hardware devido à melhor granularidade, redução da carga de trabalho de gerenciamento e maior disponibilidade dos aplicativos. IC: Como o Solaris Containers se compara à abordagem de máquina virtual defendida pelo VMware? Jeff Victor: O Containers oferece vários ambientes de carga de trabalho isolados com recursos rígidos de segurança e gerenciamento de recursos. Como existe apenas uma imagem do sistema operacional, o método do Solaris Containers é muito eficiente e reduz as tarefas de gerenciamento. O VMware possibilita a existência de várias imagens simultâneas do sistema operacional, bem como a escolha de tipos diferentes de sistemas operacionais (Linux, Solaris e Windows). No entanto, como todas as máquinas virtuais, há uma perda em desempenho com o VMware. Além disso, com o VMware e outras tecnologias de máquina virtual, cada imagem do sistema operacional deve ser gerenciada separadamente. IC: Eu instalei o Solaris 10 no VMware. Posso usar o Solaris Containers para virtualização no VMware? Joost Pronk van Hoogeveen: Sim. O Solaris Containers funcionará em qualquer instância do Solaris 10, para que você possa avaliar os benefícios da virtualização do sistema operacional nas máquinas virtuais do seu ambiente. IC: Com relação ao Solaris Zones, o que é uma Zona global? Existe alguma Zona local? Chien-Hua Yen: Existem dois tipos de Zonas: Zonas globais e não-globais. O nome oficial de uma Zona «local» é Zona «não-global». Uma Zona global contém uma instalação totalmente funcional do sistema operacional Solaris, que é iniciado pelo hardware do sistema. Portanto, uma instalação do sistema operacional Solaris passa a ser uma Zona global quando é iniciada pelo hardware do sistema. Somente uma Zona global é executada em um sistema. Em seguida, o administrador da Zona global cria Zonas não-globais usando Zonecfg (1M) e Zoneadm (1M). A Zona global controla a instalação, manutenção, operação e destruição de todas as Zonas não-globais. IC: Qual é o número máximo recomendado de Zonas que um sistema pode ter e quais são as considerações com relação à facilidade de uso para um grande número de Zonas em uma mesma máquina? Chien-Hua Yen: Os fatores que limitam o número máximo de Zonas com que um servidor consegue lidar são a quantidade de memória e o espaço disponível em disco. Uma Zona pode ocupar de 150 MB a 3 GB de espaço em disco, dependendo de sua configuração. Cada Zona também precisa de memória para os processos do sistema. Ainda assim, gerenciar uma Zona é como gerenciar um sistema; a diferença é que é mais fácil gerenciar a Zona, pois você pode aplicar correções ou fazer backup de todas as Zonas usando um único comando. IC: A CPU e a RAM físicas são compartilhadas entre as Zonas? É possível alocar recursos diferentes para Zonas distintas? Jeff Victor: O Solaris Zones compartilha CPUs. O administrador pode usar Solaris Dynamic Resource Pools para atribuir uma ou mais CPUs a um Solaris Zone. Além disso, o Solaris Fair-Share Scheduler pode garantir que um determinado Solaris Zone tenha uma quantidade mínima pré-determinada de poder de processamento. O Solaris Fair-Share Scheduler ainda ajuda a garantir que não haverá desperdício do poder de processamento da CPU, pois os recursos de processamento só serão restritos se a utilização do sistema chegar a 100%. Com relação à RAM, o Solaris Zones compartilha a quantidade de memória física disponível no sistema. No momento, não é possível restringir a quantidade de memória física utilizada por uma Zona, mas a Sun está trabalhando em um recurso que resolverá essa questão em breve. IC: É fácil modificar as alocações de recursos por Container para que o gerenciamento dos recursos seja mais preciso em todos os Solaris Containers de um sistema? Joost Pronk van Hoogeveen: As atribuições de gerenciamento de recursos a um Container podem ser alteradas a qualquer momento sem que seja necessário reiniciar o Container. Para obter mais informações sobre alocação e isolamento de recursos, consulte o artigo Sun BluePrints detalhado. IC: Com o Solaris Containers, que tipo de sobrecarga pode-se esperar por CPU (ou por núcleo)? Jeff Victor: Para pequenas quantidades de Containers, a sobrecarga é quase imperceptível — certamente inferior a 1%. Uma configuração muito grande com centenas de Zonas apresenta uma sobrecarga de 4%, que ainda é muito pouco considerando-se os padrões de comparação. IC: É verdade que, se várias Zonas compartilharem o mesmo aplicativo, somente uma instância do aplicativo precisa ser instalada? O isolamento é suficiente para que um erro em uma instância do aplicativo não afete o mesmo aplicativo em outra Zona? Joost Pronk van Hoogeveen: Com relação à primeira pergunta, é possível as Zonas compartilharem a mesma instância do aplicativo, mas essa decisão está nas mãos do administrador, que pode instalar o aplicativo em um diretório que cada Zona enxergue (por exemplo, /usr no Apache). Caso contrário, cada Solaris Zone precisará de uma cópia particular do aplicativo. Com relação à segunda pergunta, cada aplicativo de cada Zona possui sua própria instância (e processos), sendo totalmente isoladas umas das outras. O isolamento é o motivo principal pelo qual a Sun criou o Solaris Zones como o fez. IC: Como é o trabalho de correção? Eu preciso aplicar as correções a todas as Zonas ou somente à Zona global? Chien-Hua Yen: Para obter detalhes, consulte o artigo sobre correções (1M) ou um artigo detalhado no portal Sun BigAdmin. Resumindo, é possível aplicar as correções a todas as Zonas a partir da Zona global ou a cada Zona individualmente a partir da Zona global ou da Zona não-global. IC: É preciso desativar as Zonas não-globais ao aplicar correções à Zona global? Chien-Hua Yen: Não, não é necessário desativar as Zonas não-globais ao aplicar correções à Zona global. No entanto, se o trabalho incluir uma correção do kernel, a Zona global terá de ser reiniciada antes que a correção entre em vigor. E uma vez reiniciada a Zona global, todas as Zonas não-globais serão desativadas. IC: No caso de pane do kernel, o que acontece com o Solaris Containers? Chien-Hua Yen: Em caso de falha do kernel, todas as Zonas são desativadas com ele, pois existe apenas uma instância do kernel que suporta todas as Zonas. No entanto, sob circunstâncias normais, é possível desativar cada Zona sem afetar as demais. E, em caso de falha de uma Zona, as outras não serão afetadas. IC: A Sun pensou em criar uma forma gráfica para a configuração de Containers, a fim de torná-los mais amigáveis para o usuário? Joost Pronk van Hoogeveen: Existe um suplemento do Sun Management Center (Sun MC) chamado Solaris Container Manager, que é a interface gráfica para gerenciamento de Containers. IC: É possível executar dois ou mais Containers em um servidor físico com duas ou mais instâncias do banco de dados Oracle em cada um desses Containers? Em caso positivo, como o sistema lidará com o gerenciamento de memória tanto nos Containers como em todas as instâncias do Oracle? Joost Pronk van Hoogeveen: Sim, é possível criar qualquer combinação de bancos de dados Oracle e Solaris Containers exatamente como se fossem diversas instâncias do banco de dados em máquinas separadas. Os Containers vão isolar a memória compartilhada exatamente como se estivessem em máquinas separadas. Consulte este artigo do BigAdmin para obter mais informações. IC: Como os fornecedores de software, como Oracle e Informix, lidam com as questões relacionadas a licenças quando as empresas usam o Solaris Containers? Joost Pronk van Hoogeveen: A Sun recomenda que os fornecedores de bancos de dados façam o licenciamento com base nos grupos de recursos que são atribuídos a cada Solaris Containers. Até agora, essa é a política adotada pela Oracle. IC: Ao criar conjuntos de processadores para um servidor Sun Fire T2000, a pessoa deve atribuir o Containers de acordo com o número de processadores ou com o número de threads? Em outras palavras, com um chip multithreading com 4 núcleos (16 threads) eu terei 4 ou 16 «processadores» para criar os conjuntos? Joost Pronk van Hoogeveen: Em um servidor Sun Fire T2000, cada thread é exposto como uma CPU (virtual). Sendo assim, o Solaris Resource Manager pode criar conjuntos com base em cada thread, ou seja, todos os 16 threads podem ser atribuídos no exemplo dado. IC: Há algum requisito mínimo de tamanho do servidor para começar a usar o Containers? Por exemplo, seria viável usar o Containers em um servidor mais básico, como um SunFire 280R? Joost Pronk van Hoogeveen: O Containers pode ser instalado em qualquer sistema que ofereça suporte a Solaris 10 – desde laptops até servidores high-end. IC: Existe alguma ferramenta que possa verificar se um aplicativo é compatível com o Container? Chien-Hua Yen: Sim. Você pode baixar o Solaris Ready Test Suite e também acessar a ferramenta de qualificação do Solaris. O conjunto de ferramentas consiste em um roteiro do DTrace para verificação de privilégios e nós de dispositivos que não estão disponíveis em uma Zona não-global, bem como uma ferramenta de leitura do código para verificar o uso de APIs não-compatíveis com a Zona. |
|