Tengo vdi con una gran cantidad de instantáneas tomadas, por ejemplo, 50 o 70 instantáneas. Quiero tener un vdi simple con un estado actual. Estas instantáneas ocupan demasiado espacio en el disco y no son necesarias como instantáneas.
Sé que si llamo
VBoxManage clonehd thedisk.vdi thedisk-full.vdi
(50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing
Conseguiré lo que quiero. Pero lleva mucho, mucho tiempo (más de 5 horas dado mi hardware y el tamaño de disco inicial de 16G).
Y, por supuesto, lo intenté VBoxManage snapshot delete
y es extraño: no funciona en la máquina detenida, puede fallar al ejecutar la máquina y cuando falla una vez, fallará todas las llamadas posteriores.
¿Hay alguna manera de hacer vdi simple a partir de varias instantáneas, más rápido?
$ VBoxManage --version
3.2.14r75509
(lo solicité en ServerFault pero decidí que este lugar es más apropiado para esta pregunta)
fuente
Respuestas:
Encontré la solución. Es tan simple como el último paso de los comandos que escribí aquí. Es decir
Por lo tanto, debería clonarhd solo la última instantánea, no todas las instantáneas de la cadena. Y es miles por ciento más rápido.
El líquido se puede encontrar en
VBoxManage list hdds | grep VmName | tail
En la GUI (en Windows), seleccione la VM, seleccione Instantáneas en la parte superior derecha, haga clic con el botón derecho en la instantánea que desee, seleccione Clonar ... y seleccione Clonar completo en el cuadro de diálogo.
fuente
thedisk-full.vdi
archivo en el disco, primero cambie el nombre del comando a algo comothedisk-full-new.vdi
.tail -1
"?clonehd
está en desuso y se deja por compatibilidad con versiones anteriores, useclonemedium
en su lugar.Aquí hay una técnica (probada en VirtualBox 4.3.4) que utiliza el comando 'Clonar' para fusionar y compactar todas las instantáneas a una nueva VM que contiene un solo archivo VDI:
Cambie el nombre de la máquina virtual para poder reutilizar su nombre actual para la máquina virtual clonada (puede cambiar el nombre de la máquina virtual desde la pestaña 'Básico' de la configuración 'General').
Haga clic derecho en la VM y ejecute el comando 'Clonar ...':
Elimine la VM anterior (haga clic con el botón derecho en la VM y ejecute el comando 'Eliminar ...').
fuente
Puede intentar exportar a OVF y luego volver a importar el archivo generado.
Como se explica aquí :
Como resultado, tendrá una máquina virtual clonada con el estado actual sin otras instantáneas.
fuente
Esa operación significa leer y escribir archivos muy grandes en el mismo disco físico. La única forma en que puede acelerar eso es poner esos archivos en diferentes discos cambiando las rutas en su comando VBoxManage. Si la máquina tiene solo un disco, puede usar una unidad USB externa o incluso un disco en otra máquina a través de un recurso compartido de red (dependiendo de la velocidad de su red)
fuente
Algunos tienen LAN de 10Gib / s, por lo que puede transferir más de un gigabyte por segundo, por lo que no será un cuello de botella.
Algunos tienen LAN de 1Gib / s, por lo que puede transferir más de 100 megabytes por segundo, por lo que no será un cuello de botella (a menos que tenga un SSD realmente rápido).
Los discos mecánicos, cuando leen y escriben en el mismo disco al mismo tiempo (o están muy fragmentados), bajan cerca de 20 megabytes por segundo, mientras que en la lectura o escritura no fragmentada solo pueden llegar a más de 100 megabytes por segundo.
Dices que LAN es más lenta, pero no que USB (2.0, sin mencionar 1.1 o 1.0) es mucho más lento.
Lo que sugeriría sería: usar USB 3.1 Gen2 tipo C o un eSATA / SATA / SAS
Pero siempre: use un segundo disco lo suficientemente rápido.
Y de todos modos: la clonación en otro disco y la copia del archivo es mucho más rápida que usar solo uno de los discos a menos que sea un SSD o un disco duro con brazos independientes de múltiples cabezales (pueden leer y escribir al mismo tiempo en dos lugares de superficie, cada cabeza tiene su propio brazo, muy caro, alrededor de> 9876 €).
Lo mejor es clonar solo el disco duro virtual del estado que desee, luego verificar que funciona, luego RESTAURAR el nivel superior (eliminará todas las instantáneas), luego retire el HDD en el almacenamiento y conecte ese nuevo.
Entonces, pasos, para perder todos los estados anteriores en un esquema de instantáneas sin árbol:
Pero siempre tenga en cuenta que las instantáneas pueden ser como un árbol completo, un nodo puede tener más de un hijo, cada hijo puede tener más de un hijo, etc.
Para trabajar con árboles de snoapshots, siempre piense en DELETE como eliminar un nodo sin afectar el resto de nodos (solo pierde ese estado, pero no hay descanso, ningún padre y ningún hijo se verán afectados, los datos se fusionarán en todos los primeros sub Niveles secundarios, proceso tan lento) y en RESTAURAR como la destrucción de todos sus elementos secundarios en todos los subniveles (perdiendo todos los estados después de aquel que restaura, solo elimina los archivos, por lo que el proceso es realmente rápido, solo segundos).
¡Es decir!
PD: Qué horribles nombres le dio VBOX a esas dos operaciones (eliminar solo un nodo = ELIMINAR; eliminar todos los nodos secundarios en todos los niveles secundarios = RESTAURAR)
fuente