2011-11-23 00:28:07 +0000 2011-11-23 00:28:07 +0000
314
314

Какой образ диска следует использовать с VirtualBox, VDI, VMDK, VHD или HDD?

Последние версии VirtualBox поддерживают несколько форматов виртуальных дисков, но забыли сравнить их.

  • VDI
  • VMDK
  • VHD
  • HDD

  • Теперь меня интересует рекомендация или сравнение, которое учитывает следующее:

  • уметь использовать динамические размеры

  • уметь делать снимки

  • уметь с минимальными усилиями переместить мою виртуальную машину на другую ОС или даже на другое бесплатное решение для виртуализации (вероятно, что-то, что будет работать нормально на Ubuntu).

  • производительность.

Ответы (11)

224
224
224
2012-06-22 20:33:51 +0000

VirtualBox имеет

Source: Руководство пользователя Oracle® VM VirtualBox® Глава 5. Виртуальное хранилище 5.2. Файлы изображений дисков (VDI, VMDK, VHD, HDD)

  • *

Ответы на ваши вопросы

  • быть в состоянии использовать динамические размеры

VDI , VMDK и VHD все поддерживает динамически выделяемое хранилище. VMDK имеет дополнительную возможность разбиения файла хранилища на файлы размером менее 2 Гб каждый, что полезно, если ваша файловая система имеет небольшой предел размера файла.

HDD , QCOW и QED должны быть динамически распределены, если они созданы в VirtualBox.

  • быть в состоянии иметь снимки

VirtualBox поддерживает снимки все шесть форматов.

  • быть в состоянии переместить мою виртуальную машину в другую ОС или даже другое бесплатное решение для виртуализации с минимальными усилиями (вероятно, что-то, что будет работать нормально на Ubuntu).

VDI является родным форматом VirtualBox. Другие программы для виртуализации, как правило, не поддерживают VDI, но их довольно легко конвертировать из VDI в другой формат, особенно с qemu-img convert .

VMDK разработан VMWare и для VMWare, но VirtualBox и QEMU (другое распространенное программное обеспечение для виртуализации) также его поддерживают. Этот формат может быть лучшим выбором для вас, потому что вы хотите широкую совместимость с другими программами виртуализации.

VHD является родным форматом Microsoft Virtual PC. Windows Server 2012 представил VHDX как преемник VHD, но VirtualBox не поддерживает VHDX.

HDD - это формат для Parallels . Parallels специализируется на виртуализации для макросов. Вероятно, это не подходит для вас, особенно учитывая, что VirtualBox поддерживает только старую версию формата жесткого диска._

QCOW является старой оригинальной версией формата qcow. Она была заменена на qcow2, которую VirtualBox не поддерживает.

QED является заброшенным усовершенствованием qcow2. QEMU советует не использовать QED.

  • производительность

Каждый из форматов может иметь нюансы производительности из-за того, как блочное хранилище абстрагируется от формата, но я не нашел ни одного бенчмарка, сравнивающего форматы, поддерживаемые VirtualBox.

Существуют более важные факторы, влияющие на производительность, такие как:

  • ограничения физических устройств (гораздо более заметные на жестком диске, чем на твердотельном диске *Почему? * )
  • расширение динамически выделяемого виртуального диска (операции записи замедляются по мере расширения виртуального диска, но когда он достаточно большой, расширения должно происходить меньше)
  • технология виртуализации hardware vs. software ; аппаратная виртуализация помогает VirtualBox и улучшает скорость работы виртуальных операционных систем)
  • факт работы виртуальной операционной системы. Из-за накладных расходов на виртуализацию производительность всегда ниже, чем при работе операционной системы на хосте.
40
40
40
2012-06-22 20:58:21 +0000

Я всегда использую VDI, так как это родной формат VirtualBox; однако использование VMDK (формат VMWare) увеличит совместимость с другим программным обеспечением виртуальных машин.

VirtualBox будет отлично работать на Ubuntu, так что если целью является функциональная совместимость Windows/Ubuntu, VDI будет отличным выбором.

Оба формата будут соответствовать вашим требованиям.

Что касается двух других, VHD является Microsoft-разработанный формат, а жесткий диск является Apple-разработанный формат, они оба являются собственниками лицензированных, так что ограничить кросс-платформенную поддержку, я бы не рекомендовал их.

18
18
18
2014-05-08 14:20:12 +0000

Mpack, объясняет ключевую разницу в производительности между VHD и VDI здесь:

Недавно изучив формат VHD, я ожидал, что будет хотя бы небольшая разница в пользу VDI, наиболее заметная при сравнении, как с подобным, т.е. оптимизированный VDI против оптимизированного VHD. Причина в том, что динамический формат VHD имеет эти “растровые” сектора, разбросанные по всему диску. Каждый раз, когда вы изменяете сектор внутри блока, эти растровые блоки могут потребовать обновления и записи, что требует дополнительных поисков, чтения и записи. Эти растровые сектора также необходимо пропускать при чтении последовательных кластеров из образа диска - больше поиска. Формат VDI не имеет таких накладных расходов, особенно если VDI был оптимизирован (блоки на виртуальном диске отсортированы в порядке LBA).

Все мои комментарии применимы к динамическому формату VHD в сравнении с динамическим VDI. Тесты производительности на виртуальных дисках фиксированного размера бессмысленны, так как оба формата в этом случае одни и те же (просто обычный образ диска), на них просто разные заголовки. https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

5
5
5
2012-07-03 21:22:00 +0000

Не знаю, позволит ли использование vmdk прозрачно запустить виртуальную машину, созданную в VirtualBox в VMware или нет. Возможно. Однако более универсальным вариантом может быть использование функции VirtualBox File/Export для создания “Open Virtualization Appliance” .ova файла, который затем может быть импортирован в VMware. При таком подходе вы можете портировать его на любую систему виртуализации, поддерживающую .ova, не заботясь о том, какой формат образа диска вы используете в VirtualBox.

Если вам нужно экспортировать из одной и той же ВМ через регулярные интервалы времени, например, каждый день, это может быть очень болезненно. Но если вы только время от времени переходите на другую технологию, все должно быть в порядке.

Если у вас уже есть файл .vdi, вы можете проверить, работает ли это без необходимости создавать новую виртуальную машину. Экспортируйте его в .ova, затем попробуйте импортировать с помощью vmware.

5
5
5
2015-01-08 04:33:15 +0000

Это зависит и от того, как вы планируете использовать виртуальный диск. Не каждая ВМ хочет иметь один раздел на одном диске.

VDI, кажется, имеет больше вариантов (при использовании с VirtualBox), но как только вы убираете VirtualBox из картины, поддержка VDI становится несколько шаткой (по состоянию на конец 2014 года).

Например, мои решения должны иметь максимальную кросс-платформенную поддержку. Монтаж VDI (например, устройства с обратной связью по шлейфу) на linux или Windows 7 сложнее и проблематичнее, чем можно было бы ожидать. Почти как VDI имеет слишком много функций, что затрудняет создание полностью соответствующих утилит, которые могут работать на нем.

VMDK - это просто менее безболезненный IMHO, когда вы хотите, чтобы он работал с любой VM на любой рабочей станции, когда вы хотите клонировать его 3 раза на другие системы в сети в то же время, и когда вы хотите поднять его, не запуская VM экземпляр.

Несмотря на то, что я использую VirtualBox 90% времени, те несколько раз, когда мои диски становятся недоступными в определенных рабочих процессах, привели меня к тому, что я предпочитаю VMDK для подключаемых/разделяемых файловых систем.

5
5
5
2015-11-28 18:23:51 +0000

Файлы образов дисков находятся в хост-системе и воспринимаются гостевыми системами как жесткие диски определенной геометрии. Когда гостевая операционная система читает с жесткого диска или записывает на него, VirtualBox перенаправляет запрос на файл образа.

Как и физический диск, виртуальный диск имеет размер (емкость), который должен быть указан при создании файла образа. Однако, в отличие от физического диска, VirtualBox позволяет расширять файл образа после создания, даже если он уже содержит данные; VirtualBox поддерживает четыре варианта файлов образа диска:

VDI: Обычно VirtualBox использует собственный формат контейнера для гостевых жестких дисков - файлы образа виртуального диска (Virtual Disk Image (VDI)). В частности, этот формат будет использоваться при создании новой виртуальной машины с новым диском.

VMDK:VirtualBox также полностью поддерживает популярный и открытый формат контейнера VMDK, который используется многими другими продуктами виртуализации, в частности, VMware. [25]

VHD:VirtualBox также полностью поддерживает формат VHD, используемый Microsoft.

Image файлы Parallels версии 2 (формат HDD) также поддерживаются.[26] Из-за отсутствия документации по формату новые форматы (3 и 4) не поддерживаются. Однако вы можете конвертировать такие графические файлы в формат версии 2 с помощью инструментов, предоставляемых Parallels.

4
4
4
2015-01-30 15:13:42 +0000

Хорошей причиной использования vmdk для меня является то, что Virtualbox (по крайней мере до версии 4.1), использующий формат VDI, имеет тенденцию со временем заполнять все выделенное дисковое пространство, несмотря на то, что использование внутреннего виртуального диска все еще значительно меньше. С Virtualbox, использующим vmdk диски, это кажется меньшей проблемой.

Но я говорю о времени безотказной работы. Возможно, это не является проблемой, с которой сталкиваются многие люди.

3
3
3
2016-11-19 00:23:59 +0000

Похоже, что использование VDI позволяет обрезать файл диска до его фактического размера Поддержка команд VirtualBox и SSD TRIM

2
2
2
2017-09-21 15:41:54 +0000

Я только что мигрировал сырой VMDK, который был отображен на раздел Transcend SSD370 128 GB на Samsung Pro 850 512GB.

Очевидно, что VMDK намного быстрее, чем VDI. Я не понимаю почему, может быть, я где-то ошибся.

я скопировал VMDK через Virtual Media Manager на 850. Один раз как VDI, один раз как VMDK.

Тогда я запустил hdparm -tT --direct /dev/sda на изображениях. Для каждого из “работает” я переключил заменил “Машина -> Настройки -> Хранение -> Контроллер SATA -> ImageFile.xxx”. Необработанный раздел на SSD370 был определен файлом VMDK, так что на самом деле это не изображение.

Это результат:

################################################################################################

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-96-generic x86_64)

  System information as of Thu Sep 21 17:02:51 CEST 2017

  System load: 1.96 Processes: 201
  Usage of /: 83.2% of 43.88GB Users logged in: 0
  Memory usage: 4% IP address for eth0:    
  Swap usage: 0% IP address for docker0: 172.17.0.1

################################################################################################

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <---
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <---

 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <---
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <---

---

 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <---

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <---
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec

 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec

---

 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec

 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <---
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec

---

 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <---
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <---
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec

 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <---
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec

 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <---
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec

################################################################################################
# Data above comes from here
################################################################################################

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 17:02:51 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 836 MB in 2.00 seconds = 417.21 MB/sec <======
 Timing O_DIRECT disk reads: 782 MB in 3.01 seconds = 260.21 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21080 MB in 2.00 seconds = 10554.40 MB/sec
 Timing buffered disk reads: 784 MB in 3.00 seconds = 260.92 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 834 MB in 2.00 seconds = 416.08 MB/sec <======
 Timing O_DIRECT disk reads: 786 MB in 3.00 seconds = 261.71 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 17:00:47 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1024 MB in 2.00 seconds = 511.61 MB/sec <======
 Timing O_DIRECT disk reads: 1134 MB in 3.00 seconds = 377.88 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21182 MB in 2.00 seconds = 10603.52 MB/sec
 Timing buffered disk reads: 1060 MB in 3.00 seconds = 352.91 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 1042 MB in 2.00 seconds = 520.82 MB/sec <======
 Timing O_DIRECT disk reads: 1162 MB in 3.00 seconds = 387.27 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:58:12 CEST 2017

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 826 MB in 2.00 seconds = 412.75 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.79 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22082 MB in 2.00 seconds = 11055.78 MB/sec
 Timing buffered disk reads: 788 MB in 3.01 seconds = 262.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 828 MB in 2.00 seconds = 413.88 MB/sec <======
 Timing O_DIRECT disk reads: 774 MB in 3.00 seconds = 257.83 MB/sec <======

======================================================================================
      V D I --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:55:24 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 21468 MB in 2.00 seconds = 10747.37 MB/sec
 Timing buffered disk reads: 662 MB in 3.01 seconds = 220.12 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 470 MB in 2.01 seconds = 234.21 MB/sec <======
 Timing O_DIRECT disk reads: 766 MB in 3.00 seconds = 254.94 MB/sec <======

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 494 MB in 2.00 seconds = 246.45 MB/sec <======
 Timing O_DIRECT disk reads: 754 MB in 3.00 seconds = 250.92 MB/sec <======

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.98 MB/sec
 Timing buffered disk reads: 694 MB in 3.01 seconds = 230.78 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 490 MB in 2.00 seconds = 244.46 MB/sec <======
 Timing O_DIRECT disk reads: 764 MB in 3.01 seconds = 254.03 MB/sec <======

======================================================================================
      V M D K --- on Samsung Pro 850 515GB
======================================================================================

  System information as of Thu Sep 21 16:52:32 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 20872 MB in 2.00 seconds = 10448.90 MB/sec
 Timing buffered disk reads: 764 MB in 3.01 seconds = 254.11 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 842 MB in 2.00 seconds = 420.76 MB/sec <======
 Timing O_DIRECT disk reads: 770 MB in 3.00 seconds = 256.56 MB/sec <======

======================================================================================
      V M D K --- R A W !!! --- on Transcend SSD370 128 GB
======================================================================================

  System information as of Thu Sep 21 16:29:55 CEST 2017

user@xeon:~$ sudo hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads: 22034 MB in 2.00 seconds = 11029.82 MB/sec
 Timing buffered disk reads: 990 MB in 3.00 seconds = 329.68 MB/sec

user@xeon:~$ sudo hdparm -tT --direct /dev/sda
/dev/sda:
 Timing O_DIRECT cached reads: 816 MB in 2.00 seconds = 407.55 MB/sec <======
 Timing O_DIRECT disk reads: 1020 MB in 3.01 seconds = 339.43 MB/sec <======

Я не знаю, как это интерпретировать, может быть кто-то хочет оставить комментарий. Тогда я выбрал VMDK.

2
2
2
2017-08-02 18:14:46 +0000

Компактность VDI намного проще, если VM вырастает слишком большим.

1
1
1
2018-06-12 08:27:14 +0000

Давным-давно я сделал один тест, преобразовать динамический vdi в динамический vhd только для проверки скорости и размеров файлов.

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

Для диска размером 64 Гб, размер VDI файла был arround 18 Гб, в то время как размер файла VHD arround 22 Гб.

Я помню, я видел две вещи:

  1. Время загрузки существенно отличалось, если я не помню, что плохой vhd был в 1.6 раза быстрее, чем VDI
  2. Размер VHD был намного больше, чем VDI, гигабайт на 4 Гб больше, чем 18 Гб, так что в 1.2 раза больше.

Это было давно, и тест был сделан на HDD, но я проверяю оба файла, где дефрагментированы и рядом друг с другом на быстрой части диска.

Надеюсь, кто-нибудь сможет сделать настоящие тесты SSD, но у меня такое чувство, что VHD быстрее (и больше), чем VDI.

Просто совет: VHD/VHDX можно сжимать в любой Windows 7 и выше с помощью инструмента командной строки DiskPart, для VDI нужен внешний инструмент CloneVDI.

Извините, я не тестировал VMDK, я не знал, как его сжимать без изменения UUID (UUID диска), помните, что командные инструменты VBOX всегда меняют его на каждом клоне, вне зависимости от того, какой формат вы используете.

Похожие вопросы

5
8
7
9
4