仮想化技術の大本命「Xen」を使ってみよう
 〜 インストール & Debian環境構築編 〜

みやもとくにお<wakatono@todo.gr.jp>
2005/3/8

新規ドメインの作成

 ここまでの作業で、Xen+Linuxカーネルという構成でXenを動作させることはできています。しかし、OSを動作させているドメインは、まだブート時に指定した1つだけです。ここでは、新たにドメインを作成してOSを動作させてみましょう。

仮想マシン制御プログラムxendの起動

 xendは、仮想マシンの生成や制御を行うためのプロセスです。xendは、以下のコマンドで起動します。

# /etc/init.d/xend start

 xendの実行にはPythonの実行環境一式が必要です。また、sargeの環境では、xendの実行時に以下のようなワーニングが出力されますが、起動してしまえば動作に支障はありません。

# xend start
/usr/lib/python/xen/xend/server/SrvDaemon.py:27: RuntimeWarning:
 Python C API version mismatch for module xen.lowlevel.xu: This Python
 has API version 1012, module xen.lowlevel.xu has version 1011.
  from xen.lowlevel import xu
/usr/lib/python/xen/xend/server/channel.py:3: RuntimeWarning: Python C
 API version mismatch for module xen.lowlevel.xc: This Python has API
 version 1012, module xen.lowlevel.xc has version 1011.
  import xen.lowlevel.xc; xc = xen.lowlevel.xc.new()

 xendを経由して仮想マシンモニタを制御するユーザーインターフェイスは、xmとxensvの2種類用意されています。xmはコマンドラインプログラム、xensvはWeb経由で仮想マシンモニタを制御するサーバプログラムです。このほかに、xfrdというサーバプログラムがあります。

新ドメイン用環境の作成

 新しいドメイン用の環境を作成する作業は、基本的にOSの新規インストールと同様です。

 「OSをインストールするのは面倒だがXenは試してみたい」という場合は、ttylinuxというイメージファイルを使ってみるとよいでしょう。

ttylinuxの取得と展開

 ttylinuxは、SourceForgeのプロジェクトページ(http://sourceforge.net/projects/xen/)にある「Example Disk Images」パッケージとして取得可能です。サイズは2Mbytesありません。

 イメージはbzip2で圧縮されているので、展開します。

# bzip2 -dc ttylinux-xen.bz2 > /home/xen/ttylinux-xen

仮想マシン設定ファイルの作成

 ひな型は、/etc/xenにあるxmexample1およびxmexample2です。xmexample1の方がシンプルです。

 ここでは、以下の内容を/home/xen/ttylinux.confとして作成してみましょう。

kernel = "/boot/vmlinuz-2.6.10-xenU"
memory = 64
name = "ttylinux"
disk = [ 'file:/home/xen/ttylinux-xen,sda1,w' ]
ip="192.168.0.2"
netmask="255.255.255.0"
gateway="192.168.0.1"
root = "/dev/sda1 ro"
extra = "4"

 それぞれの意味は以下のとおりです。

  kernel
    使用するカーネルの指定。名称末尾に「xen0」が付くカーネルは特権カーネルと呼ばれる。通常、管理作業に使う以外の(機能を提供する)カーネルは、末尾に「xenU」が付くカーネルを用いる。
 
  memory
    割り当てる物理メモリの上限。すべての仮想マシンが使うメモリの合計は、物理メモリの搭載量を超えることはできない。つまり、1Gbytesの物理メモリを搭載したマシンの場合、Xenが使うメモリ量と各仮想マシンが使うメモリ量の合計は1Gbytes以下にしなければならない。
 
  name
    ドメインに付与する名前。仮想マシンの識別用なので、名前の重複は不可。
 
  disk
    Xen上で使用するディスクイメージと名前、読み書きの可否を設定する。ここでは「file:〜」としているが、「phys:/dev/hda4」というように、論理パーティションを指定することも可能。
 
  ip、netmask、gateway
    仮想マシンのネットワーク関係パラメータの指定。
 
  root
    仮想マシンのルートパーティションを指定する。ここで指定するデバイスは、diskで指定したものである。ここではsda1を特定のファイルに割り当てているため、rootデバイスはsda1としている。
 
  extra
    そのほかのカーネルパラメータの指定。

仮想マシンの作成

 /home/xen/ttylinux.confで各種パラメータを指定し、仮想マシン作成の準備が整いました。以下のコマンドを実行すると、仮想マシンが起動する様子が分かります。

# xm create /home/xen/ttylinux.conf -c
Using config file "/home/xen/ttylinux.conf".
Started domain ttylinux, console on port 9605
************ REMOTE CONSOLE: CTRL-] TO QUIT ********
Linux version 2.6.10-xenU (xenod@labyrinth.cl.cam.ac.uk) (gcc version
 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 Fri Feb 4  13:19:22 GMT 2005
BIOS-provided physical RAM map:
 Xen: 0000000000000000 - 0000000004000000 (usable)
64MB LOWMEM available.
DMI not present.
IRQ lockup detection disabled
Built 1 zonelists
Kernel command line:  ip=61.197.226.212:1.2.3.4:61.197.226.209:
255.255.255.248::eth0:off
 root=/dev/sda1 ro 4
Initializing CPU#0
PID hash table entries: 512 (order: 9, 8192 bytes)
Xen reported: 1303.000 MHz processor.
Using tsc for high-res timesource
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 62352k/65536k available (1650k kernel code, 3096k reserved,
 444k data, 108k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor 
mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096
(以下略)

# xm create /home/xen/ttylinux.conf -c

 このコマンドは、「/home/xen/ttylinux.confを設定ファイルとして仮想マシンを作成し、仮想マシンのコンソールにいまのttyを接続する」という意味です。

 なお、[Ctrl]+[]]キー(telnetのエスケープ文字と同じ)で、仮想マシンのコンソールを終了できます。再びコンソールを起動したいときは、

# xm console ttylinux

として、ttylinuxという名前を持った仮想マシンに対するコンソールを開設します。

coLinux/User Mode Linux環境をXenに移行できるか?
 すでにcoLinuxやUser Mode Linuxなどで構築した環境をXenで使ってみたい(移行したい)と考える人がいるかもしれません。

 VMwareやVirtual PCの仮想ディスクファイルはどうにもなりませんが、coLinuxやUser Mode Linuxのディスクイメージは、実はそのままXeno Linuxで使用可能です。その上にインストールされているOSは、通常はi386版であることが多いということもあり、/etc/fstabの書き換えなどちょっとした手間を掛けるだけです。

Debian GNU/Linux(sarge)環境の作成

 Xenの仮想マシンでDebian GNU/Linux(sarge)環境を構築することもできます。方法はXenのUsers' manual(http://www.cl.cam.ac.uk/Research
/SRG/netos/xen/readmes/user/user.html
)の「Installing Xen / XenLinux on Debian」の個所に詳しく記述されています。Users' manualにも書かれているとおり、Debian環境を構築するにはdebootstrap環境が必要です。

 例えば、以下のように/home/xen/debian_imageというイメージファイルを作成し、そこにファイルシステム作成からsargeの環境インストールまでを実施します。

# dd if=/dev/zero of=/home/xen/debian_image bs=1024k count=2048
# mkfs.ext3 /home/xen/debian_image
# apt-get install debootstrap
# mount -o loop /home/xen/debian_image /mnt/disk
# debootstrap --arch i386 sarge /mnt/disk http://ftp.jp.debian.org/debian

 一連の作業が終了したら、ttylinuxの例で示したように、仮想マシンの設定ファイルを作成します。今回はゼロからのシステムイメージ作成になるため、ファイルシステム内のfstabの編集やスワップファイルの定義などが必須になります。

後編も近日公開

後編は今回の内容を踏まえた応用編として、Xenのドメイン自動生成やカスタムカーネルの作成、各種コマンド解説など、Xenを使いこなすための情報を凝縮。

鋭意製作中です。ご期待ください。

3/3

Index
仮想化技術の大本命「Xen」を使ってみよう
 〜 インストール & Debian環境構築編 〜
  Page 1
Xenを取りあえず動かしてみよう
 Xen 2.0の動作に必要なもの
 コラム:業界の注目を集めるXen
  Page 2
Xenのインストール
 インストールスクリプトの実行
 GRUBの設定
 Xenインストール時の注意
 Xenのブートと環境のチェック
  Page 3
新規ドメインの作成
 仮想マシン制御プログラムxendの起動
 新ドメイン用環境の作成
 Debian GNU/Linux(sarge)環境の作成

Linux Square全記事インデックス


 Linux Squareフォーラム 仮想化技術関連記事
連載:実践! Xenで実現するサーバ統合
有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します
特集:サーバの仮想化技術とビジネス展開の可能性
jailからUML/VMwareまで
1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった
特集:仮想化技術のアプローチと実装
VMwareから要注目技術Xenまで

1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう
特集:仮想OS「User Mode Linux」活用法
技術解説からカーネルカスタマイズまで
Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説
特集:仮想化技術の大本命「Xen」を使ってみよう
インストール & Debian環境構築編

高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう
特集:仮想化技術の大本命「Xen」を使ってみよう
Xen対応カスタムカーネル構築編

Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる
特集:IPv6、UML、セキュリティ機能の統合
全貌を現したLinuxカーネル2.6[第4章]

今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう
Linux Squareプロダクトレビュー VMware Workstation 4
PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう
古くて新しい「サーバ仮想化技術」の行方
サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する
Linux Squareフォーラム全記事インデックス


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間