Qual é a sabedoria convencional em relação aos sistemas LXC e RHEL hoje em dia?
Pessoalmente, acho que a configuração atual está um pouco ausente. O LXC parece mais na vanguarda - certamente mais mantido.
Como você os está implementando?
Em termos de oferecê-lo como uma opção de virtualização, não sou. Acho que falta a configuração tecnológica atual.
- Nenhum espaço para nome de nome de usuário.
- Certos pontos de montagem não reconhecem o namespace (cgroups, selinux)
- Os valores em / proc são globais do sistema enganosos que não são responsáveis pelo particionamento de recursos nos espaços para nome.
- Quebra auditoria.
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 de libvirt
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 as libvirt
gotas libvirt-lxc
acabarem e apenas oferece um wrapper systemd-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.
Existem vantagens em uma abordagem em relação à outra?
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 a libvirt-lxc
opção particularmente no que diz respeito a obter distros para trabalhar neles.
Eles podem coexistir?
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.