279

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

  • VDI
  • VMDK
  • VHD
  • жесткий диск

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

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

11 ответов11

199

VirtualBox полностью поддерживает VDI, VMDK и VHD и поддерживает Parallels Version 2 (HDD) (не более новые версии).

Отвечая на ваши соображения

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

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

  • иметь возможность делать снимки

Все четыре формата поддерживают моментальные снимки на VirtualBox.

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

VDI является родным форматом VirtualBox. Я не искал другое программное обеспечение, которое поддерживает этот формат.

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

VHD - это родной формат Microsoft Virtual PC. Этот формат популярен среди продуктов Microsoft.

Я ничего не знаю о HDD. Судя по этому сайту, Parallels - это продукт для Mac OS X, который, вероятно, вам не подходит, особенно если учесть, что VirtualBox поддерживает только старую версию формата жесткого диска.

  • спектакль

Формат не должен влиять на производительность или, по крайней мере, влияние на производительность незначительно.

Факторы, которые влияют на производительность:

  • ограничения вашего физического устройства (гораздо более заметно на жестком диске, чем на твердотельном диске... Зачем?)
  • расширение динамически выделяемого виртуального диска (операции записи замедляются по мере расширения виртуального диска, но как только он становится достаточно большим, расширение должно происходить реже)
  • технология виртуализации (аппаратное и программное обеспечение ; аппаратная виртуализация помогает VirtualBox и повышает скорость виртуальных операционных систем)
  • тот факт, что вы работаете в виртуальной операционной системе. Производительность всегда ниже, чем при запуске операционной системы на хосте из-за процесса виртуализации.
35

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

VirtualBox будет хорошо работать в Ubuntu, поэтому, если целью является совместимость Windows/Ubuntu, VDI будет вполне приемлемым выбором.

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

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

17

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

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

Все мои комментарии относятся к динамическому формату VHD против динамического VDI. Тестирование производительности на виртуальных дисках фиксированного размера не имеет смысла, так как оба формата одинаковы (просто образ диска), у них просто разные заголовки.

https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

5

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

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

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

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

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

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

5

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

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

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

4

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

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

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

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

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

4

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

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

3

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

1

VDI гораздо проще сжать, если виртуальная машина становится слишком большой.

1

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

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

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

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

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

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

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

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

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

1

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

Очевидно, 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 тогда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .