Como sincronizar duas instâncias de uma máquina virtual para serem usadas em computadores diferentes?

8

Eu tenho usado o VirtualBox na minha área de trabalho por um bom tempo. Tendo comprado recentemente um notebook, quero poder levar minha máquina virtual Ubuntu comigo e fazer com que as alterações que faço no notebook se propaguem para a área de trabalho e vice-versa, quando eu chegar / sair de casa. O sistema operacional do host é o Windows 7 em ambos os computadores, executando o VirtualBox 4.

Meu primeiro pensamento foi sincronizar os próprios arquivos do disco virtual. Minha ferramenta preferida seria rsync , mais especificamente a versão do Cygwin, usando a opção --inplace para reduzir as gravações o máximo possível. Mas isso seria inviável: ele me impediria de trabalhar separadamente nas VMs, porque rsync não teria como detectar conflitos e mesclá-los adequadamente sem o conhecimento dos sistemas de arquivos que estão dentro dos contêineres.

A próxima opção seria rsync ing as máquinas de execução entre si. Isso funcionaria sem bagunçar o gerenciamento de pacotes? Eu precisaria fazer algo manualmente além de atualizações como novo kernel ou drivers? Existe alguma outra solução que funcione melhor?

    
por danielkza 11.06.2011 / 07:55

2 respostas

2

Usar rsync para operações bidirecionais é difícil; Eu sugeriria que você analisasse unison como uma alternativa. Ele funcionará nos dois sentidos e informará o que ele fará antes de fazer isso, além de detectar arquivos manipulados simultaneamente em ambos os lados.

A execução da sincronização fora da VM terá os problemas que você descreve. Os resultados quando executados dentro da VM dependem muito do que você sincroniza.

  • A sincronização do seu diretório pessoal não deve ser um problema, e deve-se sincronizar a maior parte do seu trabalho diário.
  • A sincronização dos dados do gerenciador de pacotes só fará sentido se você fizer uma sincronização completa de quase tudo, talvez com algumas exceções bem consideradas. Em uma sincronização bidirecional, isso quase sempre levará a um conflito, portanto, eu só aconselharia isso para uma abordagem no estilo rsync.
  • Sincronizar /etc e sua casa deve sincronizar os dados de configuração mais e ainda ter pouco impacto sobre o que o gerenciador de pacotes faz. Mas se você instalar algum software em uma VM, você terá que instalá-lo manualmente na outra, e provavelmente só deve sincronizar após fazê-lo, caso a atualização tenha alterado algum arquivo de configuração. / li>
por 09.07.2012 / 21:16
1

Considere não tentar "sincronizar" a máquina virtual.

Pense nisso: você não "sincroniza" sua área de trabalho e seu notebook dessa maneira. Você as trata como máquinas separadas e usa serviços como o Dropbox, o Google Apps, etc., ou até mesmo um dispositivo USB, para trabalhar em seus arquivos. Da mesma forma, trate as duas VMs do Ubuntu como computadores separados e use serviços como o Ubuntu One e o acima para manter seus arquivos importantes em sincronia.

Se você estiver preocupado em manter o software instalado em sincronia, use

dpkg --list-selections

para obter uma lista do software que você instalou especificamente em uma máquina e depois instalar o mesmo software na outra.

    
por 09.07.2012 / 21:33