Який образ диска слід використовувати з VirtualBox, VDI, VMDK, VHD або HDD?


276

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

  • VDI
  • VMDK
  • VHD
  • HDD

Тепер мене цікавить рекомендація або порівняння, які враховують наступне:

  • бути в змозі використовувати динамічні розміри
  • бути в змозі мати знімки
  • бути в змозі перенести мою віртуальну машину в іншу ОС або ще інше безкоштовне рішення для віртуалізації з мінімальними зусиллями (ймовірно, те, що буде працювати на Ubuntu).
  • продуктивність

9
Запустіть віртуальний вікно і натисніть значок допомоги & gt; Зміст, є справедливе пояснення там під "Віртуальним сховищем"
Moab

1
Що стосується міграції на "ще одне безкоштовне рішення для віртуалізації ..., який працював би на Ubuntu", я впевнений, що VirtualBox доступний для Linux.
Iszi

Виконання мудре, я думаю, що краще всього створювати фіксовані диски, якщо у вас є простір. В іншому випадку це дуже напружено для ОС при використанні віртуальної машини замість одного разу під час створення.
Alexis Wilke

2
Інша річ, яку слід розглянути, зміна розміру зображення, коли вам може знадобитися - VBoxManage не може змінити розмір VMDK, так що вам доведеться спочатку клонувати VDI, а потім змінити розмір, а потім повернутися до VMDK + вигадування UUID. Саме з цієї причини VDI для мене кращий вибір.
Mike Demenok

Відповіді:


196

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 підтримує тільки стару версію формату HDD.

  • продуктивність

Формат не повинен впливати на продуктивність або, принаймні, вплив на продуктивність є незначним.

Фактори, які впливають на продуктивність:

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

15
+1 Додам, що VMDK, здається, пропонує панацею, яку я шукав з точки зору додаткових резервних копій: я більше не є для резервного копіювання величезного, монолітного VDI для зміни біта в гості.
msanford

Мені здається, що існує деяка відсутність уваги щодо необробленого жорсткого диска хоста, тобто віртуального гостя, який використовує "фізичний" жорсткий диск (або RAID-пристрій), як видно з хосту. Це дозволить досягти кращих показників, ніж використання імітованого диска через файлову систему.
EnzoR

1
@Enzo: зараз я використовую VMDK на блочному пристрої. Великим підходом є те, що VirtualBox має працювати як root. Крім того, знімки не підтримуються на необроблених дисках, але в мене є система сторонніх знімків (ZFS). VMDK на сирому диску також набагато менш портативний. Що стосується продуктивності, у мене немає жодних твердих тестів, але скарг у мене немає.
Deltik

6
VHD можна встановлювати як диск у системі керування дисками Windows, що не здається таким простим у VDI: superuser.com/q/342334/13889
endolith

5
@msanford Чи можете ви детально розповісти про те, як VMDK уникає резервного копіювання величезного файлу - чи краще rsync зможе з'ясувати відмінності? Файл VMDK також здається зміненим на кожному налаштуванні.
Ben Creasy

35

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

VirtualBox працюватиме на Ubuntu, тому, якщо метою є сумісність з Windows / Ubuntu, VDI буде цілком правильним вибором.

Обидва формати виконають ваші вимоги.

Що стосується двох інших, то VHD - це формат, розроблений Microsoft, і HDD - це формат, розроблений Apple; вони обидва мають ліцензію на власність, тому обмежуйте підтримку між платформами; Я б не рекомендував їх.


16

Mpack, пояснює ключову різницю в продуктивності між VHD і VDI тут:

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

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

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


5

Я не знаю, якщо використання vmdk дозволить вам прозоро запустити віртуальну машину, створену в VirtualBox у VMware чи ні. Це могло б. Однак більш універсальним варіантом може бути використання функції VirtualBox File / Export для створення файлу .ova "Відкритий пристрій віртуалізації", який потім можна імпортувати у VMware. Завдяки такому підходу ви можете перейти до будь-якої системи віртуалізації, яка підтримує .ova, не піклуючись про те, який формат зображення диска ви використовуєте в VirtualBox.

Якщо потрібно експортувати з тієї самої віртуальної машини на регулярній основі, наприклад, щодня це може бути біль. Але якщо ви іноді переходите до іншої технології, це повинно бути добре.

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


5

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

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

VDI: Як правило, VirtualBox використовує власний формат контейнера для гостьових жорстких дисків - файли віртуального диска (VDI). Зокрема, цей формат буде використовуватися при створенні нової віртуальної машини з новим диском.

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

VHD: VirtualBox також повністю підтримує формат VHD, який використовується Microsoft.

Також підтримуються файли зображень Parallels версії 2 (формат HDD). За відсутності документації формату, нові формати (3 і 4) не підтримуються. Однак ви можете конвертувати такі файли зображень у формат 2, використовуючи інструменти, надані Parallels.


2
Ця відповідь приходить з розділу 5 посібника VirtualBox. посилання
JerryOL

4

Це залежить від того, як ви плануєте використовувати віртуальний диск. Не кожна ВМ бажає одного розділу на одному диску.

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

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

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

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


4

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

Але я говорю роки безперервної роботи. Це не може бути проблемою, з якою багато людей стикаються.


2
Це більше пов'язано з фрагментацією гостьової файлової системи, ніж до самого формату.
EnzoR

3

Схоже, що використання VDI дозволяє обрізати файл диска до його фактичного розміру Підтримка VirtualBox і SSD-команди TRIM


Незважаючи на те, що точніше, це трохи невтішне питання, яке запитує про загальні відмінності між цими форматами, чи не здається це?
Seth

3
@Seth Загальний огляд був наданий попередніми відповідями, і я не маю достатньо представників, щоб просто коментувати, але все ж важливо згадати цей факт
OwnageIsMagic

1
Так само, як пропозиція, але додавати її, щоб дати йому більше контексту. Напр. "Поки це Відповідь дає хороший огляд, ви також повинні враховувати перевагу ... ". Отже, навіть якщо ви читаєте окремо, ваша відповідь має відношення до більш загального.
Seth

@Seth є edit кнопка під моє запитання для вас: D
OwnageIsMagic

1
Я можу гарантувати, що я перегляну вашу редакцію, тому ваша робота не буде витрачена даремно. Також ви будете згадуватися як редактор питання, так що ви отримаєте належну атрибуцію. В чому проблема?
OwnageIsMagic

1

VDI набагато простіше компактно, якщо VM стає занадто великим.


1

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

Пам'ятайте, що це була незмінна Windows гість чистої ОС встановити з деякими додатками, пам'ятайте, для мого тесту я перетворити один формат в інший, так що обидва повинні бути точніше ж зображення, як робити клонування.

Для розміру диска 64GiB, розмір файлу VDI був навколо 18GiB, а розмір файлу VHD 22GiB.

Я пам'ятаю, що бачив ці дві речі:

  1. Час завантаження значно відрізнявся, якщо я не пам'ятаю поганий vhd в 1,6 рази швидше, ніж VDI
  2. Розмір VHD був набагато більшим, ніж VDI, що на 4GiB більше за 18GiB, що в 1,2 рази більше.

Це було давно, і тест був зроблений на жорсткому диску, але я гарантую обидва файли де дефрагментувати і поруч один з одним на швидкій частині диска.

Сподіваюся, що хтось може робити реальні SSD тести, але мені здається, що VHD швидше (і більше), ніж VDI.

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

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


1

Я просто переніс сирому VMDK, який був зіставлений з розділом Transcend SSD370 128 Гб на 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.