高機能な仮想化ソフトVirtualBox解説の後編。仮想マシン環境のカスタマイズやスナップショット機能について解説。
前回は「Oracle VM VirtualBox(以下VirtualBox)」の概要とインストール、仮想マシンの作成方法について簡単に解説した。今回は、仮想マシンのカスタマイズやスナップショット機能などについてみていく。
作成した仮想マシンの構成を変更し、利用目的に合わせてカスタマイズするには、仮想マシンごとの設定オプションを変更する。変更できる項目はほかの仮想化ソフトウェアと同様だが、CPUの特権機能に関する設定があるなど、やや細かくなっている。よく分からない場合は、デフォルトのまま利用するのがよいだろう。そのためにも、仮想マシンを作成する場合は、Windows OSの種類(Windows XPかWindows 7か、など)やbit数の違い(32bit版か64bit版か)などを正しく指定しておくことが重要である。
仮想マシンのハードウェアの構成を変更するには、VirtualBoxの管理画面で対象の仮想マシンを選択し、ツール・バーにある[設定]アイコンをクリックするか、ポップアップ・メニューから[仮想マシン設定]を選択する。
仮想マシンの構成変更でよく行われるのは、メモリ・サイズの調整だろう。利用するアプリケーションのサイズなどに合わせて、最初に作成したときのサイズから増やすようにする。ただし、元のサイズよりも大幅に変更し、さらにCPU構成なども大きく変更すると、インストールしたWindows OSイメージの再アクティベーションが必要になることがある。そのため、可能なら最初から大きなメモリ・サイズでWindows OSをインストールしてアクティベーションなどを行っておくと、手間がかからなくて済む。
メモリ・サイズの設定は、設定ダイアログの「システム」グループにある「マザーボード」タブで行う。
VirtualBoxでは、仮想マシンのメモリ・サイズを、ホストPCの空き物理メモリ・サイズいっぱいまで拡大できる(安全のために、全物理メモリ・サイズの70%を超えると警告が出る)。以前解説したVMware Playerのように、仮想的なメモリを扱う機能はないので(次期Hyper-Vではこの機能が導入される予定)、ゲスト仮想マシンに多量のメモリを割り当てるためには、ホスト・コンピュータに実際に大量の物理メモリを装着しておく必要がある。例えばゲストOS(仮想マシン)に8Gbytesのメモリを割り当てたければ、ホストPCには10Gbytesとかそれ以上のメモリを実際に装着する必要があるだろう。ゲストOSの仮想記憶機能を使い、例えば2Gbytesの物理メモリと8Gbytesのページ・ファイルを割り当てるといった方法もあるが、その分、パフォーマンスが低下することは理解しておく必要がある。
次はCPUコアの割り当てについてみてみよう。ウィザードはデフォルトでは、1仮想マシンに対して1コア(VirtualBoxでは「1プロセッサ」と呼んでいる)のみ割り当てるが、より多くのCPUコアを割り当てることも可能である。ただしメモリの項目でも述べたように、CPUのコア数のような基本的な項目を変更すると、Windows OSでは再アクティベーションが必要になることがある。また複数の仮想マシンを実行する場合に物理コア数を超えてしまうと、大幅なパフォーマンスの低下を引き起こすこともある。本連載で扱っているような実験的な用途ではCPUの負荷はあまり高くないので、仮想マシンのCPUコア数は常に1つだけにしておいても構わないだろう。2コアや4コア、8コアなど、実PCのコア構成などをそのまま反映させたような仮想マシンを作成しても、実際に各仮想コアがどの実コア(スレッド)に割り当てられるかはゲストOSやユーザーでは制御できないので、場合によっては(ほかのプロセスの実行などですでにCPUが利用中の場合など)パフォーマンスが大きく低下する可能性がある。1コアのみに限定しておき、実際のコア(実行スレッド)の管理はホストOSやVirtualBoxに任せておけばよい。
ところで、仮想マシンのCPUのコア数を途中で変更しても、それがゲストOSで実際に認識され、利用できるようになるかどうかはゲストOS次第である。例えばWindows XPやそれ以前のWindows OSでは、1コアから2コア以上に変更してもOS側では自動的に認識されず、1コアしか利用されない。マルチコア対応にするには、HAL(Hardware Abstraction Layer)モジュールの変更が必要になる(TIPS「Windows 2000で選択可能なHALのシステム タイプ」「現在使用されているHALのファイル名を調査する」参照)。どのHALが必要なのかはWindows OSのインストール時にはチェックされるが、その後は自動判定されないからだ。これに対してWindows VistaやWindows 7のような新しいWindows OSでは起動時に自動的に判定され、対応するHALの入れ替えも自動的に行われるが、その際にシステムを再起動する必要がある。無用なトラブルを防ぐためにも、(特に必要がない限り)実験的な用途で使う仮想マシンでは1コアでよいだろう。
VirtualBoxでCPUのコア数を変更するには、「システム」グループの「プロセッサ」タブを利用する。VirtualBoxの仕様では最大32コアまでサポートされているが、実際の設定画面ではホストCPUの持つコア数の2倍までしか設定できない。しかも実際の物理コア数を超えた値を設定すると、仮想マシンの起動や動作が非常に重くなるなどの症状が現れることがあるので(各スレッドがCPUリソースを取り合って「競合」を起こしているようである)、必要最小限のコア数にしておこう。例えば、8コアの物理CPUを持つシステムならば(物理的に8コアか、それとも4コア×ハイパースレッドで8コアに見えるのかは、どちらでもよい)、設定画面では16コアまで指定できるが、パフォーマンスを考えると最大でも8コアとかそれ以下にしておくのが望ましい。
次の画面は、コア数=8個のホストCPU上で、16コアを有効にした仮想マシンを起動したところである。このように、VirtualBoxでは実コア数を超えた仮想マシンを作成できるが、仮想マシンの起動時にホスト側のCPU利用率が100%近くになる、無負荷状態なのにCPU利用率が30%前後のままになるなど、いくらか問題があるようだ。通常は1〜2コア程度で運用するのがよいだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.