Qual seria a melhor solução de virtualização para este caso de uso específico?

1

Eu faço desenvolvimento de software (principalmente web), e eu trabalho sozinho, então eu tenho que lidar com um monte de trabalho do tipo sysadmin, a fim de configurar diferentes pilhas de web / application / banco de dados / servidores de controle de origem, deixe sozinho meu próprio ambiente de desenvolvimento.

Ultimamente tenho andado obcecado por encontrar uma forma de virtualizar estas diferentes preocupações, para tornar a minha configuração mais gerenciável. O ideal seria entrar em um thin client de desenvolvimento (com meu Xsession, emacs e ssh), fazer com que os servidores funcionem sem cabeça e usá-los como no mundo real. Eu estou com o objetivo de conseguir tudo sob controle de versão, eventualmente, também ...

Eu também tenho algumas preocupações em cima disso:
Desempenho, como não tenho uma máquina matadora, ter um sistema operacional totalmente virtualizado para cada servidor provavelmente atrasaria o rastreamento.
E portabilidade, ou seja, ser capaz de reutilizar essas configurações com o mínimo de ajustes possíveis quando eu movê-las para um vps ou outras caixas locais.

Considerando isso, eu basicamente reduzi a virtualização em nível de os.

O OpenVZ parecia o caminho a seguir, mas depois descobri sobre o LXC e o Linux V-Server, e agora estou confuso.

De qualquer forma, desculpe pelo longo discurso, mas eu gostaria de perguntar a vocês se vocês tinham alguma experiência com essas soluções de virtualização, e talvez pudessem dar algumas dicas sobre o que melhor poderia atender às minhas necessidades aqui?

aplausos!

    
por julien 19.12.2009 / 00:46

2 respostas

1

São formas semelhantes de virtualização - apenas no nível do sistema operacional. Isto tem várias vantagens sobre a virtualização completa.

  • Pequena sobrecarga - Para máquinas de baixa potência, recomendo usar qualquer uma delas. Eu tenho meia dúzia de máquinas virtuais rodando em um sistema VIA Samuel 2 de 400MHz com apenas 256Mb de RAM no OpenVZ. Você só usará a mesma quantidade de recursos que ao executar os aplicativos em uma única máquina. Várias instâncias de um aplicativo em diferentes máquinas compartilham recursos.
  • Acesso a arquivos - A transferência de arquivos entre o nó do host com a VM e entre as VMs é trivial, pois todos compartilham o mesmo sistema de arquivos no host. Então, posso apenas inspecionar e manipular os arquivos da VM diretamente do nó do host. Isso será muito útil para propósitos de desenvolvimento.
  • Imagem de backup - Como o sistema de arquivos é compartilhado, basta executar rsync nos diretórios de VM para fazer o backup de qualquer máquina. Você também pode facilmente replicar uma máquina simplesmente fazendo uma cópia do diretório.

A diferença entre o OpenVZ e VServer parece ser apenas sabores diferentes de algo similar. Você pode facilmente mover suas VMs entre os dois sistemas, conforme detalhado em seus sites. O LXC parece mais novo quando comparado aos outros dois sistemas mais maduros.

    
por 19.12.2009 / 02:44
0

Eu tive uma excelente sorte com o KVM em situações semelhantes. Sim, é uma solução completa de virtualização de máquina, mas se o kernel estiver inativo em um KVM, ele não usará nenhum recurso, exceto a RAM. (Para qualquer solução de virtualização, você quer adicionar o máximo de RAM possível)

Note que o Linux headless com Apache, MySQL ou similar pode rodar com 256 MB de RAM ou mais, contanto que a carga seja você e um script de teste, não um site de produção completo.

    
por 19.12.2009 / 01:05