最新バージョンのVirtualBoxは仮想ディスクのフォーマットをいくつかサポートしていますが、それらの間の比較を提供することを忘れていました
- VDI
- VMDK
- VHD
- HDD
さて、以下のようなことを考慮したおすすめや比較について興味があります
- ダイナミックサイジングを使用できるようになります
- スナップショットを持つことができる
- 最小限の労力で仮想マシンを別のOS、あるいは別のフリーの仮想化ソリューションに移動することができる(おそらくUbuntu上で正常に動作するもの)
- performance
339 sorin 2011-11-23
VirtualBox has
- フルサポート
- VDI
- VMDK
- VHD
- 部分的なサポート
- HDD(Parallelsバージョン2のみ)
- また、文書化されたサポートでは、.NET Framework の.NET Framework をサポートしています
- QCOW
- QED
ソース。Oracle® VM VirtualBox® ユーザーマニュアル ” Chapter 5.仮想ストレージ ” 5.2.ディスクイメージファイル (VDI, VMDK, VHD, HDD)
考察にお答えします
- ダイナミックサイジングを使用できるようになります
VDI、VDK、および VHD はすべて動的に割り当てられたストレージをサポートしています。VMDK には、ストレージファイルをそれぞれ 2 GB 未満のファイルに分割する機能が追加されており、ファイルシステムのファイルサイズが小さい場合に便利です
HDD、QCOW、QEDはVirtualBoxで作成した場合、動的に割り当てる必要があります
- スナップショットを持つことができる
VirtualBox は、6 つの形式すべてのスナップショットをサポートしています
- 最小限の労力で仮想マシンを別のOS、あるいは別のフリーの仮想化ソリューションに移動することができる(おそらくUbuntu上で正常に動作するもの)
VDIはVirtualBoxのネイティブフォーマットです。他の仮想化ソフトウェアは一般的にVDIをサポートしていませんが、VDIから他の形式に変換するのはかなり簡単で、特にqemu-img convert
を使うと簡単です
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 の使用を推奨しています
- performance
それぞれのフォーマットでブロックストレージの抽象化の仕方によって微妙な性能特性があるのかもしれませんが、VirtualBox対応フォーマットを比較したベンチマークは見当たりませんでした
パフォーマンスに影響を与える大きな要因があります
- 物理デバイスの制限(ソリッドステートドライブ… なぜ?よりもハードディスクドライブの方がはるかに顕著です)
- 動的に割り当てられた仮想ディスクドライブを展開します (仮想ディスクが展開されると書き込み操作は遅くなりますが、十分な大きさになれば展開は少なくなります)
- 仮想化技術(ハードウェア対ソフトウェア; ハードウェアの仮想化はVirtualBoxを助け、仮想OSの速度を向上させます)
- 仮想オペレーティングシステムを実行しているという事実を考慮する必要があります。仮想化のオーバーヘッドのため、ホスト上でオペレーティングシステムを実行するよりもパフォーマンスは常に遅くなります
246 Deltik 2012-06-22
VirtualBoxのネイティブフォーマットなので、私はいつもVDIを使用していますが、VDK(VMWareフォーマット)を使用することで、他の仮想マシンソフトウェアとの互換性を高めることができます
VirtualBoxはUbuntuでも問題なく動作しますので、目的がWindows/Ubuntuの相互運用性であれば、VDIは完全に有効な選択肢になるでしょう
どちらのフォーマットも、あなたの要件を満たします
他の2つについては、VHDはマイクロソフトが開発したフォーマットで、HDDはアップルが開発したフォーマットで、どちらも個人でライセンスを取得しているため、クロスプラットフォーム対応が制限されているので、あまりお勧めできません
42 Tortoise 2012-06-22
Mpack、ここではVHDとVDIの重要な性能の違いを説明しています
最近 VHD フォーマットを研究してきたので、VDI には少なくともわずかな違いがあることを期待しています。その理由は、ダイナミック VHD フォーマットでは、これらの「ビットマップ」セクタがディスク全体に散在しているからです。ブロック内のセクタを変更するたびに、これらのビットマップブロックも更新して書き込む必要があり、余分なシーク、リード、ライトが必要になります。また、ドライブイメージから連続したクラスタを読み出す際には、これらのビットマップセクタをスキップする必要があります。VDIフォーマットでは、VDIが最適化されている場合は特に、このようなオーバーヘッドはありません(仮想ディスク上のブロックがLBA順にソートされている場合)
私のコメントはすべて、ダイナミック VHD フォーマットとダイナミック VDI に適用されます。固定サイズの仮想ディスクでのパフォーマンステストは、どちらのフォーマットも同じ(ディスクのプレーンイメージ)なので、無意味です
19 InterestedInHelping 2014-05-08
vmdkを使えばVirtualBoxで作成した仮想マシンをVMwareで透過的に実行できるかどうかはわかりません。可能性はあるかもしれません。しかし、より普遍的なオプションとしては、VirtualBox のファイル/エクスポート機能を使用して、”Open Virtualization Appliance” .ova ファイルを作成し、それを VMware にインポートすることができるかもしれません。この方法では、VirtualBox で使用するディスクイメージの形式を気にすることなく、.ova をサポートしている仮想化システムに移植することができます
毎日のように定期的に同じVMからエクスポートする必要がある場合は、それは面倒です。しかし、たまに別の技術に移行するだけなら問題ないはずです
すでに .vdi ファイルがある場合は、新しい仮想マシンを作成しなくても動作するかどうかをテストすることができます。それを .ova にエクスポートしてから、vmware でインポートしてみてください
5 Alan Meyer 2012-07-03
仮想ディスクをどのように使用するかにもよりますが、すべてのVMが単一のディスクに単一のパーティションを必要とするわけではありません。すべての VM が単一のディスクに単一のパーティションを望んでいるわけではありません
VDIは(VirtualBoxで使用した場合)選択肢が増えるようですが、VirtualBoxを持ち出すとすぐにVDIのサポートがやや揺らいでしまいます(2014年末現在)
例えば、私のソリューションはクロスプラットフォームを最大限にサポートする必要があります。VDI (ループバックデバイスなど) を linux や Windows 7 にマウントするのは、思ったよりも難しく、バグが多いです。VDIには多くの機能がありすぎて、VDI上で動作するユーティリティを完全に適合させるのが難しいのです
VMDKは、どのワークステーションのどのVMでも動作するようにしたいとき、ネットワーク上の他のシステムに3回同時にクローンを作成したいとき、VMインスタンスを起動せずにこじ開けたいときに、IMHOでは痛みが少ないだけです
私は 90% の頻度で VirtualBox を使用していますが、特定のワークフローでディスクにアクセスできなくなることが数回あり、プラガブル/共有ファイルシステム用の VMDK を使用するようになりました
5 user2097818 2015-01-08
ディスク イメージ ファイルはホスト システムに存在し、ゲスト システムでは特定のジオメトリのハード ディスクとして認識されます。ゲスト オペレーティング システムがハード ディスクから読み取ったり、ハード ディスクに書き込んだりすると、VirtualBox は要求をイメージ ファイルにリダイレクトします
物理ディスクと同様に、仮想ディスクにもサイズ (容量) があり、イメージ ファイルの作成時に指定する必要があります。しかし、物理ディスクとは異なり、VirtualBox ではイメージファイルを作成後に展開することができます
VDI: 通常、VirtualBox はゲストハード ディスク用に独自のコンテナ フォーマット — Virtual Disk Image (VDI) ファイル — を使用します。特に、このフォーマットは、新しいディスクで新しい仮想マシンを作成するときに使用されます
また、VMDK:VirtualBoxは、他の多くの仮想化製品、特にVMwareで使用されている人気のあるオープンなVMDKコンテナ形式を完全にサポートしています[25]
VHD:VirtualBoxもMicrosoftが使用しているVHDフォーマットを完全にサポートしています
Parallels バージョン 2(HDD フォーマット)のイメージファイルもサポートされています[26]。 フォーマットのドキュメントがないため、新しいフォーマット(3 および 4)はサポートされていません。ただし、Parallels が提供するツールを使用して、このようなイメージファイルをバージョン 2 フォーマットに変換することは可能です
5 SRINIVAS 2015-11-28
VDIを使用することで、ディスクファイルを実際のサイズにトリミングすることができるようです。VirtualBoxとSSDのTRIMコマンドをサポート
5 OwnageIsMagic 2016-11-19
私がvmdkを使用する理由は、VDIフォーマットを使用しているVirtualbox(少なくともv4.1までは)は、内部仮想ディスクの使用量がはるかに少ないにもかかわらず、時間が経つにつれて、割り当てられたディスクスペースを完全に埋め尽くす傾向があるからです。vmdk ディスクを使用している Virtualbox では、これはあまり問題にならないようです
しかし、私は何年もの稼働時間の話をしています。これは多くの人が遭遇する問題ではないかもしれません
4 Ernest ter Kuile 2015-01-30
VMが大きくなりすぎるとVDIの方がコンパクトになります
3 eych 2017-08-02
Transcend SSD370 128GBのパーティションにマッピングされていた生のVMDKをSamsung Pro 850 512GBに移行したところです
どうやらVDIよりもVDKの方が速いらしい。理由がよくわからないので、どこかで間違えたのかもしれません
VMDKをVirtual Media Manager経由で850にコピーしました。1回はVDIとして、1回はVDKとして
その後、画像に対して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を選びました
3 Daniel F 2017-09-21
ずっと前に私は1つのテストをしました、ダイナミックVDIをダイナミックVHDに変換して速度とファイルサイズをテストするだけです
それはいくつかのアプリをインストールして、Inmutable WindowsゲストクリーンOSだったことを覚えて、私のテストのために私は別のフォーマットに変換するので、両方が正確な同じイメージを持っていることを前提としています、クローンを行うように
ディスクサイズが64GiBの場合、VDIのファイルサイズは約18GiB、VHDのファイルサイズは約22GiBであった
2つのものを見たのを覚えている
- 起動時間は、私が覚えていない場合は、悪いvhdはVDIよりも1.6倍速だった
- VHDのサイズはVDIよりもはるかに大きく、18GiBの上に4GiBのギガバイトのroundが大きかったので、1.2倍の大きさです
それは昔のことで、テストはHDD上で行われましたが、私は両方のファイルがデフラグされ、ディスクの高速部分でお互いに隣り合っていることを確認します
誰かが実際のSSDのテストをしてくれるといいのですが、私の感覚ではVDIよりもVHDの方が速い(そして大きい)ような気がします
ヒント: VHD/VHDXは、DiskPartコマンドラインツールを使用してWindows 7以上で直接圧縮することができます
VMDK をテストしていないのが残念です。VBOX コマンドツールでは、どのようなフォーマットを使用しても、クローンごとに UUID (ディスクの UUID) を変更しています
1 Laura 2018-06-12