OpenVZ
Desenvolvedor | Projeto comunitário, suportado pela Parallels, Inc. |
Plataforma | x86, x86-64 |
Lançamento | 2005 (18–19 anos) |
Idioma(s) | Inglês |
Escrito em | C |
Sistema operacional | Linux |
Gênero(s) | Virtualização de nível de sistema operacional |
Licença | GNU GPL v.2 |
Página oficial | openvz |
OpenVZ (Open Virtuozzo) é uma tecnologia de virtualização de nível de sistema operacional baseada no kernel e no sistema operacional do Linux. Ele permite que um servidor físico execute múltiplas instâncias de sistema operacional, conhecidas como recipientes (containers), sevidores virtuais privados (SVP - ou em inglês virtual private servers) ou ambientes virtuais (AV - ou em inglês virtual environments - VEs). É similar ao FreeBSD jail e ao Solaris Containers.[1].
OpenVZ comparado com outras tecnologias de virtualização
[editar | editar código-fonte]Quando comparado a máquinas virtuais tais como VMware e paravirtualização tais como Xen, o OpenVZ é limitado: exige que tanto o host quanto o SO convidado sejam Linux (podendo conviver diferentes distribuições Linux em diferentes containers). Contudo, OpenVZ possui uma vantagem em relação ao desempenho: de acordo com seu site web, há apenas uma perda de desempenho de 1 a 3% para o OpenVZ comparado com a utilização de um servidor standalone. Uma avaliação independente de desempenho confirma isto. Outra mostra mais perdas significantes dependendo da métrica utilizada. O OpenVZ é uma base do Parallels Virtuozzo Containers, um software proprietário fornecido pela Parallels. O OpenVZ é licenciado sob a versão 2 da GPL. O projeto OpenVZ é assistido e patrocinado pela Parallels (o suporte comercial ao usuário não é disponibilizado pela Parallels). O OpenVZ é dividido em um núcleo padrão e ferramentas do nível de usuário.
Kernel
[editar | editar código-fonte]O kernel do OpenVZ é um kernel do Linux modificado para adicionar suporte aos recipientes OpenVZ. O kernel modificado fornece virtualização, isolamento, gerenciamento de recurso e ponto de inspeção. A partir do vzctl 4.0, o OpenVZ pode trabalhar com Linux de kernels 3.x sem atualização, com um conjunto reduzido de funcionalidades.
Virtualização e isolamento
[editar | editar código-fonte]Cada recipiente é uma entidade separada e comporta-se, em grande parte, como um servidor físico. Cada um tem seus próprios:
- Arquivos
- Bibliotecas do sistema, aplicações,
/proc
e/sys
virtualizados, bloqueios virtualizados, etc.
- Usuários e grupos
- Cada recipiente possui seu próprio usuário raiz, bem como outros usuários e grupos.
- Árvore de processos
- Um recipiente enxerga apenas seus próprios processos (começando do
init
). PIDs são virtualizados, desta forma o PID init é 1 como deveria ser.
- Rede
- Dispositivo de rede virtual, que permite que um recipiente tenha seus próprios endereços IP, bem como um conjunto de netfilter (
iptables
) e regras de roteamento.
- Dispositivos
- Se necessários, qualquer recipiente pode ser concedido acesso a dispositivos reais como interfaces de rede, portas seriais, partições de disco, etc.
- Objetos IPC
- Memória compartilhada, semáforos, mensagens.
Gerenciamento de recursos
[editar | editar código-fonte]O gerenciamento de recursos do OpenVZ consiste de quatro componentes: quota de disco de dois níveis, escalonador razoável de CPU, escalonador de E/S de disco e beancounters de usuários. Estes recursos podem ser alterados durante o tempo de execução de recipiente, eliminando a necessidades de reinicialização.
Quota de disco de dois níveis
[editar | editar código-fonte]Cada recipiente pode ter suas próprias quotas de disco, medidas em termos de blocos de disco e inodes (cerca de número de arquivos). Dentro do recipiente, é possível usar ferramentas padrões para definir quotas de disco UNIX por usuário e por grupo.
Escalonador de UCP
[editar | editar código-fonte]O escalonador de UCP no OpenVZ é uma implementação de dois níveis de estratégia de escalonamento.
- ↑ «Cópia arquivada». Consultado em 29 de junho de 2014. Arquivado do original em 28 de junho de 2014