¿Archivos de imagen de máquina virtual amigable con la máquina del tiempo (VirtualBox)?

2

Tengo una máquina virtual Windows 7 VirtualBox. El archivo de imagen del disco es de 30 GB y es un archivo .vdi grande. Si cambio algo dentro de eso (incluso unos pocos KB), Time Machine quiere hacer una copia de seguridad del archivo completo de 30 GB cada vez. En realidad, incluso si solo inicio la máquina virtual, Windows realiza algunos cambios en el registro, etc. e incluso con 0 cambios en el nivel de usuario / aplicación, activa la copia completa de 30 GB.

¿Hay alguna manera de hacer una imagen de disco virtual de modo que sea amigable con Time Machine? Entonces, si se cambian algunos KB / MB, ¿solo se copian esos sectores?

Gracias Sid

DeepSpace101
fuente
Para OS XI, coloque los archivos VDI en un sistema de archivos "montado en disco como un archivo" que era escaso (es decir, que constaba de muchos archivos pequeños en lugar de uno solo grande). Esto delegó el problema de virtualbox al sistema operativo.
Thorbjørn Ravn Andersen

Respuestas:

4

Cree una imagen de disco de paquete dispersa que esté compuesta por bandas de 8 MB. Cuando el archivo de imagen VirtualBox ubicado en la imagen del disco cambia, Time Machine solo actualizará las bandas de la imagen del disco que hayan cambiado.

dsk
fuente
1
Esta respuesta suena interesante, pero valdría la pena ampliarla un poco. Puedo encontrar algunos consejos en Internet, pero todos parecen tener algún tipo de problema.
Calimo
4

Después de algunos ajustes, parece que VirtualBox le permite crear el disco duro virtual como archivos VMDK (formato nativo de VMWare). Los archivos VMDK le permiten dividir la imagen total en trozos de 2 GB, por lo que un disco duro de 30 GB es en realidad 16 archivos

  • 1x archivo Meta (archivo de texto que enumera todos los archivos reales) ~ unos pocos KB
  • 15x 2GB VMDK trozos de archivos (el disco virtual real)

Todavía tengo que conectar Time Machine para ver qué tan amigable lo hace, pero creo que esto podría funcionar.

[Actualización # 1] ¡ Esto es ciertamente bastante útil! Ya no me enfrento a una copia completa de una imagen de 30 GB, la copia de seguridad es de aproximadamente 3-4 GB (porque se actualizan varios fragmentos en cada arranque). Un cambio que haría si volviera a comenzar, podría hacer que cada fragmento / porción sea de unos 200 MB cada uno para que (en el peor de los casos) cuando se actualice cualquier archivo, se actualicen 200 MB en lugar de 2 GB.

[Actualización n. ° 2] Lo mencioné en los foros de desarrolladores de VirtualBox y parece que la especificación VMDK definida por VMWare (y utilizada por todos los demás, incluido Oracle VirtualBox) está codificada en fragmentos de 2GB. Por lo tanto, no hay absolutamente ninguna flexibilidad para reducir el tamaño del fragmento a 1 GB / 500 MB o 200 MB.

Además, a diferencia de las pruebas de arranque simples que había hecho antes, desde entonces he notado que si hago algo útil dentro de la VM de Windows 7, ¡el tamaño de la copia de seguridad de Time Machine llega a 10-15GB! De alguna manera, se están golpeando MUCHOS más fragmentos incluso si escribo pocos datos (sospecho que hay fragmentación de archivos en muchos fragmentos + archivo de intercambio)

DeepSpace101
fuente
1
si es posible, evite intercambiar en la imagen VDI.
Thorbjørn Ravn Andersen
3

Según esta publicación de blog:

http://blog.matteocorti.ch/?p=331

crear una instantánea hará el truco:

simplemente cree una instantánea de su máquina. VirtualBox dejará intacta la imagen del disco duro y creará un archivo separado con solo los cambios desde el momento de la instantánea.

iceripple
fuente
Tipo, pero no realmente. Si cambio 5GB en un grupo de 10GB, las instantáneas de VirtualBox ahora almacenarán 15GB como 10GB (pre-instantánea) + 5GB (diferencia posterior a la instantánea). Idealmente, nos gustaría limitarlo a 10 GB y que la máquina del tiempo solo elija el delta de 5 GB. La respuesta seleccionada de cortar el disco duro virtual (Z bytes) en muchas (n) franjas (cada franja es N byte => Z = n * N) funciona en esa dirección. ¿Abajo? A medida que crece cada banda, la solución se vuelve menos óptima ya que cada byte modificado en una banda ahora puede dar como resultado N-1 bytes de la banda que requieren respaldo por parte de TimeMachine. ¡Gracias!
DeepSpace101
En realidad, si cambia tantos datos dentro de la VM, periódicamente puede hacer una nueva instantánea y eliminar la anterior. Esta operación fusionará los datos, reduciendo el tamaño total de la imagen del disco virtual. Lo que activará una copia de seguridad completa de TimeMachine por una vez y luego todo el proceso comenzará de nuevo.
vadipp
@Sid también puede almacenar sus enormes cantidades de datos modificables fuera de la máquina virtual. Esto se puede hacer utilizando tecnologías como "carpetas compartidas de Virtualbox", samba, también conocido como recursos compartidos de Windows, e incluso NFS ( technet.microsoft.com/en-us/library/cc754350.aspx ).
vadipp
0

También me ha interesado esto: aquí hay una respuesta que apareció en una búsqueda en Google .

¿Podría funcionar esto? (Pregunto porque soy demasiado tímido para probar esto yo mismo en mi VM WinXP de misión crítica ...)

Para resumir el proceso, primero debemos crear el disco VDI base y marcarlo como inmutable. Esto obliga a VirtualBox a crear una segunda imagen de diferenciación de los cambios más allá de la imagen de disco base inmutable. El segundo paso es cambiar el modo del disco de diferenciación, alternando el ajuste automático de encendido a apagado. Por defecto, el disco de diferenciación solo se aplica a una ejecución de la VM. En otras palabras, cualquier cambio entre reinicios se perderá. Desactivar el autoajuste soluciona esto.

Estos son los pasos que extraje de esa discusión, incluidos los comandos que deben ejecutarse:

  1. Cree un disco .VDI inmutable.

    1. Separe el VDI base de la máquina virtual en la configuración de VM.
    2. Haga que el VDI sea inmutable ejecutando el siguiente comando:

      VBoxManage openmedium disk -type immutable DISK_FILE_NAME.vdi
      
    3. Vuelva a conectar el VDI ahora inmutable a la VM.

  2. Dígale a VirtualBox que use un disco de diferenciación explícitamente. Haga clic en la casilla de verificación que dice 'Disco de diferenciación' en la configuración de VBox para el VDI que es inmutable. Tenga en cuenta el GUID del disco de diferenciación que se crea.

  3. Deshabilite el autoreset para el disco de diferenciación:

    1. Por defecto, VBox restablecerá el estado de la máquina entre reinicios.
    2. Deshabilite este comportamiento alternando la configuración de autoreset:

      VBoxManage modifyhd --autoreset off DIFFERENCING_DISK_GUID
      

Después de seguir estos pasos, debería poder iniciar su VM, hacer algunos cambios y reiniciar. Los cambios en el disco que realizó deben ser persistentes. Sería bueno que VBox hiciera este caso de uso particular basado en GUI, pero al menos es posible. De todos modos, ahora TimeMachine solo copia el disco de diferenciación que es significativamente más pequeño que la imagen de disco base.

Mikey
fuente
1
Podría funcionar, sin embargo, como él señala, requirió mantenimiento periódico donde se fusiona el disco de diferenciación con el disco base => nuevo disco base y continúa con un nuevo disco de diferenciación. ¡Personalmente, prefiero no jugar con mi disco después de configurarlo!
DeepSpace101
0

Sid ...

Finalmente pude convertir mi archivo .vdi de Windows XP Pro de 10GB en un montón de archivos .vmdk de +/- 2GB.

Esperaba que cualquier cambio que hiciera en Windows se limitara a una pequeña cantidad de archivos .vmdk, de modo que Time Machine hiciera una copia de seguridad de una pequeña cantidad de fragmentos de .vmdk de 2GB.

No funcionó del todo. Parece que cuando cargo la VM de Windows XP, cualquier cambio que haga, por pequeño que sea, termina cambiando la fecha / hora "modificada" de TODOS los archivos .vmdk ...

... lo que significa que Time Machine realiza una copia de seguridad de los 10GB completos, como antes.

¿Me estoy perdiendo de algo? Parecía que esta sería la solución para hacer una máquina virtual amigable con Time Machine ... ¿tal vez no tanto?

Mikey
fuente
1
También actualicé mi propia respuesta. Incluso en el escenario de 'solo arranque', el tuyo será aún más severo ya que tuve el 300% de los fragmentos que tenías (5 contra 15). Creo que tener fragmentos ayuda un poco, pero no del todo :( ... Es posible que su archivo de intercambio esté fragmentado en todos / la mayoría de los fragmentos.
DeepSpace101
Entonces ... un poco apesta, ¿no? Estuvo terriblemente cerca de ser increíble. Oh bien ...
Mikey
Sí, pero intente desfragmentar el disco duro virtual WinXP (PageDefrag se ve bien para XP. No en mi caja Win7) desde WinXP. Eso debería juntar el archivo de intercambio, en menos fragmentos físicos. Tan pronto como lo haga, será una gran copia de seguridad de TM ya que muchas cosas han cambiado. Sin embargo, la copia de seguridad 2nd + TM en adelante debe ser más pequeña. Imperfecto, lo sé: / ...
DeepSpace101
1
Bueno ... no tuve suerte para mí. Ejecuté la desfragmentación integrada varias veces en mi VM WinXP, salí y hice una copia de seguridad de todo con Time Machine, luego volví a cargar la VM, salí y realicé una copia de seguridad por segunda vez. Incluso con la desfragmentación, etc., todos los 7 de los archivos .vmdk que componen mi 10GB VM mostraron un cambio en la fecha de modificación, lo que les provocó a todos estar respaldada por la máquina de tiempo de nuevo . Entonces, supongo que no puedo ganar por perder, pero no por falta de intentos. Gracias por la ayuda y las excelentes sugerencias ... tenían mucho sentido, pero en la práctica no me funcionaron.
Mikey
1
@Sid ... lo siento, me corté allí ... Estoy usando WinXP en mi Mac exclusivamente para ejecutar Quicken '11. Nada más. Había estado almacenando mi archivo de datos Quicken dentro de la VM WinXP, lo que significaba que para hacer una copia de seguridad, tenía que hacer una copia de seguridad del archivo .vdi ENTERO, todos los más de 10 conciertos. Y luego se me ocurrió asignar una carpeta compartida de VirtualBox desde el lado de Mac al lado de WinXP, y almacenar el archivo de datos de Quicken en el lado de Mac . De esa manera, obtendrá copias de seguridad regulares de TM, mientras que ahora puedo excluir el .vdi de las copias de seguridad de TM, solo haciendo copias de seguridad manualmente cuando realice cambios importantes en WinXP. ¡Problema resuelto!
Mikey