¿Cómo sincronizar dos instancias de una máquina virtual para usarlas en diferentes computadoras?

8

He estado usando VirtualBox en mi escritorio durante bastante tiempo. Habiendo comprado recientemente una computadora portátil, quiero poder llevar conmigo mi máquina virtual Ubuntu y hacer que los cambios que hago en la computadora portátil se propaguen al escritorio, y viceversa, cuando llegue / salga de casa. El sistema operativo host es Windows 7 en ambas computadoras y ejecuta VirtualBox 4.

Mi primer pensamiento fue sincronizar los archivos del disco virtual. Mi herramienta de elección sería rsync, más específicamente la versión de Cygwin, usar la --inplaceopción para reducir las escrituras tanto como sea posible. Pero eso sería inviable: me impediría trabajar por separado en las máquinas virtuales, ya rsyncque no tendría forma de detectar conflictos y fusionarlos correctamente sin conocer los sistemas de archivos que se encuentran dentro de los contenedores.

La siguiente opción sería conectar rsynclas máquinas entre sí. ¿Funcionaría sin estropear la gestión de paquetes? ¿Tendría que hacer algo manualmente además de actualizaciones como nuevo kernel o controladores? ¿Hay alguna otra solución que pueda funcionar mejor?

danielkza
fuente
Creo que deberías dividir esta pregunta en dos. Primero pregunte sobre la duplicación del servidor. Luego, cuando (con suerte) tenga algunas respuestas, pregunte cómo implementarlas en una VM.
Nifle
Otra posibilidad sería tener una única instancia de la VM en el portátil y acceder a ella de forma remota desde el sistema principal cuando esté en casa.
Journeyman Geek
Debería sincronizar solo software y documentos, no todas las máquinas virtuales, ya que no puede tener dos máquinas en la red con las mismas direcciones MAC y nombres de host. Eso causaría caos.
paradroid
@Journeyman Geek: No había pensado en eso, podría funcionar, pero sería un poco más lento teniendo en cuenta que el disco duro de mi computadora portátil se arrastra en comparación con el SSD de mi escritorio.
danielkza
1
¿Hay alguna razón por la que no ejecuta la VM en una unidad externa y la mueve de un sistema a otro?
Dave M

Respuestas:

2

Usar rsyncpara operaciones bidireccionales es difícil; Te sugiero que lo veas unisoncomo una alternativa. Funcionará en ambos sentidos, y le dirá qué va a hacer antes de hacerlo, y también detectará los archivos manipulados simultáneamente en ambos lados.

Ejecutar la sincronización fuera de la VM tendrá los problemas que usted describe. Los resultados cuando se ejecutan dentro de la VM dependerán en gran medida de lo que sincronice.

  • Sincronizar su directorio personal no debería ser ningún problema, y ​​debería sincronizar la mayor parte de su trabajo diario, supongo.
  • Sincronizar los datos del administrador de paquetes solo tendrá sentido si realiza una sincronización completa de casi todo, tal vez con algunas excepciones bien consideradas. Sin embargo, en una sincronización bidireccional, esto casi siempre conducirá a un conflicto, por lo que solo recomendaría esto para un enfoque de estilo rsync.
  • La sincronización /etc, así como su hogar, debe sincronizar la mayoría de los datos de configuración y aún tener poco impacto en lo que hace el administrador de paquetes. Pero si instala algún software en una VM, también deberá instalarlo manualmente en la otra, y probablemente solo debería sincronizarse después de hacerlo, en caso de que la actualización cambie algún archivo de configuración.
MvG
fuente
1

Considere no intentar "sincronizar" la máquina virtual en absoluto.

Piénselo: no "sincroniza" su computadora de escritorio y portátil de esta manera. Los trata como máquinas separadas y utiliza servicios como Dropbox, Google Apps, etc., o incluso una memoria USB, para trabajar en sus archivos. Del mismo modo, trate las dos máquinas virtuales de Ubuntu como computadoras separadas y use servicios como Ubuntu One y los anteriores para mantener sus archivos importantes sincronizados.

Si le preocupa mantener sincronizado el software instalado, puede usar

dpkg --list-selections

para obtener una lista del software que instaló específicamente en una máquina y luego instalar el mismo software en la otra.

Michael Hampton
fuente