第10回 Oracle VM VirtualBoxを使う(後):仮想PCで学ぶ「体当たり」Windowsシステム管理(1/3 ページ)
高機能な仮想化ソフトVirtualBox解説の後編。仮想マシン環境のカスタマイズやスナップショット機能について解説。
前回は「Oracle VM VirtualBox(以下VirtualBox)」の概要とインストール、仮想マシンの作成方法について簡単に解説した。今回は、仮想マシンのカスタマイズやスナップショット機能などについてみていく。
ハードウェア構成の変更
作成した仮想マシンの構成を変更し、利用目的に合わせてカスタマイズするには、仮想マシンごとの設定オプションを変更する。変更できる項目はほかの仮想化ソフトウェアと同様だが、CPUの特権機能に関する設定があるなど、やや細かくなっている。よく分からない場合は、デフォルトのまま利用するのがよいだろう。そのためにも、仮想マシンを作成する場合は、Windows OSの種類(Windows XPかWindows 7か、など)やbit数の違い(32bit版か64bit版か)などを正しく指定しておくことが重要である。
仮想マシンのハードウェアの構成を変更するには、VirtualBoxの管理画面で対象の仮想マシンを選択し、ツール・バーにある[設定]アイコンをクリックするか、ポップアップ・メニューから[仮想マシン設定]を選択する。
VirtualBoxの仮想マシン管理コンソール画面
VirtualBoxを起動するとこのように、左側に仮想マシン一覧、右側にその詳細が表示される。
(1)作成され、登録されている仮想マシンの一覧から1つ選択する。
(2)現在の設定の詳細が表示される。
(3)これをクリックして構成を変更する。
仮想マシンの構成変更でよく行われるのは、メモリ・サイズの調整だろう。利用するアプリケーションのサイズなどに合わせて、最初に作成したときのサイズから増やすようにする。ただし、元のサイズよりも大幅に変更し、さらにCPU構成なども大きく変更すると、インストールしたWindows OSイメージの再アクティベーションが必要になることがある。そのため、可能なら最初から大きなメモリ・サイズでWindows OSをインストールしてアクティベーションなどを行っておくと、手間がかからなくて済む。
メモリ・サイズの変更
メモリ・サイズの設定は、設定ダイアログの「システム」グループにある「マザーボード」タブで行う。
メモリ・サイズの変更
この画面では、仮想マシンに割り当てるメモリ・サイズを変更する。ホストPCの空きメモリ・サイズいっぱいまで設定できるが、実行時にメモリが不足していると、仮想マシンは起動できない。
(1)これを選択する。
(2)このタブを選択する。ここではメモリ・サイズのほか、BIOSやマザーボード関連の設定を行う。
(3)メモリ・サイズの指定。ここでは9Gbytes程度割り当ててみた。
(4)緑色の部分は安全なメモリ・サイズの目安。実物理メモリ・サイズの70%以下になっている。
(5)薄い赤の部分は、70〜90%のメモリ・サイズ領域。割り当てるのが困難であるという意味。
(6)濃い赤の部分は、90〜100%のメモリ・サイズ領域。割り当てるのが不可能であるという意味。
(7)2プロセッサ(2コア)以上のCPUを設定する場合は、これをオンにしなければならない(後述のCPUの項参照)。
(8)割り当てたメモリ・サイズが大きすぎるという警告メッセージ。ほかのアプリケーションや仮想マシンですでにメモリが使われていると、実行時に割り当てることができず、仮想マシンを起動できない。
VirtualBoxでは、仮想マシンのメモリ・サイズを、ホストPCの空き物理メモリ・サイズいっぱいまで拡大できる(安全のために、全物理メモリ・サイズの70%を超えると警告が出る)。以前解説したVMware Playerのように、仮想的なメモリを扱う機能はないので(次期Hyper-Vではこの機能が導入される予定)、ゲスト仮想マシンに多量のメモリを割り当てるためには、ホスト・コンピュータに実際に大量の物理メモリを装着しておく必要がある。例えばゲストOS(仮想マシン)に8Gbytesのメモリを割り当てたければ、ホストPCには10Gbytesとかそれ以上のメモリを実際に装着する必要があるだろう。ゲストOSの仮想記憶機能を使い、例えば2Gbytesの物理メモリと8Gbytesのページ・ファイルを割り当てるといった方法もあるが、その分、パフォーマンスが低下することは理解しておく必要がある。
CPU構成の変更
次は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コアとかそれ以下にしておくのが望ましい。
仮想マシンのコア数の設定
仮想マシン作成ウィザードはデフォルトでは1コアのみを割り当てているが、それを変更できる。Windows OSのHALの変更の手間やそれによって起こるトラブルなどを考えると、最初にWindows OSをインストールする前にコア数を変更/設定しておくのがよい。
(1)これを選択する。
(2)このタブを選択する。
(3)「アクセラレーション」タブでは、Intel VTやAMD-Vのようなハードウェア仮想化支援機能を利用するかどうか、EPTやRVIのようなSLAT(Second Level Address Translation」。「Windows Server 2008 R2の目玉機能「Hyper-V 2.0テクノロジ」とは」参照)機能を利用するかどうかを設定する(これらの機能が利用できる場合)。可能ならば有効にしておこう。
(4)ゲスト仮想マシンに割り当てるコア数。この例では16にしている。なお2以上に設定する場合は、先のメモリ・サイズの画面にある「IO APICを有効化」の設定をオンしておかなければならない。マルチプロセッサ環境では、APICという機能を使ってプロセッサ間で割り込みの調停などを行っているからだ。
(5)緑色の部分は1から実コア数までを表している。この範囲内にしておくとよい。
(6)赤色の部分は、実コア数から実コア数の2倍までを表している。この範囲内だとパフォーマンスの著しい低下などを招くので、望ましくない。
(7)NXは不正なコードの実行を防ぐ機能。Windows XP SP2で導入されたハードウェアDEP機能を利用するためには、これをオンにする(「ネットワーク管理者のためのWindows XP SP2レビュー―7.データ実行保護機能(DEP)」参照)。通常はオンで構わない。NXはPAE(物理アドレス拡張)機能とセットになっているので、同時にオンになる(TIPS「物理アドレス拡張PAEを強制的に有効にする」参照)。
次の画面は、コア数=8個のホストCPU上で、16コアを有効にした仮想マシンを起動したところである。このように、VirtualBoxでは実コア数を超えた仮想マシンを作成できるが、仮想マシンの起動時にホスト側のCPU利用率が100%近くになる、無負荷状態なのにCPU利用率が30%前後のままになるなど、いくらか問題があるようだ。通常は1〜2コア程度で運用するのがよいだろう。
変更された仮想マシンのコア数
ホストCPUはCore i7-950(4コア+ハイパースレッドで、同時8スレッド実行可能)なので、この場合は最大で16コアまで仮想マシンのコア数を設定できる。
(1)ゲストOSのデスクトップ画面。Windows 7 Ultimateのx64版。
(2)ゲストOS側のタスク・マネージャ。
(3)全部で16コア分ある。何もしていないのに、CPUの使用率がなぜか33%となっている。コア数をもっと少なくすると、正しくほぼ0%になる。
(4)ホストOS側のタスク・マネージャ。ホストOSはWindows 7 Ultimateのx64版。
(5)こちらは8コア分しかない。
Copyright© Digital Advantage Corp. All Rights Reserved.