Mantener y sincronizar una VM VirtualBox entre dos computadoras separadas

13

Tengo una VM VirtualBox que tiene un proyecto en el que estoy trabajando. Me gustaría poder usar esta VM en dos computadoras separadas, para poder trabajar en ella donde esté en ese momento. He visto respuestas sobre la transferencia, clonación y copia de seguridad de máquinas virtuales, pero nada sobre tener dos copias y mantenerlas sincronizadas.

¿Cuál es la forma más fácil (la menor cantidad de pasos o la más sencilla) o la mejor (menor riesgo de problemas) de mantener una sola imagen de VM en varias computadoras?

Idealmente, preferiría no ejecutar la VM desde una unidad USB ya que una de las dos computadoras tiene muy pocos puertos USB, pero si eso es lo mejor, entonces lo tomaré (en realidad no estoy seguro si hay cualquier problema al ejecutar una VM desde una unidad USB). Sin embargo, planearía usar una unidad USB para transferir cualquier archivo entre computadoras.

rsgoheen
fuente

Respuestas:

10

Creo que tiene dos opciones aquí: la primera es configurar (en las instalaciones de Virtualbox en ambas computadoras) la carpeta donde se almacenan las máquinas virtuales en algún tipo de disco duro portátil o remoto; Si las computadoras que usará están conectadas entre sí en una red, puede usar una carpeta compartida; de lo contrario, me temo que la única solución es un pendrive USB o un disco duro externo. Para configurar la carpeta, vaya a File > Preferences > General > Default Machine Folder. La velocidad de la llave USB podría ser un límite en el rendimiento general.

La segunda solución, que también requiere un pendrive o algo similar (pero solo para transportar sus archivos VM), es exportar e importar manualmente la VM deseada cada vez que necesite llevarla. Puede hacer esto seleccionando la VM e ir con File > Export Appliancey File > Import Appliance. Al exportar, se creará un archivo con el formato .ova, es un archivo que contiene todos los archivos necesarios para usar la VM, al importarlo en otra instalación, tendrá la misma VM en la segunda computadora. De esta manera, está utilizando el pendrive para simplemente transportar sus archivos, que cuando se vuelvan a importar se almacenarán y accederán desde su computadora, por lo tanto, la velocidad del USB no es una preocupación.

Sekhemty
fuente
5

Ante exactamente el mismo problema y creo que lo resolví.

Digamos que tiene dos máquinas, A y B. Cree / prepare su máquina virtual en A. Después de eso, tome una instantánea o cree un clon vinculado (ambos funcionan, pero los pasos adicionales difieren, dará uno, puede resolver el otro)

Ahora, asegúrese de tener un Virtualbox recién instalado en B. Copie las máquinas virtuales ~ / .VirtualBox y ~ / VirtualBox de A a B con un USB (teniendo en cuenta que están en sitios lejanos)

Ahora, si elige la forma de instantánea, sincronice la carpeta ~ / VirtualBox VMs / YourVM / Snapshots hasta que sea lo suficientemente grande. Si se hace más grande, cree otra instantánea en A y copie la carpeta YourVM en B por una vez y solo sincronice este nuevo archivo de instantánea en la carpeta Snapshots.

Si toma una instantánea o crea un clon vinculado en A o B, este ritual se romperá, tenga en cuenta.

Probado en 5.0.20

Malkocoglu
fuente
Respuesta muy intrigante. ¿Harías esto todavía hoy o hay una mejor manera?
l --''''''--------- '' '' '' '' '' ''
4

Sé que este hilo tiene un año de antigüedad, pero es un resultado de búsqueda superior en Google por el problema de compartir una VM entre dos ubicaciones.

VirtualBox le permite conectarse de forma remota a una VM en ejecución usando RDP. Si no desea que la máquina virtual se ejecute continuamente, instale alguna forma de iniciarla de forma remota.

Hay una opción para "Permitir múltiples conexiones", por lo que ni siquiera tendría que desconectarse de una ubicación antes de conectarse desde otra.

Si no puede alojar su propia VM, una búsqueda rápida en Google encontró proveedores que alojarán sus imágenes de VirtulaBox por usted.

Nunca he intentado todo esto ...

cjpembo
fuente
4

Creo que la respuesta de Sekhemty es la única forma de hacer lo que quieres.

Pero, ¿por qué necesita mover su máquina virtual? ¿Por qué no simplemente mover sus proyectos? Configure su proyecto en un git privado y solo presione y tire según lo necesite.

Otro método para probar, si necesita mantener la consistencia de la máquina y está cambiando mucho, sería usar una configuración vagabunda y de chef / títere. Esto funciona mediante el uso de un chef (que es una gema de rubí) y una marioneta (no he usado marioneta) para decirle vagabundo lo que desea que su VM incluya e instale.

Funciona mediante el uso de un script, el chef o el títere, y el vagabundo lee este script cuando inicia la VM. Si desea que se instale algo, simplemente agréguelo al script y si aún no está allí, ¡se instalará cuando "vague"! Me tomó un tiempo acostumbrarme, una curva de aprendizaje lo suficientemente empinada, pero es muy eficiente una vez que te acostumbras y significará que solo tienes que moverte por un archivo de script en lugar de una VM completa.

http://red-badger.com/blog/2013/02/21/automating-your-infrastructure-with-vagrant-chef-from-development-to-the-cloud/

ilimitado08
fuente
2
No se trata solo del código (que entra en un repositorio) y la configuración; es porque la VM es mi entorno de desarrollo. Comencé a usar VirtualBox para poder trabajar en Ubuntu en una computadora con Windows. Esto me daría un entorno de desarrollo constante cuando es menos conveniente mover el entorno que mover una copia del mismo.
rsgoheen
Bueno, entonces vagabundo y chef / títere parece que es el mejor. De esa manera, si necesita cambiar algo en su entorno de desarrollo, no es necesario exportar e importar su VM, simplemente agregue lo que instaló a su script y vagabundo lo construirá en su VM al inicio. También es muy útil para tener diferentes instancias de compilaciones de desarrollo, ya que vagabundo funciona a partir de un "cuadro base (SO)" y se basa además de lo que el script también le dice, por lo que podría tener múltiples entornos de prueba pero solo usando espacio de uno.
boundless08
2

Puede sincronizar las imágenes de la máquina virtual entre sus dos computadoras.

Alejandro
fuente
2
Un poco más de detalle haría de esta una mejor respuesta. ¿Puedes elaborar?
Dave M
2

Siguiendo el principio KISS, después de que las máquinas virtuales se registran y se ajustan las configuraciones, solo rsyncel *.vdiarchivo se cruza mientras ambos lados están apagados.

rsync -aPh <path-to-vm>/<diskname>.vdi <remote>:<path-to-vm>/

No habrá forma de "fusionar" conflictos, por supuesto, por lo que debe ser disciplinado acerca de cómo hacer cambios en la VM y reflejar estos cambios.

Mientras tanto, puede poner la mayoría de sus datos personales en un NAS para que siempre esté actualizado y sea accesible desde todas las máquinas. Además, puede montar discos .vdi adicionales para contener la partición de intercambio u otro almacenamiento temporal para no aumentar el tamaño de su sistema .vdi.

Si está en Windows, debe instalar cygwin (o msys2) para el programa ssh y rsync.

T Nierath
fuente
1

Una posible solución, dependiendo de su caso de uso, es una variación en la respuesta de cjpembo.

Si las dos computadoras separadas están en la misma LAN en la misma ubicación, entonces podría ser posible ejecutar una VM en un servidor ESXi o similar, y simplemente usar la función de consola remota de las herramientas de administración (o incluso SSH) para acceder desde las otras dos computadoras.

Obviamente, si una de las computadoras con las que desea usar la VM es una computadora portátil que se moverá, entonces esta posiblemente no sea una solución, especialmente si tiene que compartir una gran cantidad de datos entre el "host" y el "invitado" ambientes.

Si la VM es relativamente autónoma, las capacidades de la consola remota de VMware son bastante eficientes, por lo que, a menos que necesite reproducción de video en la VM, puede funcionar lo suficientemente bien, incluso remotamente, para ser lo suficientemente bueno.

Michael Firth
fuente
0

Lo logré usando un ssd externo en el disco usb c. La VM se ubicará en el disco ssd y se hará referencia en mi configuración de virtualbox en ambas computadoras portátiles. Tomé un USB 3.1 Gen2 Type-C (10Gbps), modelo de 540MB / s, y el rendimiento está bien.

Med Ali Difallah
fuente