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

Jakiego obrazu dysku powinienem używać z VirtualBox, VDI, VMDK, VHD lub HDD?

Najnowsze wersje VirtualBoxa obsługują kilka formatów dla dysków wirtualnych, ale zapomnieli o porównaniu między nimi.

  • VDI
  • VMDK
  • VHD
  • HDD

Teraz interesuje mnie rekomendacja lub porównanie, które uwzględnia:

  • być w stanie używać dynamicznych rozmiarów
  • być w stanie mieć snapshoty
  • być w stanie przenieść moją wirtualną maszynę do innego systemu operacyjnego lub nawet innego darmowego rozwiązania wirtualizacyjnego przy minimalnym wysiłku (prawdopodobnie coś, co działałoby dobrze na Ubuntu).
  • wydajność

Odpowiedzi (11)

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

VirtualBox posiada

  • pełną obsługę
  • VDI
  • VMDK
  • VHD
  • częściową obsługę
  • HDD (tylko wersja 2)
  • oraz niedokumentowane obsługę
  • QCOW
  • QED

Źródło: Instrukcja obsługi Oracle® VM VirtualBox® Rozdział 5. Wirtualna pamięć masowa 5.2. Disk Image Files (VDI, VMDK, VHD, HDD)

  • *

Answering Your Considerations

  • być w stanie używać dynamicznych rozmiarów

VDI , VMDK , oraz VHD , wszystkie obsługują dynamicznie przydzielane pamięci masowe. VMDK ma dodatkową możliwość podziału pliku na pliki o pojemności mniejszej niż 2 GB każdy, co jest przydatne, jeśli system plików ma mały limit rozmiaru plików.

HDD , QCOW i QED muszą być dynamicznie przydzielane, jeśli zostały utworzone w VirtualBoxie.

  • bądź w stanie mieć snapshoty

VirtualBox obsługuje snapshoty wszystkich sześciu formatach.

  • bądź w stanie przenieść moją maszynę wirtualną do innego systemu operacyjnego lub nawet innego darmowego rozwiązania wirtualizacyjnego przy minimalnym wysiłku (prawdopodobnie coś, co dobrze by działało na Ubuntu).

VDI to natywny format VirtualBoxa. Inne oprogramowanie do wirtualizacji na ogół nie obsługuje VDI, ale dość łatwo jest przekonwertować z VDI na inny format, zwłaszcza z qemu-img convert .

VMDK jest opracowany przez i dla VMWare, ale VirtualBox i QEMU (inne popularne oprogramowanie do wirtualizacji) również go obsługują. Ten format może być najlepszym wyborem dla Ciebie, ponieważ chcesz szerokiej kompatybilności z innymi programami do wirtualizacji._

VHD jest natywnym formatem Microsoft Virtual PC. Windows Server 2012 wprowadził VHDX jako następcę VHD, ale VirtualBox nie obsługuje VHDX.

HDD jest formatem dla Parallels . Parallels specjalizuje się w wirtualizacji dla systemów MacOS. To prawdopodobnie nie jest odpowiednie dla Ciebie, szczególnie biorąc pod uwagę, że VirtualBox obsługuje tylko starą wersję formatu HDD.

QCOW to stara oryginalna wersja formatu qcow. Został on zastąpiony przez qcow2, którego VirtualBox nie obsługuje.

QED było porzuconym rozszerzeniem qcow2. QEMU odradza używanie QED.

  • wydajność

Każdy z formatów może mieć zróżnicowaną charakterystykę wydajności z uwagi na sposób, w jaki pamięć blokowa jest abstrahowana przez format, ale nie znalazłem żadnych benchmarków porównujących formaty obsługiwane przez VirtualBox.

Istnieją większe czynniki wpływające na wydajność, takie jak:

  • Twoje fizyczne ograniczenia urządzenia (znacznie bardziej zauważalne na dysku twardym niż dysk półprzewodnikowy *Dlaczego? * )
  • rozszerzanie dynamicznie przydzielanego wirtualnego dysku (operacje zapisu są wolniejsze w miarę rozszerzania się dysku wirtualnego, ale gdy jest on wystarczająco duży, rozszerzanie powinno odbywać się rzadziej)
  • technologia wirtualizacji sprzęt vs. oprogramowanie ; wirtualizacja sprzętowa pomaga VirtualBoxowi i zwiększa szybkość działania wirtualnych systemów operacyjnych)
  • fakt, że korzystasz z wirtualnego systemu operacyjnego. Wydajność jest zawsze wolniejsza niż uruchomienie systemu operacyjnego na hoście ze względu na koszty wirtualizacji.
40
40
40
2012-06-22 20:58:21 +0000

Zawsze używam VDI, ponieważ jest to natywny format VirtualBoxa, jednak użycie VMDK (format VMWare) zwiększy kompatybilność z innym oprogramowaniem maszyn wirtualnych.

VirtualBox będzie działał poprawnie na Ubuntu, więc jeśli celem jest interoperacyjność Windows/Ubuntu, VDI będzie idealnym wyborem.

Oba formaty spełnią Twoje wymagania.

Jeśli chodzi o pozostałe dwa, VHD jest formatem opracowanym przez Microsoft, a HDD jest formatem opracowanym przez Apple; oba są objęte licencją własnościową, więc ogranicz wsparcie międzyplatformowe; nie polecałbym ich.

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

Mpack, wyjaśnia tutaj kluczową różnicę w wydajności pomiędzy VHD i VDI:

Po niedawnym przestudiowaniu formatu VHD, spodziewałbym się, że będzie przynajmniej mała różnica w przychylności VDI, najbardziej zauważalna przy porównywaniu z like, tj. zoptymalizowanym VDI vs. zoptymalizowanym VHD. Powodem jest fakt, że format dynamiczny VHD posiada te “bitmapowe” sektory rozproszone na całym dysku. Za każdym razem, gdy modyfikujesz sektor wewnątrz bloku, te bloki mapy bitowej mogą wymagać aktualizacji i zapisu, co wiąże się z dodatkowymi poszukiwaniami, odczytami i zapisami. Te sektory mapy bitowej muszą być również pomijane podczas odczytu kolejnych klastrów z obrazu dysku - więcej poszukiwań. Format VDI nie ma tych kosztów ogólnych, zwłaszcza jeśli VDI zostało zoptymalizowane (bloki na dysku wirtualnym posortowane w kolejności LBA).

Wszystkie moje komentarze dotyczą formatu dynamicznego VHD vs. dynamicznego VDI. Testy wydajności na dyskach wirtualnych o stałej wielkości są bezcelowe, ponieważ oba formaty są wtedy takie same (tylko zwykły obraz dysku), mają tylko różne nagłówki. https://forums.virtualbox.org/viewtopic.php?f=1&t=22688

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

Nie wiem, czy użycie vmdk umożliwiłoby transparentne uruchomienie maszyny wirtualnej stworzonej w VirtualBox w VMware, czy też nie. Może. Bardziej uniwersalną opcją może być jednak użycie funkcji VirtualBox File/Export w celu utworzenia “Open Virtualization Appliance” .ova file, który następnie można zaimportować do VMware. Dzięki takiemu podejściu, można przenieść do dowolnego systemu wirtualizacji, który obsługuje .ova, nie dbając o to, jaki format obrazu dysku używasz w VirtualBoxie.

Jeśli musisz eksportować z tej samej maszyny wirtualnej w regularnych odstępach czasu, np. codziennie, może to być trudne. Ale jeśli tylko od czasu do czasu przechodzisz na inną technologię, powinno być w porządku.

Jeśli masz już plik .vdi, możesz sprawdzić, czy to działa bez konieczności tworzenia nowej maszyny wirtualnej. Eksportuj go do .ova, a następnie spróbuj zaimportować za pomocą vmware.

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

Zależy to od tego, w jaki sposób planujesz wykorzystać również dysk wirtualny. Nie każda maszyna wirtualna chce mieć jedną partycję na jednym dysku.

VDI wydaje się mieć więcej opcji (gdy jest używany z VirtualBoxem), ale jak tylko usuniesz VirtualBoxa z obrazu, wsparcie dla VDI staje się nieco chwiejne (od końca 2014).

Na przykład moje rozwiązania muszą mieć maksymalną obsługę międzyplatformową. Montaż VDI (np. urządzenia z pętlą zwrotną) na linuksie lub Windows 7 jest trudniejszy i bardziej podatny na błędy niż można by się spodziewać. Prawie tak jak VDI ma zbyt wiele funkcji, co sprawia, że trudno jest wykonać w pełni zgodne narzędzia, które mogą na nim pracować.

VMDK jest po prostu mniej bezbolesnym IMHO, gdy chcesz, aby pracował z dowolną maszyną wirtualną na dowolnej stacji roboczej, gdy chcesz sklonować ją 3 razy do innych systemów w sieci w tym samym czasie, oraz gdy chcesz ją otworzyć bez uruchamiania instancji maszyny wirtualnej.

Mimo, że używam VirtualBoxa przez 90% czasu, te kilka razy, kiedy moje dyski stają się niedostępne w niektórych przepływach pracy, skłoniły mnie do preferowania VMDK dla podłączanych/współdzielonych systemów plików.

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

Pliki obrazu dysku twardego znajdują się w systemie hosta i są postrzegane przez systemy gości jako dyski twarde o określonej geometrii. Kiedy system operacyjny gościa odczytuje z lub zapisuje na dysku twardym, VirtualBox przekierowuje żądanie do pliku obrazu.

Podobnie jak dysk fizyczny, dysk wirtualny ma rozmiar (pojemność), który musi być określony podczas tworzenia pliku obrazu. Jednak w przeciwieństwie do dysku fizycznego, VirtualBox pozwala na rozszerzenie pliku obrazu po utworzeniu, nawet jeśli posiada on już dane; VirtualBox obsługuje cztery warianty plików obrazu dysku:

VDI: Normalnie VirtualBox używa własnego formatu kontenera dla dysków twardych gości - pliki Virtual Disk Image (VDI). W szczególności, format ten będzie używany przy tworzeniu nowej maszyny wirtualnej z nowym dyskiem.

VMDK:VirtualBox w pełni obsługuje również popularny i otwarty format kontenerowy VMDK, który jest używany przez wiele innych produktów wirtualizacyjnych, w szczególności przez VMware. 25]

VHD:VirtualBox w pełni obsługuje również format VHD używany przez Microsoft.

Pliki obrazu Parallels w wersji 2 (format HDD) są również obsługiwane.[26] Z powodu braku dokumentacji formatu, nowsze formaty (3 i 4) nie są obsługiwane. Możesz jednak przekonwertować takie pliki obrazów do formatu Parallels w wersji 2 przy użyciu narzędzi dostarczonych przez Parallels.

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

Dobrym powodem korzystania z vmdk jest to, że Virtualbox (przynajmniej do wersji v4.1) używający formatu VDI ma tendencję, w miarę upływu czasu, do zapełnienia całej przydzielonej przestrzeni dyskowej, nawet jeśli wewnętrzne zużycie dysku wirtualnego jest wciąż znacznie mniejsze. W przypadku Virtualboksa wykorzystującego dyski vmdk, wydaje się to mniejszym problemem.

Ale mówię o latach uptime. To może nie być problem, z którym styka się wiele osób.

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

Wygląda na to, że użycie VDI pozwala na przycięcie pliku z dyskiem do jego aktualnego rozmiaru VirtualBox i obsługa komend TRIM dysku SSD

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

Właśnie migrowałem surowy VMDK, który został zmapowany na partycję Transcend SSD370 128 GB na Samsung Pro 850 512 GB.

Podobno VMDK jest dużo szybszy niż VDI. Nie rozumiem dlaczego, może gdzieś się pomyliłem.

Skopiowałem VMDK przez Virtual Media Manager na 850. Raz jako VDI, raz jako VMDK.

Następnie uruchomiłem hdparm -tT --direct /dev/sda na obrazach. Dla każdego z “uruchomień” wymieniłem “Machine -> Settings -> Storage -> Controller SATA -> ImageFile.xxx”. Surowa partycja na SSD370 została zdefiniowana przez plik VMDK, więc tak naprawdę nie jest to obraz.

Oto wyniki:

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

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 <======

Nie bardzo wiem jak to zinterpretować, może ktoś chce zostawić komentarz na ten temat. Wybrałem wtedy VMDK.

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

VDI jest znacznie łatwiejsze do zagęszczenia, jeśli maszyna VM rośnie zbyt duża.

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

Dawno temu zrobiłem jeden test, konwertowałem dynamiczne vdi na dynamiczne vhd tylko po to, aby sprawdzić prędkość i rozmiary plików.

Pamiętaj, że był to nieprzyjazny gość Windows clean os zainstalować z niektórych aplikacji, pamiętaj do mojego testu i przekonwertować jeden format do innego, więc oba są zobowiązane do dokładnego tego samego obrazu, jak robi klonowanie.

Dla rozmiaru dysku 64GiB rozmiar pliku VDI to arround 18GiB, natomiast rozmiar pliku VHD arround 22GiB.

Pamiętam, że widziałem te dwie rzeczy:

  1. Czas rozruchu był znacząco różny, jeśli nie pamiętam zły vhd był 1.6 razy szybszy niż VDI
  2. Rozmiar VHD był znacznie większy niż VDI, około 4GiB gigabajtów większy niż 18GiB, więc 1,2 razy większy.

To było dawno temu i test został wykonany na dysku twardym, ale zapewniam oba pliki, gdzie defragmentowane i obok siebie na szybkiej części dysku.

Mam nadzieję, że ktoś może zrobić prawdziwe testy SSD, ale mam wrażenie, że VHD jest szybszy (i większy) niż VDI.

Tylko wskazówka: VHD/VHDX może być zagęszczony bezpośrednio na dowolnym systemie Windows 7 i Up za pomocą narzędzia wiersza poleceń DiskPart, dla VDI potrzebne jest zewnętrzne narzędzie CloneVDI.

Przepraszam, że nie testowałem VMDK, nie wiedziałem jak go zagęścić bez zmiany jego UUID (disk UUID), pamiętaj, że narzędzia komend VBOX zawsze zmieniają go na każdym klonie, bez względu na format, którego używasz.