VirtualBox、VDI、VMDK、VHD、またはHDDで使用するディスクイメージは何ですか?


296

VirtualBoxの最新バージョンは、仮想ディスクのいくつかの形式をサポートしていますが、それらを比較することを忘れていました。

  • VDI
  • VMDK
  • VHD
  • HDD

今、私は以下を考慮した推奨事項または比較について興味があります。

  • 動的なサイズ設定を使用できる
  • スナップショットを持つことができる
  • 仮想マシンを最小限の労力で別のOSまたは別の無料の仮想化ソリューションに移動できるようになります(おそらくUbuntuで正常に動作するもの)。
  • 性能

11
バーチャルボックスを実行し、ヘルプアイコンをクリック>コンテンツ、「仮想記憶」の下にそこに公正説明がある
モアブ

1
「別の無料の仮想化ソリューション... Ubuntuで問題なく動作する」への移行に関しては、VirtualBoxがLinuxで利用できると確信しています。
イッツィ

パフォーマンスに関しては、スペースがあれば固定ディスクを作成するのが最善だと思います。そうしないと、作成時に1回ではなく仮想マシンを使用するときにOSに非常にストレスがかかります。
アレクシスウィルケ14年

3
考慮すべきもう1つのことは、必要に応じてイメージのサイズを変更することです。VBoxManageはVMDKのサイズを変更できないため、最初にVDIにクローンを作成し、サイズを変更してからVMDKに戻し、UUIDを調整する必要があります。この理由だけでも、VDIは私にとってより良い選択のようです。
マイクデメノック

回答:


214

VirtualBoxには

  • の完全サポート
    • VDI
    • VMDK
    • VHD
  • の部分的なサポート
    • HDD(パラレルバージョン2のみ)
  • そして文書化されていないためサポート
    • QCOW
    • QED

出典:Oracle®VMVirtualBox®ユーザーマニュアル » 第5章仮想ストレージ » 5.2。ディスクイメージファイル(VDI、VMDK、VHD、HDD)

仮想ハードディスクの作成のスクリーンショット


考慮事項に答える

  • 動的なサイズ設定を使用できる

VDIVMDK、およびVHDはすべて、動的に割り当てられたストレージをサポートします。VMDKには、ストレージファイルを各2 GB未満のファイルに分割する追加機能があります。これは、ファイルシステムのファイルサイズの制限が小さい場合に便利です。

VirtualBoxで作成する場合、HDDQCOW、およびQEDを動的に割り当てる必要があります。

  • スナップショットを持つことができる

VirtualBoxは、6つの形式すべてのスナップショットをサポートしています

  • 仮想マシンを最小限の労力で別のOSまたは別の無料の仮想化ソリューションに移動できるようになります(おそらくUbuntuで正常に動作するもの)。

VDIはVirtualBoxのネイティブ形式です。通常、他の仮想化ソフトウェアはVDIをサポートしていませんが、特にを使用すると、VDIから別の形式に簡単に変換できますqemu-img convert

VMDKはVMWareによって開発されましたが、VirtualBoxとQEMU(別の一般的な仮想化ソフトウェア)もサポートしています。 他の仮想化ソフトウェアとの幅広い互換性が必要なため、この形式が最適な選択かもしれません。

VHDは、Microsoft Virtual PCのネイティブ形式です。Windows Server 2012はVHDの後継としてVHDXを導入しましたが、VirtualBoxはVHDXをサポートしていません。

HDDParallelsのフォーマットです。ParallelsはmacOSの仮想化を専門としています。 VirtualBoxが古いバージョンのHDD形式のみをサポートしていることを考えると、これはおそらくあなたには適していません。

QCOWは、qcow形式の古いオリジナルバージョンです。VirtualBoxがサポートしていないqcow2に置き換えられました。

QEDはqcow2の廃止された拡張機能です。 QEMUはQEDの使用をお勧めしません。

  • 性能

ブロックストレージがどのようにフォーマットによって抽象化されるかによって、各フォーマットには微妙なパフォーマンス特性がありますが、VirtualBoxがサポートするフォーマットを比較するベンチマークは見つかりませんでした。

次のような、パフォーマンスに影響する大きな要因があります。

  • 物理デバイスの制限(ソリッドステートドライブよりもハードディスクドライブの方がはるかに顕著です ... なぜですか?
  • 動的に割り当てられた仮想ディスクドライブを拡張します(仮想ディスクが拡張するにつれて書き込み操作は遅くなりますが、十分に大きくなれば拡張はあまり起こりません)
  • 仮想化技術(ハードウェア対ソフトウェア。ハードウェア仮想化はVirtualBoxを支援し、仮想オペレーティングシステムの速度を向上させます)
  • 仮想オペレーティングシステムを実行しているという事実。仮想化のオーバーヘッドのため、ホストでオペレーティングシステムを実行するよりも常にパフォーマンスが遅くなります。

18
+1私は、VMDKが増分バックアップの観点から探している万能薬を提供しているように思われることを付け加えます。ゲストのシングルビット変更のために巨大なモノリシックVDIをバックアップする必要なくなりました。
msanford

未加工のホストハードディスク、つまり、ホストから見た「物理」ハードディスク(またはRAIDデバイス)を使用する仮想ゲストについて、いくつかの考慮事項が欠けていると思います。これにより、ファイルシステム上でシミュレートされたドライブを使用するよりもパフォーマンスが向上します。
EnzoR

1
@Enzo:現在、RAWブロックデバイスでVMDKを使用しています。大きな問題は、VirtualBoxがルートとして実行する必要があることです。また、スナップショットはrawディスクではサポートされていませんが、サードパーティのスナップショットシステム(ZFS)があります。rawディスク上のVMDKは、移植性がはるかに低くなります。パフォーマンスに関しては、確かなベンチマークはありませんが、苦情はありません。
デルティック

6
VHDはWindowsディスクの管理でドライブとしてマウントできますが、VDIでは簡単ではないようです:superuser.com/q/342334/13889
endolith

5
@msanfordは、VMDKが巨大なファイルのバックアップをどのように回避するかについて詳しく説明できますか?rsyncは違いをよりよく理解できますか?VMDKファイルも微調整のたびに変わるようです。
ベンクリーシー

39

VirtualBoxのネイティブ形式であるため、私は常にVDIを使用します。ただし、VMDK(VMWare形式)を使用すると、他の仮想マシンソフトウェアとの互換性が向上します。

VirtualBoxはUbuntuで正常に動作するため、Windows / Ubuntuの相互運用性が目標であれば、VDIは完全に有効な選択肢です。

どちらの形式も要件を満たします。

他の2つについては、VHDはMicrosoftが開発した形式であり、HDDはAppleが開発した形式です。これらは両方とも独自にライセンスされているため、クロスプラットフォームサポートを制限します。私はそれらをお勧めしません。


18

Mpackは、ここでVHDとVDIの主要なパフォーマンスの違いを説明しています。

最近VHD形式を勉強したので、VDIの好みに少なくともわずかな違いがあると思います。たとえば、最適化されたVDIと最適化されたVHDのように比較するときに最も顕著です。その理由は、ダイナミックVHD形式にはこれらの「ビットマップ」セクターがディスク全体に散在しているためです。ブロック内のセクターを変更するたびに、これらのビットマップブロックも更新および書き込みが必要になる場合があり、追加のシーク、読み取り、書き込みが含まれます。これらのビットマップセクタは、ドライブイメージから連続したクラスターを読み取るときにスキップする必要があります-より多くのシーク。特にVDIが最適化されている場合(仮想ディスク上のブロックがLBA順にソートされている場合)、VDI形式にはこれらのオーバーヘッドはありません。

私のコメントはすべて、ダイナミックVHD形式とダイナミックVDIに適用されます。固定サイズの仮想ディスクでのパフォーマンステストは、両方の形式が同じ(ディスクの単なるイメージ)であり、ヘッダーが異なるだけなので、意味がありません。

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


5

vmdkを使用すると、VirtualBoxで作成された仮想マシンをVMwareで透過的に実行できるかどうかわかりません。かもしれない。ただし、より普遍的なオプションは、VirtualBoxファイル/エクスポート機能を使用して、「Open Virtualization Appliance」.ovaファイルを作成し、それをVMwareにインポートすることです。このアプローチにより、VirtualBoxで使用するディスクイメージ形式を気にせずに、.ovaをサポートする仮想化システムに移植できます。

定期的に、たとえば毎日、同じVMからエクスポートする必要がある場合は、苦痛になる可能性があります。ただし、ときどき別のテクノロジーに移行するだけであれば、問題ありません。

.vdiファイルが既にある場合は、新しい仮想マシンを作成せずにこれが機能するかどうかをテストできます。それを.ovaにエクスポートしてから、vmwareでインポートしてみてください。


5

仮想ディスクの使用方法にも依存します。すべてのVMが単一のディスク上に単一のパーティションを必要とするわけではありません。

VDIには(VirtualBoxで使用した場合)より多くのオプションがあるように見えますが、VirtualBoxを見えなくすると、VDIのサポートは少し不安定になります(2014年後半)。

たとえば、私のソリューションには、最大のクロスプラットフォームサポートが必要です。LinuxまたはWindows 7でのVDI(ループバックデバイスなど)のマウントは、予想よりも困難でバグが多くなります。VDIには機能が多すぎるため、VDIで動作できる完全に準拠したユーティリティを作成するのは困難です。

VMDKは、ワークステーション上のVMと連携したいとき、ネットワーク上の他のシステムに同時に3回クローンしたいとき、およびVMを起動せずにこじ開けたいとき、簡単ですインスタンス。

90%の割合でVirtualBoxを使用していますが、特定のワークフローでディスクにアクセスできなくなった数回は、プラガブル/共有ファイルシステムにVMDKを好むようになりました。


5

ディスクイメージファイルはホストシステムに存在し、ゲストシステムからは特定のジオメトリのハードディスクとして認識されます。ゲストオペレーティングシステムがハードディスクの読み取りまたは書き込みを行うと、VirtualBoxは要求をイメージファイルにリダイレクトします。

物理ディスクと同様に、仮想ディスクにはサイズ(容量)があり、イメージファイルの作成時に指定する必要があります。ただし、物理ディスクとは対照的に、VirtualBoxでは、データが既に存在する場合でも、作成後にイメージファイルを展開できます。VirtualBoxは、ディスクイメージファイルの4つのバリアントをサポートしています。

VDI:通常、VirtualBoxは、ゲストハードディスクに独自のコンテナ形式(仮想ディスクイメージ(VDI)ファイル)を使用します。特に、このフォーマットは、新しいディスクで新しい仮想マシンを作成するときに使用されます。

VMDK:VirtualBoxは、他の多くの仮想化製品、特にVMwareで使用されている一般的なオープンVMDKコンテナ形式も完全にサポートしています。[25]

VHD:VirtualBoxは、Microsoftが使用するVHD形式も完全にサポートしています。

Parallelsバージョン2(HDD形式)の画像ファイルもサポートされています。[26] 形式のドキュメントがないため、新しい形式(3および4)はサポートされていません。ただし、Parallelsが提供するツールを使用して、このような画像ファイルをバージョン2形式に変換できます。


3
この答えは、VirtualBoxマニュアルの第5章にあります。リンク
JerryOL

4

私がvmdkを使用する正当な理由は、VDI形式を使用するVirtualbox(少なくともv4.1まで)が、内部仮想ディスクの使用量がはるかに少ないにもかかわらず、時間の経過とともに、割り当てられたディスクスペース全体を埋める傾向があることです。vmdkディスクを使用するVirtualboxでは、これはそれほど問題ではないようです。

しかし、私は何年も稼働時間について話している。これは多くの人が遭遇する問題ではないかもしれません。


3
これは、フォーマット自体よりもゲストファイルシステムの断片化に関連しています。
EnzoR

2

VDIを使用すると、ディスクファイルを実際のサイズにトリムできるようになり、 VirtualBoxとSSDのTRIMコマンドがサポートされます


正確ではありますが、これらの形式の一般的な違いについて尋ねる質問には少し不満がありますが、そうではありませんか?
セス

3
@Sethの一般的な概要は以前の回答によって提供されたので、コメントするだけの十分な担当者はいませんが、この事実に言及することは依然として重要
です-OwnageIsMagic

1
提案として、より多くのコンテキストを提供するために追加します。たとえば、「この回答では概要を説明していますが、...の利点も考慮する必要があります。」ですから、一人で読んでもあなたの答えはより一般的な答えと関係があります。
セス

@Sethがedit私の質問の下にボタンがあります:D
OwnageIsMagic

1
編集内容を確認して、作業が無駄にならないように保証します。また、質問の編集者として言及されるため、適切な帰属を取得できます。どうしたの?
OwnageIsMagic

2

VMが大きくなりすぎると、VDIの圧縮がはるかに簡単になります。


1

かなり前に、速度とファイルサイズをテストするために、動的vdiを動的vhdに変換するテストを1つ実行しました。

いくつかのアプリでの不変のWindowsゲストクリーンOSインストールであったことを思い出してください。私のテストでは、ある形式から別の形式に変換するので、クローンを作成するなど、どちらもまったく同じイメージを持つと思われます。

ディスクサイズが64GiBの場合、VDIファイルサイズは約18GiBでしたが、VHDのファイルサイズは約22GiBでした。

私はこれら二つのことを見たのを覚えています:

  1. 起動時間は大幅に異なりました。悪いvhdがVDIの1.6倍速かったのを覚えていない場合
  2. VHDサイズはVDIよりもはるかに大きく、18GiBよりも約4GiBギガバイト大きいため、1.2倍大きくなりました。

それはかなり前のことで、テストはHDDで行われましたが、ディスクの高速部分で最適化されたファイルと隣接するファイルの両方を確認します。

誰かが実際のSSDテストを実行できることを願っていますが、私の考えでは、VHDはVDIよりも高速(かつ大きい)です。

ヒント:VHD / VHDXは、DiskPartコマンドラインツールを使用して、Windows 7以降で直接圧縮できます。VDIには、外部ツールCloneVDIが必要です。

申し訳ありませんが、VMDKをテストしませんでした。UUID(ディスクUUID)を変更せずに圧縮する方法を知りませんでした。


1

Transcend SSD370 128 GBのパーティションにマップされた生のVMDKをSamsung Pro 850 512GBに移行しました。

どうやらVMDKはVDIよりもはるかに高速です。理由はわかりませんが、どこかでミスをしたかもしれません。

Virtual Media Managerを介して850にVMDKをコピーしました。VDIとして1回、VMDKとして1回。

その後hdparm -tT --direct /dev/sda、画像を実行しました。「実行」のそれぞれについて、「マシン->設定->ストレージ->コントローラーSATA-> ImageFile.xxx」を交換しました。SSD370のrawパーティションは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を選択しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.