Xenとは

wikipediaより

Xen は オープンソースの仮想マシンモニタであり、複数のOSを制御するプログラムである。
OSからハードウェアを隠蔽し、複数のOSを、同時に仮想マシンモニタの上で実行することができる。
OSは、仮想マシンモニタから与えられた仮想マシン環境の中で動作する。

pwでは一人一OSの環境を実現するために導入されており、 同時にpwの管理を容易にする狙いもある。

Xenのインストール方法

流れとして以下の手順がある。

  1. まず管理OSを作成
  2. 次にゲストOSを作成

それぞれの詳しい手順は以降の章で説明する。

XenのDomain0の作成

ここでは

  • 既にCentOSがマシンにインストールされ動いている

ことを前提に話を進めていく。

まずカーネルを通常のものから専用のXenカーネルに変えなければならない。xenはオープンソースなので、ソースからコンパイル、インストールということも出来るが、普通に使うのならばyumからパッケージでインストールした方が良い。以下のようにする。

# yum install xen kernel-xen

次に/etc/grub.confのdefault起動の設定を変更する。

default=0

の数字がxen-kernelを指すようにする。これで次回起動時にxenカーネルで立ち上がる。
xenカーネルで起動させるとxmコマンドが使えるようになっている。

起動中のDomainを確認するには以下のようにする。

[root@cls121 xen]# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0      952     2 r-----  51770.0
Fedora10_HVM001                            6      263     1 -b----  35798.9
Fedora10_HVM002                           10      263     1 -b----  38940.6
Fedora10_HVM003                            8      263     1 -b----  36620.1
Fedora10_HVM004                            9      263     1 -b----   2593.1

XenのDomainUの作成

ゲストOSとも呼ばれる、仮想OSを作成する。

  • ゲストOS = DomainU

学生専用OSはこれ。
pwで使われているCPU(Core Duo)はIntel VTをサポートしているので、DomainUの作成はとても簡単。

まず、お手本となる/etc/xen/xmexample.hvmを適当な場所にコピー。

# cp /etc/xen/xmexample.hvm /xen/test.hvm

次にこのhvm設定ファイルを書き換える。変更が必要で重要な箇所を下に記す。

  • memory = 256
    clsは実メモリが1GBしかないので、仮想メモリへの割り当てが苦しい。
  • shadow_memory = 4
    2KB/memory’s MB ぐらい必要と書いてある。ここでは4MB割り当て。
  • name = “fc6-hvm001”
    DomainUの名前。xmで管理するときに使う。
  • vif = [ 'type=ioemu, mac=00:16:3e:00:00:01,bridge=xenbr0']

    NICの設定。macアドレスの規則は

    • stfedora 00:16:3e:00:00:[pw番号を16進数で] となっている。
  • disk = [ ‘file:/xen/fc6-hvm001.img,hda,w’ ,’phy:/dev/cdrom,hdc:cdrom,r’] DomainUをインストールするイメージファイルをハードディスクとして指定および物理CDドライブをCDドライブとして指定。
    CDドライブではなく、isoファイルなどからインストールしたい場合は
    • ‘file:/foo.iso,hdc:cdrom,r’
  • boot=”d” 起動ディスクの選択。cはハードディスク、dはCD
  • vnc=1 DomainUの入出力方法。vncで出力させる。自動で空いているポートを0から使っていく。

ここで、DomainUをインストールするディスクイメージを作成しておく。
20GBの空ディスクイメージの場合、コマンドラインから次のように。

# dd if=/dev/zero of=/xen/fc6-hvm001.img count=20K bs=1M

ちなみに、Linuxだけでなく、windowsをインストールすることも可能。
このポート番号は例であり、実際のpwではNAT設定に応じたポート番号を指定する。
ここでDomainUの画面が表示されたら後は通常のOSインストールと何も変わらない。
ちなみに、Linuxだけでなく、windowsをインストールすることも可能。