Executando contêineres no topo do QEMU

0

Eu tenho uma configuração de teste para a qual estou tentando migrar usando VMs em vez de bare metal o máximo possível. A configuração existente é estruturada para executar tudo em contêineres (LXC, especificamente), e não será eliminada, portanto, se possível, desejo usar a estrutura existente nas VMs. O cluster de VM em que outros serviços estão sendo executados é o QEMU.

Ingenuamente isso parece simples, mas a última pessoa da minha equipe a tentar desistir confundiu-se. Então, aqui está o que eu quero saber:

  • Há problemas conhecidos executando o LXC dentro de VMs do QEMU em particular ou em máquinas virtuais em geral?

  • Existem obstáculos que eu devo esperar e, em caso afirmativo, o que?

  • É mais provável que haja problemas sobre nossa configuração idiossincrática do que problemas gerais de compatibilidade?

por Jacob Kopczynski 26.04.2018 / 19:34

1 resposta

0

Compatibilidade

Não deve haver problemas. O QEMU não parece ser funcionalmente diferente do hardware normal para o sistema convidado, e o LXC não faz nada que exija um comportamento especial do hardware que o QEMU não emula.

Mas ...

Você provavelmente não quer fazer isso, não apenas porque prejudicará o desempenho, mas também complicará significativamente o gerenciamento. Você provavelmente deve reavaliar por que acha que precisa de VMs sob os contêineres (ou, melhor ainda, se já estiver usando contêineres para parte de sua infraestrutura, por que você precisa usar as VMs em vez disso para o resto). A menos que você realmente se preocupe com a migração ao vivo ou o isolamento aprimorado de cargas de trabalho além do que os contêineres fornecem, provavelmente é melhor adaptar apenas o restante de sua infraestrutura para usar contêineres porque eles usam menos recursos. A única exceção a isso são os sistemas que fornecem serviços acessíveis ao mundo externo, que nunca devem estar em um host compartilhado, a menos que estejam em uma VM (porque a queda de um contêiner frequentemente trava o host) e, mesmo assim, geralmente não estar em um host compartilhado com serviços internos.

OK, mas eu realmente quero fazer isso de qualquer maneira.

Nesse caso, trabalhe na adaptação de seu software para usar VMs em vez de contêineres. Realisticamente, não deve ser muito difícil de se adaptar. Na verdade, é muito fácil configurar o QEMU para inicializar diretamente um kernel Linux (e, portanto, ignorar a necessidade de um gerenciador de inicialização e, com ele, a necessidade de uma tabela de partição) e, assim, é fácil extrair a imagem base desse contêiner uma imagem do sistema de arquivos que você pode usar diretamente como um disco (isso ainda seria um desempenho um pouco menor do que os contêineres, mas nem de longe tão ruim quanto a execução dos contêineres dentro das VMs).

    
por 26.04.2018 / 21:29