É complicado tentar permanecer dentro das boas graças da Red Hat e ainda planejar a longevidade do sistema ...
Sou defensor do Linux Containers (LXC) há mais de um ano. Minhas instalações iniciais foram baseadas em informações obtidas em tutoriais online, como este e este . Este centrado em torno dos lxc-create
, lxc-start|stop
e lxc-destroy
comandos e modificar existentes modelos OpenVZ .
Isso funciona bem e está em execução feliz na produção. No entanto, estou trazendo alguns sistemas adicionais e decidi verificar a documentação atual da Red Hat sobre os contêineres no EL6. Fiquei surpreso ao ver sua posição oficial sobre isso.
Em RHEL 6 fornece as ferramentas LXC necessárias para usar o Linux Containers? , A Red Hat descreve o LXC como uma prévia da tecnologia e sugere o uso da libvirt para gerenciar criar e gerenciar contêineres .
No entanto, a Oracle defende uma técnica de conteinerização totalmente diferente em seu Unbreakable Linux.
Parece haver alguma funcionalidade ausente no método libvirt, mas minha abordagem inicial com os comandos lxc- * foi um processo manual ... não sei exatamente o que é certo ou o meio "aceito" de gerenciar contêineres no EL6 .
- Qual é a sabedoria convencional em relação aos sistemas LXC e RHEL hoje em dia?
- Como você os implementa em sua organização?
- Existem vantagens em uma abordagem em relação à (s) outra (s)?
- Eles podem coexistir?
Respostas:
Pessoalmente, acho que a configuração atual está um pouco ausente. O LXC parece mais na vanguarda - certamente mais mantido.
Em termos de oferecê-lo como uma opção de virtualização, não sou. Acho que falta a configuração tecnológica atual.
Eu acho que é uma ferramenta muito boa para a contenção no nível do aplicativo. Usamos namespaces e cgroups diretamente para conter recursos de rede e IPC para determinados aplicativos da web executados pelo usuário. Nós fornecemos nossa própria interface para controlá-lo. No RHEL7, estou pensando em mudar essa funcionalidade para
libvirt-lxc
as revisões mais recentes delibvirt
suporte ao conceito de ACLs de usuário.Para virtualização em termos de um sistema totalmente inicializado, estou esperando para ver o que é oferecido no RHEL7, mas com toda a honestidade, sinto que poderemos ver apenas uma solução boa o suficiente quando estivermos em uma versão menor posterior do RHEL7 e, talvez, somente em um estado de visualização de tecnologia.
Fique de olho em
systemd-nspawn
algo que me diz nos próximos 18 meses, ou seja, ela pode ser a melhor ferramenta para fazer virtualização totalmente em linux, seja para que os autores do sistema deixem claro que não é seguro agora! Eu não ficaria surpreso se aslibvirt
gotaslibvirt-lxc
acabarem e apenas oferece um wrappersystemd-nspawn
com as fatias do systemd definidas.Além disso, tenha cuidado com as conversas nos últimos 6 meses sobre a reimplementação do cgroups como uma interface de programador de kernel em vez de uma interface de sistema de arquivos (talvez usando netlink ou algo que não tenha verificado), portanto o systemd deve estar muito quente na tentativa de acertar isso muito rapidamente.
Eu acho que a opção LXC (não libvirt-lxc) é melhor mantida. Depois de ler o
libvirt-lxc
código fonte, parece apressado. O LXC tradicional certamente possui recursos mais recentes, que foram melhor testados. Ambos exigem um grau de compatibilidade com o sistema init sendo executado neles, mas suspeito que você encontrará o LXC um pouco mais "chave na mão" do que alibvirt-lxc
opção particularmente no que diz respeito a obter distros para trabalhar neles.Claro, lembre-se de que, para todos os efeitos, ambos estão fazendo a mesma coisa. Organização de namespaces, cgroups e pontos de montagem. Todas as primitivas são tratadas pelo próprio kernel. Ambas as
lxc
implementações oferecem apenas um mecanismo de interface com as opções de kernel disponíveis.fonte
A Red Hat está fazendo um grande esforço de contêiner. Eles estão construindo um novo produto inteiro, o Red Hat Enterprise Linux Atomic Host , em torno dele.
Para uma abordagem menos radical, consulte o RHEL7 beta Resource Management e o Linux Containers Guide ; você notará que empurra o libvirt-lxc e não faz menção às ferramentas do lxc.
fonte
Os executáveis lxc- * são empacotados no pacote lxc no EPEL . No entanto, é o antigo lançamento de "suporte a longo prazo". Você nem tem a opção "-f" no lxc-ls. Eu simplesmente instalaria o Ubuntu para meus hosts LXC.
A maneira RHEL de gerenciar o LXC parece ser via libvirt-lxc, mas aparentemente está obsoleta .
Observou que o Ubuntu está suportando muitos dos novos desenvolvimentos do lxc / lxd, enquanto o Redhat está focado no KVM e no docker.
fonte