ストレージ設定

ストレージ設定では仮想ディスク、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という以下の仕組みでパフォーマンスを向上させます。

  1. ゲストマシンの書き込みをホストOSのキャッシュメモリに書き出す
  2. ゲストマシンにはこの時点で書き込みを完了したと返答する
  3. ホスト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デバイス
フロッピーデバイス