Existem boas práticas para distribuir / implantar imagens KVM do Linux?

3

Eu tenho uma aplicação web que requer muitas dependências. Atualmente, estou avaliando o uso de imagens kvm para ajudar nossos usuários a instalar esse aplicativo em seus servidores.

No entanto, temos algumas preocupações com a possibilidade de personalizar essas imagens, principalmente com rede e armazenamento.

Problemas potenciais de rede:

Muitos sites têm várias redes (por exemplo, uma rede para a interface da web pública e uma rede privada para dados) e os convidados virtuais precisam acessá-los em algum momento. Isso deve ser fácil de lidar usando duas (ou mais) interfaces de rede virtual. No entanto:

  • alguns sites usam DHCP enquanto outros precisam de IP estático
  • Restrições do endereço MAC estão presentes em algumas redes
  • Se alterarmos o endereço MAC na linha de comando, o convidado virtual provavelmente atribuirá uma nova interface (ou seja, eth2 / eth3 em vez de eth0 / eth1). Isso acontece com nossos guests debian por causa das regras do udev.
  • Quando esse problema de rede ocorre, geralmente, o convidado leva muito tempo no momento da inicialização ao tentar carregar alguns serviços de rede (como o MTA, por exemplo).

Preciso especificar que os hóspedes acessem atualmente as redes por meio de pontes.

Quais técnicas você está empregando para tais problemas? Existe uma maneira de configurar uma vez um convidado virtual e executá-lo em qualquer lugar com configuração mínima? A libvirt pode fornecer alguma ajuda para esse processo?

Obrigado!

Editar:

Obrigado pelas primeiras respostas. Agora percebo que deveria ser um pouco mais preciso:

Primeiro, nosso aplicativo pode ser instalado em qualquer tipo de máquina virtual (XEN, VMWare, etc) e nós damos a escolha para nossos usuários. Estou apenas me concentrando no KVM porque alguns sites fizeram a solicitação de uma imagem KVM pré-configurada e não estão tão à vontade com as técnicas de virtualização quanto as que atualmente usam o Xen.

Em segundo lugar, o problema que eles podem enfrentar com problemas de rede descritos anteriormente é mais ou menos o mesmo problema que eu enfrento no trabalho: eu costumo criar uma máquina virtual no meu computador desktop antes de mover o arquivo para o nosso cluster para produção. No entanto, o ambiente é bem diferente entre meu computador desktop e o cluster. A versão do Linux é diferente, usamos diferentes redes privadas, etc. Então, vamos dizer que eu só quero simplificar o processo de mover uma máquina KVM virtual do meu computador para o cluster.

Na verdade, eu estava procurando por uma solução robusta para dar aos convidados virtuais algumas dicas sobre seu ambiente. Por exemplo, adicionando algumas informações em arquivos XML libvirt como os endereços mac para eth0 e eth1 e o IP dessas interfaces, e outras coisas como essa (NFS, etc). Como usamos a ponte de rede, não acho que um servidor DHCP local no host possa ser uma boa solução e resolva apenas uma parte do problema. Então, o que seria muito legal é uma maneira de comunicar informações de configuração do host para os convidados. Talvez isso já exista ou possa ser implementado de alguma forma.

Portanto, minha pergunta reformulada é: existe uma maneira robusta, padrão, elegante, seja qual for) para transmitir essas informações do host para os convidados (idealmente usando diretamente o libvirt) XML), isso pode ser implementado se ele já não existir ou essa idéia é completamente estúpida (então, por favor, dê argumentos para que essa seja uma idéia estúpida).

Obrigado (novamente)!

    
por ixio 20.09.2010 / 23:04

3 respostas

1

Talvez seja melhor criar um pacote completo, incluindo o sistema operacional e todas as dependências, em um SO que você saiba que funciona bem. Em seguida, permita que o usuário final decida se deseja instalá-lo como autônomo ou convidado da VM no KVM, VMWare, Xen ou qualquer outra coisa. A única coisa que você ganharia com isso com uma imagem KVM é uma certa agnosticidade de hardware, mas ainda existem possíveis armadilhas como você apontou, e o site teria que estar disposto e capaz de manter um host KVM. além de seu aplicativo e seu SO.

EDITAR: Para responder à sua pergunta reformulada, acho que você ainda deve deixar essas informações nos sites. Os convidados da VM, por padrão, não podem controlar como a rede é configurada no site. hospedeiro. Você pode certamente fornecer documentação e instruções para fazer isso da maneira mais simples ou mais eficaz, mas isso pode variar de site para site. Não importa o que você faça, se você distribuir isso como uma imagem ou dispositivo de VM, o site terá que configurar e manter efetivamente um host de MV especificamente configurado para funcionar em sua rede.

    
por 21.09.2010 / 01:27
1

Não que alguém realmente tenha feito a implementação ainda, mas é exatamente isso que o Open Virtualization Format da DMTF deve tratar. Desculpe por não ter uma sugestão melhor.

    
por 22.09.2010 / 17:44
-1

Você está considerando detalhes técnicos simples sem olhar para o quadro geral. O problema com uma imagem é que ela não se integra bem à infraestrutura de um site. Pode ser um sistema operacional diferente. Pode não seguir os padrões de configuração / segurança do site. Ele pode não se integrar ao sistema de gerenciamento de configurações e correções de um site, ao sistema de backup, ao sistema de balanceamento de carga / alta disponibilidade ou ao sistema de recuperação de desastres. Basicamente, será um polegar dolorido que dará tristeza aos administradores de sistema.

    
por 21.09.2010 / 00:24