Como manter um pequeno disco rígido diferencial do Virtualbox

8

Estou tentando usar um disco rígido de caixa virtual em vários computadores usando a sincronização do dropbox (uma popular ferramenta de nuvem). Presumo que não há duas máquinas abrirão a mesma unidade ao mesmo tempo.

Para reduzir as transferências de dados, eu gostaria de usar apenas um diferencial do meu disco rígido que armazene apenas um pequeno volume de "documentos", sem sincronizar todo o disco rígido (não confio que a sincronização diferencial do Dropbox seja muito eficaz) . Usando esta documentação oficial do VirtualBox , fiz o seguinte truque que me satisfaz apenas parcialmente.

  • Crie uma unidade diferencial com um truque:
    • Torne a unidade com várias conexões (consulte a documentação acima)
    • Faça uma alteração simples na unidade do convidado, que criará um arquivo diff
  • Restaurar (usando o VBox Media Manager, Arquivo> Virtual Media Manager) a unidade base para o modo "normal" (eu preciso disso para poder conectá-lo a várias máquinas)
  • Desconecte a unidade principal da máquina e conecte o diff
    • Isso requer um truque extra ao se conectar a uma nova máquina: anexar, em seguida, desconecte o principal e depois o diff, caso contrário o VirtualBox não reconhecerá o GUID do disco

Esse truque faz o trabalho: como eu trabalho apenas com o disco diff, a base nunca é modificada e, portanto, nunca é sincronizada na rede. A parte ruim, porém, é que, mesmo com muito pouco crescimento na quantidade de dados armazenados , a unidade diff está crescendo no espaço que o vdi (arquivo de armazenamento da unidade virtual no host) assume no host por causa de como o SO convidado fragmenta e move arquivos . E, assim, estou começando a sincronizar um disco rígido diff sempre crescente, perdendo as vantagens de ter um diff.

O problema é: eu quero é uma maneira de 'mesclar' ou 'desfragmentar alterações' regularmente no diff vdi para manter a sincronização pequena. Eu posso pagar (embora não queira) fazer uma sincronização completa do vdi principal toda vez que faço essa fusão. Mas a única maneira que pensei é recriar um diff vdi usando o mesmo processo e restaurar os arquivos nesse disco através de algum tipo de backup. Não é muito útil. Alguém tem uma ideia melhor?

É claro que existe outra maneira de trabalhar apenas em um diretório compartilhado (entre o host e o convidado), mas isso precisará de uma configuração extra (muitos links simbólicos no convidado) e eu não quero que os usuários do host mexam com arquivos de convidados.

Fui claro o suficiente?

PPC
fonte
Algumas informações extras: Meu sistema convidado é um winXP mínimo com parte imutável do ~ 5GiB e uma parte de 'documentos' de ~ 500MiB. Os anfitriões são várias janelas e máquinas Linux, alguns são pequenos laptops de disco com conexão irregular
PPC
Você diz que "não confia que a sincronização diferencial do DropBox seja muito eficaz". Você realmente testou?
Colin 't Hart
@ Colin'tHart: Não é um teste muito completo, mas fiz pequenas alterações na unidade virtual (alguns novos arquivos e modifiquei alguns antigos) na produção, e a sincronização demorou aproximadamente o tempo para carregar o arquivo inteiro. Talvez Dropbox não é culpa (que poderia ser NTFS que faz mudanças maiores do que o esperado), mas o resultado é: demora muito tempo
PPC

Respostas:

3

O VBoxManage modifyhd --compact eliminará todos os blocos que você zerou com uma ferramenta apropriada (consulte o manual). Não tenho certeza se anexar um disco separado para os documentos (talvez gravação ) seria melhor para suas necessidades.

ignis
fonte
Parece uma boa idéia para investigar. Não tenho certeza de que ele realmente preservará a largura de banda (se funcionar no diff), pois essa alteração provavelmente atrapalha bastante o algoritmo de "sincronização inteligente" do dropbox. Eu deveria tentar fazer essa alteração o mais sistemática possível (cada vez que um usuário fecha sua VM?). Ótima idéia de qualquer maneira.
PPC
0

Se todo o seu sistema operacional host for Mac OS 10.5 ou superior, você poderá usar o mecanismo Sparse Bundle, adequado para sincronização / backup incremental com ferramentas como Time Machine ou rsync: http://en.wikipedia.org/wiki/Sparse_image# Sparse_Bundle

Estou usando-o no Dropbox com um volume de 3 GB e funciona bem. Obviamente, seu disco da VM provavelmente tem entre 10 e 20 GB, portanto a primeira sincronização será muito lenta. No entanto, ele pode ser acelerado pelo Dropbox com sincronização de LAN.

Além disso, você deve ter o cuidado de montá-lo apenas uma vez em um determinado momento (como você disse) e permitir a sincronização após o estado de parada / espera da VM.

norz
fonte
Não foi possível testar sua solução, meus anfitriões são win7 e Ubuntu Natty :(
PPC