Cómo mantener un pequeño disco duro diferencial Virtualbox

8

Estoy tratando de usar un disco duro virtualbox en varias computadoras usando la sincronización de dropbox (una herramienta popular en la nube). Supongo que no hay dos máquinas que abran la misma unidad al mismo tiempo.

Para reducir las transferencias de datos, me gustaría usar solo un diferencial de mi disco duro que almacenará solo un pequeño volumen de "documentos", sin sincronizar todo el disco duro (no confío en que la sincronización diferencial de Dropbox sea muy efectiva) . Usando esta documentación oficial de VirtualBox , hice el siguiente truco que solo me satisface en parte.

  • Construye una unidad diferencial con un truco:
    • Haga que la unidad sea de múltiples conexiones (consulte la documentación anterior)
    • Realice un cambio simple en la unidad del invitado, que creará un archivo diff
  • Restaure (usando VBox Media Manager, Archivo> Virtual Media Manager) la unidad base al modo "normal" (necesito esto para poder conectarlo a varias máquinas)
  • Desconecte la unidad principal de la máquina y, en su lugar, conecte el diferencial
    • Esto necesita un truco adicional cuando se conecta a una nueva máquina: conecte y luego desconecte el principal, luego conecte el diff, de lo contrario VirtualBox no reconocerá el GUID del disco

Este truco hace el trabajo: como trabajo solo con el disco diff, la base nunca se modifica y, por lo tanto, nunca se sincroniza a través de la red. Sin embargo, lo malo es que, incluso si crece muy poco la cantidad de datos almacenados , la unidad de diferencia está creciendo en el espacio que el vdi (archivo de almacenamiento de la unidad virtual en el host) toma en el host debido a cómo el SO huésped fragmenta y mueve los archivos . Y así, estoy empezando a sincronizar un disco duro diff cada vez mayor, perdiendo las ventajas de tener un diff.

El problema es: lo que quiero es una forma de 'fusionar' o 'desfragmentar cambios' regularmente en el diff vdi para mantener la sincronización pequeña. Puedo permitirme (aunque no lo quiero) hacer una sincronización completa del vdi principal cada vez que realizo esta fusión. Pero la única forma en que he pensado es recrear un diff vdi usando el mismo proceso y restaurar los archivos en ese disco a través de algún tipo de copia de seguridad. No muy a mano. Alguien tiene una mejor idea?

Por supuesto, existe la otra forma de trabajar solo en un directorio compartido (entre el host y el invitado), pero eso necesitará una configuración adicional (muchos enlaces simbólicos en el invitado) y no quiero que los usuarios del host se equivoquen con archivos de invitados.

¿He sido lo suficientemente claro?

PPC
fuente
Alguna información adicional: Mi sistema de invitado es un winXP mínimo con una parte inmutable de ~ 5GiB y una parte de 'documentos' de ~ 500MiB. Los hosts son varias máquinas Windows y Linux, algunas son computadoras portátiles de disco pequeño con conexión errática
PPC
Dices que "no confías en que la sincronización diferencial de DropBox sea muy efectiva". ¿Realmente lo has probado?
Colin 't Hart
@ Colin'tHart: No es una prueba muy exhaustiva, pero hice pequeños cambios en la unidad virtual (algunos archivos nuevos y modifiqué algunos viejos) en la producción, y la sincronización tomó aproximadamente el tiempo para cargar todo el archivo. Quizás Dropbox no sea el culpable (podría ser NTFS el que haga cambios más grandes de lo esperado), pero el resultado es: lleva años
PPC

Respuestas:

3

VBoxManage modifyhd --compact eliminará cualquier bloque que haya puesto a cero con una herramienta adecuada (consulte el manual). No estoy seguro si unir un disco separado para los documentos (tal vez escritura ) sería mejor para sus necesidades.

ignis
fuente
Suena como una buena idea para investigar. No estoy seguro de que realmente conserve el ancho de banda (si funciona en diff), ya que tal cambio probablemente estropeará mucho el algoritmo de "sincronización inteligente" de Dropbox. Debería intentar hacer un cambio tan sistemático como sea posible (¿cada vez que un usuario cierra su VM?). Gran idea de todos modos.
PPC
0

Si todo su sistema operativo host es Mac OS 10.5+, puede usar el mecanismo Sparse Bundle, que es muy adecuado para sincronización / copia de seguridad incremental con herramientas como Time Machine o rsync: http://en.wikipedia.org/wiki/Sparse_image# Sparse_Bundle

Lo estoy usando sobre Dropbox con un volumen de 3 GB, y funciona bien. Por supuesto, su disco VM probablemente tenga al menos 10-20 GB, por lo que la primera sincronización será muy lenta. Sin embargo, puede ser acelerado por Dropbox con sincronización LAN.

Además, afaik debes tener cuidado de montarlo solo una vez en un momento dado (como dijiste), y permitir la sincronización después de que la VM se haya detenido / estado en espera.

Norz
fuente
No se pudo probar su solución, mis hosts son win7 y Ubuntu Natty :(
PPC