前回はコンピュータの動く仕組みから仮想化ソフトの必要性,主な仮想化手法,Xenの概要までを紹介しました。今回は,Xenの仕組みの復習とXen上のゲストOSが動作するまでの導入手順の紹介です。SUSE Linux Enterprise Server 10でXenを使えるようにしてみます。

 最初に,前回紹介したXenの仕組みについて簡単に振り返ってみましょう(図1)。

図1●Xenを用いた仮想化の仕組み
図1●Xenを用いた仮想化の仕組み

 まず物理的なハードウエア(コンピュータ)があり,その上に仮想化のためのソフトウエアの階層(レイヤー)として,仮想マシン・モニターがかぶさっています。その仮想マシン・モニターの上でいくつかの仮想マシンが動作します。この仮想マシンを利用して,ゲストOSが動作します。

 仮想マシンは「ドメイン」と呼ぶ単位で管理されており,1個のドメインの中ではゲストOSが一つだけ動作します。

 ドメインは大きく分けて2種類あります。一つは図1中で濃く描かれている「ドメイン0」,もう一つが薄く描かれている「ドメインU」です。ドメイン0は他のドメインを管理する特権を持っています。ある種の仮想化ソフト,例えばVMware Workstationなどは,通常通りにインストールされたOS(ホストOS)上で動作し,そのさらに上でゲストOSが動きます。Xenのドメイン0はこのホストOSと似た役割を果たします。

 まとめると,ドメインUはいわゆるゲストOSで,一つしかないドメイン0以外のドメインはすべてドメインUとなります。

準仮想化と完全仮想化

 Xenでは2種類の仮想化手法が使えます。

 一つは準仮想化(パラ・バーチャライゼーション)です。Xenの上で問題なく動作するよう,あらかじめ修正されたゲストOSだけが動作します。なので,通常のOSはゲストOSとしては使えません。

 もう一つは完全仮想化(フル・バーチャライゼーション)です。通常のOSに修正を加えなくても,そのままゲストOSとして使える手法です。Windowsのように米Microsoft社以外が修正できないOSなどでもXen上で動作します。ただし,完全仮想化の前提として,仮想化のための処理機能(Intel VTやAMD-V)を備えたCPUが必要になります*1。Intel VTやAMD-Vの機能を使って完全仮想化されたドメインは,他のドメインと区別するために「HVMドメイン」と呼ばれます。

OSが起動する手順

 Xenの上で動作するドメインUにゲストOSをインストールする手順は,まっさらなマシンにLinuxなどのOSをインストールする手順と似ています。そこで,Xenのインストール方法を説明する前に,通常のマシン上でOSが起動する仕組みを簡単におさらいしておきましょう。

 コンピュータの電源を入れると最初にBIOS(Basic Input Output System)と呼ばれるソフトウエアがROMから読み出されて実行されます。BIOSはディスク装置やキーボード,グラフィックス・ボートなどハードウエアの状態をまずチェックします。

 その後,ブート・ローダー*2と呼ばれるプログラムを読み出します。ブート・ローダーはOSをディスク装置から起動するソフトウエアです。

 OSは極端に言えばプログラムや設定ファイルといったデータの集まりですので,たとえハード・ディスクが1台しかない場合でも,そのハード・ディスクを領域分割(パーティション作成)して各領域に別々のOSをインストールできます。そしてブート・ローダーによって,どのOSが起動するかを選択できるように設定しておけば,1台のハード・ディスクから異なるOSを起動させること(デュアル・ブート)も可能です。ただし,この場合,同時に起動できるOSは1つだけです。