VirtualBoxの最新バージョンは、仮想ディスクのいくつかの形式をサポートしていますが、それらを比較することを忘れていました。
- VDI
- VMDK
- VHD
- HDD
今、私は以下を考慮した推奨事項または比較について興味があります。
- 動的なサイズ設定を使用できる
- スナップショットを持つことができる
- 仮想マシンを最小限の労力で別のOSまたは別の無料の仮想化ソリューションに移動できるようになります(おそらくUbuntuで正常に動作するもの)。
- 性能
VirtualBoxの最新バージョンは、仮想ディスクのいくつかの形式をサポートしていますが、それらを比較することを忘れていました。
今、私は以下を考慮した推奨事項または比較について興味があります。
回答:
VirtualBoxには
出典:Oracle®VMVirtualBox®ユーザーマニュアル » 第5章仮想ストレージ » 5.2。ディスクイメージファイル(VDI、VMDK、VHD、HDD)
- 動的なサイズ設定を使用できる
VDI、VMDK、およびVHDはすべて、動的に割り当てられたストレージをサポートします。VMDKには、ストレージファイルを各2 GB未満のファイルに分割する追加機能があります。これは、ファイルシステムのファイルサイズの制限が小さい場合に便利です。
VirtualBoxで作成する場合、HDD、QCOW、および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をサポートしていません。
HDDはParallelsのフォーマットです。ParallelsはmacOSの仮想化を専門としています。 VirtualBoxが古いバージョンのHDD形式のみをサポートしていることを考えると、これはおそらくあなたには適していません。
QCOWは、qcow形式の古いオリジナルバージョンです。VirtualBoxがサポートしていないqcow2に置き換えられました。
QEDはqcow2の廃止された拡張機能です。 QEMUはQEDの使用をお勧めしません。
- 性能
ブロックストレージがどのようにフォーマットによって抽象化されるかによって、各フォーマットには微妙なパフォーマンス特性がありますが、VirtualBoxがサポートするフォーマットを比較するベンチマークは見つかりませんでした。
次のような、パフォーマンスに影響する大きな要因があります。
VirtualBoxのネイティブ形式であるため、私は常にVDIを使用します。ただし、VMDK(VMWare形式)を使用すると、他の仮想マシンソフトウェアとの互換性が向上します。
VirtualBoxはUbuntuで正常に動作するため、Windows / Ubuntuの相互運用性が目標であれば、VDIは完全に有効な選択肢です。
どちらの形式も要件を満たします。
他の2つについては、VHDはMicrosoftが開発した形式であり、HDDはAppleが開発した形式です。これらは両方とも独自にライセンスされているため、クロスプラットフォームサポートを制限します。私はそれらをお勧めしません。
Mpackは、ここでVHDとVDIの主要なパフォーマンスの違いを説明しています。
最近VHD形式を勉強したので、VDIの好みに少なくともわずかな違いがあると思います。たとえば、最適化されたVDIと最適化されたVHDのように比較するときに最も顕著です。その理由は、ダイナミックVHD形式にはこれらの「ビットマップ」セクターがディスク全体に散在しているためです。ブロック内のセクターを変更するたびに、これらのビットマップブロックも更新および書き込みが必要になる場合があり、追加のシーク、読み取り、書き込みが含まれます。これらのビットマップセクタは、ドライブイメージから連続したクラスターを読み取るときにスキップする必要があります-より多くのシーク。特にVDIが最適化されている場合(仮想ディスク上のブロックがLBA順にソートされている場合)、VDI形式にはこれらのオーバーヘッドはありません。
私のコメントはすべて、ダイナミックVHD形式とダイナミックVDIに適用されます。固定サイズの仮想ディスクでのパフォーマンステストは、両方の形式が同じ(ディスクの単なるイメージ)であり、ヘッダーが異なるだけなので、意味がありません。
vmdkを使用すると、VirtualBoxで作成された仮想マシンをVMwareで透過的に実行できるかどうかわかりません。かもしれない。ただし、より普遍的なオプションは、VirtualBoxファイル/エクスポート機能を使用して、「Open Virtualization Appliance」.ovaファイルを作成し、それをVMwareにインポートすることです。このアプローチにより、VirtualBoxで使用するディスクイメージ形式を気にせずに、.ovaをサポートする仮想化システムに移植できます。
定期的に、たとえば毎日、同じVMからエクスポートする必要がある場合は、苦痛になる可能性があります。ただし、ときどき別のテクノロジーに移行するだけであれば、問題ありません。
.vdiファイルが既にある場合は、新しい仮想マシンを作成せずにこれが機能するかどうかをテストできます。それを.ovaにエクスポートしてから、vmwareでインポートしてみてください。
仮想ディスクの使用方法にも依存します。すべてのVMが単一のディスク上に単一のパーティションを必要とするわけではありません。
VDIには(VirtualBoxで使用した場合)より多くのオプションがあるように見えますが、VirtualBoxを見えなくすると、VDIのサポートは少し不安定になります(2014年後半)。
たとえば、私のソリューションには、最大のクロスプラットフォームサポートが必要です。LinuxまたはWindows 7でのVDI(ループバックデバイスなど)のマウントは、予想よりも困難でバグが多くなります。VDIには機能が多すぎるため、VDIで動作できる完全に準拠したユーティリティを作成するのは困難です。
VMDKは、ワークステーション上のVMと連携したいとき、ネットワーク上の他のシステムに同時に3回クローンしたいとき、およびVMを起動せずにこじ開けたいとき、簡単ですインスタンス。
90%の割合でVirtualBoxを使用していますが、特定のワークフローでディスクにアクセスできなくなった数回は、プラガブル/共有ファイルシステムにVMDKを好むようになりました。
ディスクイメージファイルはホストシステムに存在し、ゲストシステムからは特定のジオメトリのハードディスクとして認識されます。ゲストオペレーティングシステムがハードディスクの読み取りまたは書き込みを行うと、VirtualBoxは要求をイメージファイルにリダイレクトします。
物理ディスクと同様に、仮想ディスクにはサイズ(容量)があり、イメージファイルの作成時に指定する必要があります。ただし、物理ディスクとは対照的に、VirtualBoxでは、データが既に存在する場合でも、作成後にイメージファイルを展開できます。VirtualBoxは、ディスクイメージファイルの4つのバリアントをサポートしています。
VDI:通常、VirtualBoxは、ゲストハードディスクに独自のコンテナ形式(仮想ディスクイメージ(VDI)ファイル)を使用します。特に、このフォーマットは、新しいディスクで新しい仮想マシンを作成するときに使用されます。
VMDK:VirtualBoxは、他の多くの仮想化製品、特にVMwareで使用されている一般的なオープンVMDKコンテナ形式も完全にサポートしています。[25]
VHD:VirtualBoxは、Microsoftが使用するVHD形式も完全にサポートしています。
Parallelsバージョン2(HDD形式)の画像ファイルもサポートされています。[26] 形式のドキュメントがないため、新しい形式(3および4)はサポートされていません。ただし、Parallelsが提供するツールを使用して、このような画像ファイルをバージョン2形式に変換できます。
私がvmdkを使用する正当な理由は、VDI形式を使用するVirtualbox(少なくともv4.1まで)が、内部仮想ディスクの使用量がはるかに少ないにもかかわらず、時間の経過とともに、割り当てられたディスクスペース全体を埋める傾向があることです。vmdkディスクを使用するVirtualboxでは、これはそれほど問題ではないようです。
しかし、私は何年も稼働時間について話している。これは多くの人が遭遇する問題ではないかもしれません。
VDIを使用すると、ディスクファイルを実際のサイズにトリムできるようになり、 VirtualBoxとSSDのTRIMコマンドがサポートされます
edit
私の質問の下にボタンがあります:D
かなり前に、速度とファイルサイズをテストするために、動的vdiを動的vhdに変換するテストを1つ実行しました。
いくつかのアプリでの不変のWindowsゲストクリーンOSインストールであったことを思い出してください。私のテストでは、ある形式から別の形式に変換するので、クローンを作成するなど、どちらもまったく同じイメージを持つと思われます。
ディスクサイズが64GiBの場合、VDIファイルサイズは約18GiBでしたが、VHDのファイルサイズは約22GiBでした。
私はこれら二つのことを見たのを覚えています:
それはかなり前のことで、テストはHDDで行われましたが、ディスクの高速部分で最適化されたファイルと隣接するファイルの両方を確認します。
誰かが実際のSSDテストを実行できることを願っていますが、私の考えでは、VHDはVDIよりも高速(かつ大きい)です。
ヒント:VHD / VHDXは、DiskPartコマンドラインツールを使用して、Windows 7以降で直接圧縮できます。VDIには、外部ツールCloneVDIが必要です。
申し訳ありませんが、VMDKをテストしませんでした。UUID(ディスクUUID)を変更せずに圧縮する方法を知りませんでした。
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を選択しました。