ストレージ設定では仮想ディスク、CD/DVD・フロッピーディスクのドライブやイメージを操作します。

VirtualBoxでは仮想ストレージコントローラーを仮想マシンに定義し、仮想デバイス(仮想ディスクやCD/DVDイメージなど)をコントローラーに割り当てることで、デバイスを使用できるようにします。

VirtualBoxのストレージ設定の画面

ストレージツリー

新規仮想マシン作成ウィザードで仮想マシンを作成するとSATAコントローラーの下に仮想ディスクが、IDEコントローラーの下にCD/DVDドライブが定義されています。

コントローラーの追加/削除やデバイスの追加/削除は下のボタンで行えます。
デバイスの追加/削除はコントローラーを選択した状態で、右側に表示されるボタンでも行えます。

割り当ての追加

選択したコントローラーにデバイスを割り当てます。

割り当てを除去

選択したデバイスをコントローラーから除去します。

コントローラーを追加

ストレージコントローラーを追加します。
追加できるコントローラーは以下になりますが、古いOSを使う場合、SATAやSASのコントローラーに対応していない場合があるので注意が必要です。

また、コントローラーはそれぞれ一つずつしか追加できません。

IDE コントローラー

古くからあるストレージコントローラーで、VirtualBoxがデフォルトで使用するコントローラーです。
ほとんどすべてのOSが対応していますが、3.2からの新機能の非同期I/Oには対応していないため、パフォーマンスはよくありません。

SATA コントローラ

比較的最近登場したストレージコントローラーで、ポート0から29まで、最大30ドライブを接続できます。
本物のSATAコントローラーと同様に、IDEコントローラーと比べ転送速度が速くCPUリソースの消費も少なくなっています。
Vista以前のWindowsOSをゲストとする場合、AHCIドライバが必要になります。

SCSI コントローラー

SCSIコントローラーもIDEと同様に古くからあるコントローラーで、高いパフォーマンスが求められるワークステーションや、サーバに使用されてきました。
ポート0から15まで、最大16ドライブを接続できます。

SAS コントローラー

比較的最近登場したコントローラーです。
ポート0から7まで、最大8ドライブを接続できます。
一部のハイエンドOSが必要とする高速なコントローラーですが、ホストマシン側もSASを使用していないと真価を発揮しないでしょう。

フロッピー コントローラー

デバイス0,1の最大2ドライブを接続できます。
コントローラーを除去
選択したコントローラーを除去します。

デバイスの追加

選択したコントローラーにデバイスを割り当てます。

デバイスの除去

選択したデバイスをコントローラーから除去します。

コントローラーの属性

選択したコントローラー/デバイスの属性を設定します。

IDEコントローラー

3つのコントローラーのタイプにはPIIX3・PIIX4・ICH6の3つがありますが、機能やパフォーマンスに違いあるわけではありません。

他の仮想ソフトウェア(VirtualPCなど)から仮想マシンをインポートする際に、元と異なるタイプのコントローラーを指定すると起動できない場合があるので、その際に設定を変更します。

SATAコントローラー

AHCIのみサポートしています。

SCSIコントローラー

LsilogicコントローラーとBuslogicコントローラーをサポートしています。

SASコントローラー

LsiLogic SASのみサポートしています。

フロッピーコントローラー

I820783のみサポートしています。

ホストのI/Oキャッシュを使う

ホストOSのファイルキャッシュを利用して、ゲストOSのディスクI/Oパフォーマンスを著しく向上させます。
ホストOSがファイルとして扱っている、仮想ディスクのイメージファイルなどに有効です。

いわゆる非同期I/Oという以下の仕組みでパフォーマンスを向上させます。

ゲストマシンの書き込みをホストOSのキャッシュメモリに書き出す
ゲストマシンにはこの時点で書き込みを完了したと返答する
ホストOSはキャッシュメモリにあるデータをハードディスクに書き出す
ゲストOSは高速なキャッシュメモリとI/Oのやり取りをすることで、劇的なパフォーマンス向上をすることができます。

ただし、

  • キャッシュから実際のファイルへの書き込みが非同期となるため、電源障害やホストのクラッシュ等でゲストOSのデータが消失する可能性がある
  • イメージファイルは巨大な為、一度に複数の仮想マシンを立ち上げるとホストOSのパフォーマンスに影響を及ぼす可能性がある
  • ゲストOS・ホストOSの両方で同様のI/Oキャッシュが保存される
  • writeに対してreadはそれほどのパフォーマンス向上は望めない

などのデメリットも存在します。
電源断時にデータロスしても構わない&ホストOS側のメモリが潤沢な場合に使うと良いかもしれません。

デバイスの属性

IDEデバイス

IDEコントローラーのスロットには以下の4つがあります。

  • IDE プライマリマスター
  • IDE プライマリスレーブ
  • IDE セカンダリマスター
  • IDE セカンダリスレーブ

接続するデバイスは仮想メディアマネージャーをから選択します。

CD/DVDドライブやフロッピーの場合、ホストマシンのドライブを選択する事も可能です。

仮想ハードディスクの場合「Solid-state drive」のオプションがありますが、ここにチェックを入れるとゲストマシンが仮想ハードディスクをSSDとみなします。
ゲストOSがSSDをサポートしていると(Windows7など)パフォーマンスが向上します。

CD/DVDドライブの場合「Live CD/DVD」のオプションがありますが、チェックをしておくとマシンからイジェクトしない限り、仮想メディアマネージャから仮想CD/DVDを「除去」できなくなります。

以下、他のデバイスの設定項目はIDEとほぼ同じです。

SATAデバイス
SCSIデバイス
SASデバイス
フロッピーデバイス