仮想化技術の大本命「Xen」を使ってみよう
 〜 Xen対応カスタムカーネル構築編 〜

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

xmコマンドとxensv

 Xenには、仮想マシンの管理用にxmコマンドとxensvが用意されています。

 xmコマンドは、Xen上で動作する仮想マシンの管理に必要なコマンドであり、xendが動作している環境で機能します。xensvは、Xenやその上で動作する仮想マシンをWebブラウザで管理するためのプログラムであり、これもxendが動作している環境で機能します。

画面2 xensvを使ったWebブラウザによる管理画面(画像をクリックすると拡大表示します)

 ここでは、よく使うxmコマンドを紹介します。

xm list

 xm listは、動作している仮想マシンの一覧を得るコマンドです。

# xm list
Name              Id  Mem(MB)  CPU  State  Time(s)  Console
Domain-0           0      251    0  r----    824.3
FedoraDomain       2       63    0  -b---      5.4    9602
ttylinux           5       63    0  -b---      1.0    9605
xm list実行例

xm create

 xm createは、指定された仮想マシン定義ファイルの内容に従ってドメインを作成します。定義ファイル中で指定するドメイン名は、同じマシン上に作成される仮想マシン間で重複してはいけません。

# xm create vm0.conf
Using config file "vm0.conf".
Started domain DebianDomain, console on port 9607
xm create実行例

xm console

 xm consoleは、すでに走行しているドメインのコンソールを使うためのコマンドです。コンソールを指定するためのパラメータとして、VMID、ドメイン名、コンソール番号(ポート番号)のいずれかを指定します。ドメイン名を使うのが普遍的でお勧めです。

# xm console DebianDomain
************ REMOTE CONSOLE: CTRL-] TO QUIT ********

Debian GNU/Linux 3.0 colinux tty1

colinux login:
xm console実行例

xm save

 xm saveは、走行している仮想マシンのコンテキストを保存するコマンドです。

 パラメータとして、

  • 保存するドメイン名(例ではDebianDomain)
  • 保存先のファイル名(例ではD-D.sav)

を指定します。

 なお、このコマンドを使うには、xfrd()というプログラムが稼働している必要があります。

# xm save DebianDomain D-D.sav
# ls -l D-D.sav
-rw-r--r-- 1 root root 67153300 2005-02-24 02:50 D-D.sav
xm save実行例

# xm save ttylinux tty.sav
Error: Error: [Failure instance: Traceback: twisted.internet.error.ConnectionRefusedError, Connection was refused by other side: 111: Connection refused.
xfrdが動作しておらず、処理が失敗した例

注:xfrdは、仮想マシンの状態を保存/復元するために必要なプログラムです。ただし、本稿で紹介したバイナリパッケージに入っているxfrdは、ライブラリの依存関係で不具合が生じる可能性があります。これが原因でxfrdが機能しない場合は、各自の環境でソースコードからxfrdをコンパイルすると使えるようになるかもしれません。

xm restore

 xm restoreは、xm saveの結果取得されるファイルを指定することで、仮想マシンを復旧します()。

注:なお、このコマンドを使うには、xm saveで説明したxfrdが稼働している必要があります。

# xm restore D-D.sav
(復旧情報出力)
xm restore実行例

# xm restore D-D.sav
Error: Connection was refused by other side: 111: Connection refused.
xfrdが動作しておらず、処理が失敗した例

コラム Xen運用時の注意
 Xenにも欠点があります。例えば、

起動時に指定した(特権)OS上にアカウントを持っているユーザーであれば、誰でも仮想マシンの作成を含む制御が可能である

というものがあります。つまり、特権OSの管理を誤ると、その上で動作する仮想マシンすべてを危険にさらすことになります。

 汎用ハードウェアを使って、サーバ環境をドメイン内に割り当てて使うだけであれば、極めて単純な管理作業で実現可能です。しかし、コラムで述べたとおり、一般ユーザーでも仮想マシンに対して危険な操作を行える権限を手にする危険性があります。

 不正侵入対策も含め、特権OSの管理はきちんと実施する必要があります。この点さえ気を付ければ、Xenは今後より応用が利くものになるのではないでしょうか。

参考URL
 Xen公式サイト:http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
 Xen Projectのページ(SourceForge):http://sourceforge.net/projects/xen/


3/3

Index
仮想化技術の大本命「Xen」を使ってみよう
 〜 Xen対応カスタムカーネル構築編 〜
  Page 1
ドメインの自動生成
 仮想マシン定義ファイルの保存
 スタートアップスクリプトと停止スクリプトの設定
Xen対応カーネル作成の基本
 用意するもの
 簡単なXen対応カーネル作成方法
  Page 2
Xen対応カーネルの手動作成
 カーネル2.4のコンパイル
 カーネル2.6のコンパイル
Xen対応カスタムカーネルの作成
 FreeS/WAN 2.06の入手と展開
 FreeS/WANのパッチを適用したカーネルの設定
  Page 3
xmコマンドとxensv
 xm list
 xm create
 xm console
 xm save
 xm restore

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 記事ランキング

本日 月間