web-dev-qa-db-ja.com

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

VirtualBoxの最新版は仮想ディスクのためのいくつかのフォーマットをサポートしますが、それらはそれらの間の比較を提供するのを忘れていました。

  • VDI
  • VMDK
  • VHD
  • HDD

さて、私は以下を考慮した推奨や比較に興味があります。

  • 動的サイジングを使用できる
  • スナップショットを作成できる
  • 最小限の労力で(おそらくUbuntu上で問題なく動作するようなもの)、自分の仮想マシンを別のOSまたはさらに別の無料の仮想化ソリューションに移動することができる。
  • パフォーマンス
284
sorin

VirtualBoxは持っています

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

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

Screenshot of Create Virtual Hard Disk


あなたの考えに答える

  • 動的サイジングを使用できる

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

HDDQCOW、および_ qed _/VirtualBoxで作成された場合、は動的に割り当てられる必要があります。

  • スナップショットを作成できる

VirtualBoxは、の6つすべてのフォーマットのスナップショット作成をサポートしています。

  • 最小限の労力で(おそらくUbuntu上で問題なく動作するようなもの)、自分の仮想マシンを別のOSまたはさらに別の無料の仮想化ソリューションに移動することができます。

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

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

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

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

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

QEDは、qcow2の廃止された機能拡張です。 QEMUはQEDを使わないように勧めます。

  • パフォーマンス

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

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

  • 物理デバイスの制限( ソリッドステートドライブ よりもハードディスクドライブの方がはるかに目立ちます)… なぜですか?
  • 動的に割り当てられた仮想ディスクドライブを拡張する(仮想ディスクが拡張されると書き込み操作は遅くなりますが、十分に大きくなれば拡張はそれほど起こらないはずです)
  • 仮想化テクノロジ( ハードウェアとソフトウェア ;ハードウェア仮想化はVirtualBoxを助け、仮想オペレーティングシステムの速度を向上させます)
  • あなたが仮想オペレーティングシステムを実行しているという事実。仮想化のオーバーヘッドがあるため、パフォーマンスは常にホスト上でオペレーティングシステムを実行するよりも遅くなります。
206
Deltik

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

VirtualBoxはUbuntuでも問題なく動作するので、Windows/Ubuntuの相互運用性が目標であれば、VDIは完全に有効な選択肢となります。

どちらのフォーマットもあなたの要求を満たすでしょう。

他の2つに関しては、VHDはマイクロソフトが開発したフォーマットであり、HDDはアップルが開発したフォーマットです。どちらも独自にライセンスされているので、クロスプラットフォームサポートを制限します。私はそれらをお勧めしません。

37
Tortoise

Mpack氏、VHDとVDIの主なパフォーマンスの違いについて説明します。

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

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

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

17

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

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

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

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

VHD:VirtualBoxは、マイクロソフトが使用しているVHDフォーマットも完全にサポートしています。

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

5
SRINIVAS

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

VDIにはもっと多くのオプションがあるようです(VirtualBoxと一緒に使用した場合)が、VirtualBoxを使用するとすぐにVDIのサポートは多少不安定になります(2014年末現在)。

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

VMDKをワークステーション上のVMと組み合わせて使用​​したい場合、ネットワーク上の他のシステムに同時に3回クローン作成したい場合、およびこじ開けたい場合には、VMDKのほうが簡単です。 VMインスタンスを起動せずに開きます。

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

5
user2097818

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

同じVMから定期的にエクスポートする必要がある場合は、毎日、それは痛みかもしれません。しかし、ときどき別のテクノロジに移動するだけでも大丈夫です。

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

5
Alan Meyer

私がvmdkを使用するのは、VDIフォーマットを使用するVirtualbox(少なくともv4.1まで)では、内部仮想ディスクの使用量がまだ少なくても、割り当てられたディスクスペースをすべて使用する傾向があるためです。 vmdkディスクを使用しているVirtualboxでは、これはそれほど問題ではないようです。

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

4

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

2
OwnageIsMagic

VMが大きくなりすぎると、VDIの方がはるかにコンパクトになります。

1
eych

昔、私は1つのテストをしました、テスト速度とファイルサイズのためだけに動的vdiを動的vhdに変換します。

それは、いくつかのアプリと共にインストールすることができる不可分なWindowsゲストクリーンOSであったことを思い出してください、私のテストのために私が1つのフォーマットを別のものに変換することを覚えておいてください。

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

私は私がtheese 2つのことを見たのを覚えていることができます:

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

それは昔のことで、HDDでテストが行​​われましたが、両方のファイルが最適化されている場所と、ディスクの高速部分で隣同士になっていることを確認します。

誰かが本当のSSDテストを実行できることを願っていますが、私の気持ちはVHDがVDIより速い(そして大きい)ということです。

ちょっと一言:VHD/VHDXは、DiskPartコマンドラインツールを使用することで、Windows 7以降で直接圧縮できます。VDIには外部ツールCloneVDIが必要です。

すみません私はVMDKをテストしませんでした、私はそのUUID(ディスクUUID)を変更せずにそれをコンパクトにする方法を知りませんでした、VBOXコマンドツールはすべてのクローンで常に使用します。

1
Laura

私はちょうど生のVMDKをSamsung Pro 850 512GBへのトランセンドSSD370 128GBのパーティションにマッピングされたものに移行しました。

どうやらVMDKはVDIよりずっと速いです。私はその理由を理解していません、多分私はどこかでミスをしました。

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

それから私は画像に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を選びました。

1
Daniel F