У меня есть видео с довольно большим количеством снимков, скажем, 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, но решил, что это место больше подходит для этого вопроса)
virtualbox
performance
virtualization
snapshot
Андрей Регентов
источник
источник
Ответы:
Нашел решение. Это так же просто, как последний шаг из команд, которые я написал здесь. Т.е.
Поэтому я должен клонировать только последний снимок, а не каждый снимок из цепочки. И это на тысячи процентов быстрее.
UUID можно найти из
VBoxManage list hdds | grep VmName | tail
В графическом интерфейсе (в Windows) выберите виртуальную машину, выберите Снимки в правом верхнем углу, щелкните правой кнопкой мыши нужный снимок, выберите Клонировать ... и выберите Полный клон в диалоговом окне.
источник
thedisk-full.vdi
файл на диске, сначала измените имя в команде на что-то вродеthedisk-full-new.vdi
.tail -1
"?clonehd
устарела и оставлена для обратной совместимости, используйтеclonemedium
вместо этого.Вот методика (протестированная на VirtualBox 4.3.4), которая использует команду «Клонировать» для объединения и сжатия всех снимков в новую ВМ, содержащую один файл VDI:
Переименуйте виртуальную машину, чтобы вы могли повторно использовать ее текущее имя для клонированной виртуальной машины (вы можете изменить имя виртуальной машины на вкладке «Основные» в настройках «Общие»).
Щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Клонировать ...»:
Удалите старую виртуальную машину (щелкните правой кнопкой мыши на виртуальной машине и выполните команду «Удалить ...»).
источник
Вы можете попробовать экспортировать в OVF, а затем импортировать обратно сгенерированный файл.
Как объяснено здесь :
В результате у вас будет клонированная виртуальная машина с текущим состоянием без других снимков.
источник
Эта операция означает чтение и запись очень больших файлов на одном физическом диске. Единственный способ ускорить это - поместить эти файлы на разные диски, изменяя пути в вашей команде VBoxManage. Если на машине есть только один диск, вы можете использовать внешний USB-накопитель или даже диск на другой машине через общий сетевой ресурс (в зависимости от скорости вашей сети).
источник
Некоторые имеют локальную сеть 10 Гбит / с, поэтому она может передавать более одного гигабайта в секунду, поэтому это не будет узким местом.
Некоторые имеют локальную сеть 1 Гбит / с, поэтому она может передавать более 100 мегабайт в секунду, поэтому это не будет узким местом (если у вас не очень быстрый SSD).
Механические диски при одновременном чтении и записи на одном и том же диске (или сильно фрагментированном) работают со скоростью около 20 мегабайт в секунду, тогда как при несфрагментированном только чтении или только записи может превышать 100 мегабайт в секунду.
Вы говорите о локальной сети медленнее, но не о USB (2.0, не говоря уже о 1.1 или 1.0) намного медленнее.
Что я хотел бы предложить: использовать USB 3.1 Gen2 Type C или eSATA / SATA / SAS
Но всегда: используйте второй достаточно быстрый диск.
И всегда: клонирование на другой диск и копирование файла назад происходит намного быстрее, чем при использовании только одного диска, если только это не SSD или жесткий диск с независимыми многоголовочными кронштейнами (они могут одновременно читать и записывать на двух Поверхностные места, каждая голова имеет свою руку, очень дорого, около> 9876 €).
Лучше всего клонировать только виртуальный жесткий диск в нужном вам состоянии, затем проверить его работу, затем ВОССТАНОВИТЬ верхний уровень (удалит все моментальные снимки), затем удалить жесткий диск из хранилища и подключить этот новый.
Итак, шаги, чтобы потерять все старые состояния на схеме без дерева снимков:
Но всегда имейте в виду, снимки могут быть похожи на полное дерево, один узел может иметь более одного дочернего элемента, каждый дочерний элемент может иметь более одного дочернего элемента и т. Д.
Чтобы работать с деревьями snoapshots, всегда думайте о DELETE как об удалении узла без ограничения остальных узлов (только потеря этого состояния, но не отдых, ни родитель, ни потомок не будут затронуты, данные будут объединены на всех первых подпрограммах). уровень потомков, такой медленный процесс) и при RESTORE уничтожение всех его потомков на всех подуровнях (потеря всех состояний после того, что вы восстанавливаете, он только удаляет файлы, поэтому очень быстрый процесс, всего несколько секунд).
Это!
PD: Как ужасные имена VBOX дал этим двум операциям (удалить только один узел = DELETE; удалить все дочерние узлы на всех подуровнях = RESTORE)
источник