Самый быстрый способ объединить моментальные снимки в VirtualBox?

У меня есть vdi с большим количеством снимков, взятых из него – скажем, 50 или 70 снимков. Я хочу иметь один простой vdi с текущим состоянием. Эти снимки занимают слишком много места на диске и не нужны как моментальные снимки.

Я знаю, что если я позвоню

VBoxManage clonehd thedisk.vdi thedisk-full.vdi (50-70 times) VBoxManage clonehd {uuid-of-snapshot}.vdi thedisk-full.vdi --existing 

Я получу то, что хочу. Но это занимает очень много времени (более 5 часов с учетом моего оборудования и 16G начального размера диска).

И, конечно же, я попробовал VBoxManage snapshot delete и это странно: не работает на остановленной машине, может выйти из строя на запущенной машине, а когда она терпит неудачу один раз, это приведет к сбою всех последующих вызовов.

Есть ли способ сделать простой vdi из нескольких снимков – быстрее?

 $ VBoxManage --version 3.2.14r75509 

(Спросил его на ServerFault, но решил, что это место более подходит для этого вопроса)

Нашел решение. Это так же просто, как последний шаг от команд, которые я написал здесь. Т.е.

 VBoxManage clonehd fullpath/{uuid-of-last-snapshot}.vdi thedisk-full.vdi 

Поэтому я должен клонировать только последний снимок, а не каждый снимок из цепочки. И это на тысячи процентов быстрее.

Uuid можно найти в VBoxManage list hdds | grep VmName | tail VBoxManage list hdds | grep VmName | tail

В графическом интерфейсе (в Windows) выберите виртуальную машину, выберите « Снимки» в правом верхнем углу, щелкните правой кнопкой мыши нужный снимок, выберите « Клонировать …» и выберите « Полный клон» в диалоговом окне.

Вот техника (протестированная на VirtualBox 4.3.4), которая использует команду «Clone» для слияния и сжатия всех снимков с новой виртуальной машиной, содержащей один файл VDI:

  1. Переименуйте виртуальную машину, чтобы вы могли повторно использовать свое текущее имя для клонированной виртуальной машины (вы можете изменить имя виртуальной машины на вкладке «Основные» в настройках «Общие»).

  2. Щелкните правой кнопкой мыши VM и запустите команду «Clone …»:

    • Задайте имя оригинальному имени виртуальной машины.
    • Примите оставшиеся значения по умолчанию, например тип Clone: ​​«Full clone»; Снимки: «Текущее состояние машины».
  3. Удалите старую виртуальную машину (щелкните правой кнопкой мыши на виртуальной машине и запустите команду «Удалить …»).

Вы можете попробовать экспортировать в OVF, а затем импортировать обратно сгенерированный файл.

Как объясняется здесь :

OVF не может описать моментальные снимки, которые были сделаны для виртуальной машины. В результате при экспорте виртуальной машины с моментальными снимками будет экспортироваться только текущее состояние машины, а образы дисков в экспорте будут иметь «сплющенное» состояние, идентичное текущему состоянию виртуальной машины.

В результате у вас будет клонированная виртуальная машина с текущим состоянием без других снимков.

Эта операция означает чтение и запись очень больших файлов на одном физическом диске. Единственный способ ускорить это – поместить эти файлы в разные диски, изменив пути в вашей команде VBoxManage. Если на компьютере имеется только один диск, вы можете использовать внешний USB-накопитель или даже диск на другом компьютере через общий сетевой ресурс (в зависимости от скорости вашей сети)

У некоторых есть 10Gib / s LAN, поэтому он может передавать более одного гигабайта в секунду, поэтому он не будет узким местом.

У некоторых есть 1Gib / s LAN, поэтому он может передавать более 100 мегабайт в секунду, поэтому он не будет узким местом (если у вас нет действительно быстрого SSD).

Механические диски при чтении и записи на одном и том же диске в одно и то же время (или много фрагментированных) спускаются примерно на 20 мегабайт в секунду, тогда как при отсутствии фрагментации только чтение или только запись может переходить на более чем 100 мегабайт в секунду.

Вы говорите о LAN медленнее, но не о USB (2.0, не говоря уже об 1.1 или 1.0), намного медленнее.

Я бы предложил следующее: использовать USB 3.1 Gen2 Type C или eSATA / SATA / SAS

Но всегда: используйте второй достаточно быстрый диск.

И всегда: клонирование на другой диск, а копия обратно – намного быстрее, если использовать только один диск, если это не SSD или жесткий диск с независимыми многоголовыми плечами (они могут читать и писать одновременно на двух Поверхности, каждая голова имеет свою руку, очень дорогая, около> 9876 €).

Лучше всего клонировать только виртуальный жесткий диск того состояния, которое вы хотите, а затем проверить, работает ли оно, затем верхний уровень RESTORE (удалит все снимки), затем удалит жесткий диск на диске и подключит его.

Итак, шаги, чтобы потерять все старые состояния по схеме отсутствия снимков дерева:

  1. Клонировать с одного жесткого диска на другой, избегать узких мест
  2. Создайте новый компьютер, подключите этот диск, отключите его, настройте его как inmutable
  3. Проверяйте его работу (поскольку он не поддается), вы будете иметь такое же состояние
  4. Если вам это не нужно, отключите его, замените его на нормальное и т. Д.
  5. Удаление старых снимков машины (сначала ВОССТАНОВЛЕНИЕ)
  6. Удалить временную тестовую машину
  7. Скопируйте обратно на диск виртуальный диск
  8. Прикрепить клонированный диск

Но всегда имеют в виду, моментальные снимки могут быть похожими на полное дерево, один узел может иметь более одного ребенка, каждый ребенок может иметь более одного ребенка и т. Д.

Чтобы работать с деревьями snoapshots, всегда думайте о DELETE как удалении узла, не ободряя остальные узлы (только свободное от этого состояния, но не остальное, ни один родитель и ни один ребенок не будут поглощены, данные будут объединены во все первые подпункты Так что медленный процесс), а в RESTORE – уничтожение всех его дочерних элементов на всех суб-уровнях (потеря всех состояний после того, что вы восстанавливаете, удаляет только файлы, поэтому очень быстрый процесс, всего несколько секунд).

То есть!

PD: как ужасные имена VBOX дали этим двум операциям (удалить только один узел = DELETE; удалить все дочерние узлы на всех подрядах = RESTORE)

  • Как управлять использованием RAM / swap
  • Aggressivly Ram Caching с RAMdisk и готовностью
  • Высокое использование ЦП «Система» и «Системные прерывания» (вызванное ACPI.sys)
  • Как я могу узнать, что использует жесткий диск?
  • Инструменты для поиска узких мест в конфигурации оборудования
  • «Английская программа автозаполнения» для Windows
  • Каков правильный способ отладки медленной установки Windows?
  • Как регистрировать процессы в течение рабочего дня?
  • Использование высокой памяти Windows 10 (неизвестная причина)
  • В Windows 7 существует ли способ узнать, сколько памяти используется службой?
  • Открывает ли много вкладок в Google Chrome проблемы с производительностью?
  • Давайте будем гением компьютера.