「はじめてのXen」をopenSUSE10.2とXen3.0.3で実践するには

Xenはバージョン2.0と3.0では大きな変化がありました(そりゃそうですネ)が、「SUSE10.1とXen3.0.2」との違いは、本書で紹介している機能や操作方法に関してはあまり大きな変化はなく、「安定か不安定か、バグがあるかないか、相性がいいか悪いか」という問題です。しかしこの問題は仮想マシンが動くか動かないかという問題ですから深刻です。どうしても本書の方法で行かない場合は、SUSE特有の便利ツールの力を借りなければならないでしょう。ここではそのような「トラブル回避例」を御紹介します。

SUSEの追加ドメイン構築


本書の第3章のクライマックスとも言える「仮想のSUSEを構築」ですが、実は本書73ページにあるYaSTの「Installation into Directory for XEN(ディレクトリへのインストール)」モジュールを用いたルートファイルシステムの構築が問題です。これはSUSE10.1ではちゃんと動いてくれたのですが、10.2では不可解な挙動を示し、うまく動きません。(アップデートで改善を期待)。

これが10.2ではうまく動かない

ところが、逆に、YaST「仮想マシン管理(Xen)」は10.1の「仮想マシンマネージャ」)に比べてだいぶエラーが少なくなり、実際に使えるようになりました。これは便利すぎて勉強になりにくいのですが、仮想SUSEを作れないことにはしょうがないので、これを使いましょう

逆にこれが10.2ではかなり良くなった

なお、今後表示する図の中には実はopenSUSE10.2ではなく,SUSE Linux Enterprise 10 Server(SLES10)での実践例が多く含まれますが、もちろんopenSUSE10.2でも動作確認がとれています。同じような図を複数、Webサイトに置くのもナニだなと思ってのことです。


上の「仮想マシン管理(Xen)」をクリックします。 すると、いきなり空白のリストが現れます。これは仮想マシンのリストですが、まだ作っていないので空白なのです。
リストの下に「追加」というボタンがありますので、クリックします。


空白の仮想マシンリストで「追加」をクリック


まず、仮想マシンの構築方法を尋ねられます。ここでは「OSインストールプログラムを実行する」を選びます。まず、図を見てから、これがどういう意味か解説しましょう。


「OSインストールプログラムを実行する」を選ぶ

本書では、「ディレクトリへのインストール」を用いて、インストールDVDからイメージファイル(をマウントしたディレクトリ)へ「インストール」を行いました。これはただのDVDデータのコピーではなく、通常「インストーラ」を用いてハードディスクへインストールするのと同じ意味での「インストール」です。これでできるのが「ディスクイメージ」つまり下の選択肢になるわけです。
(実はYaSTで「ディスクイメージ」を用いて仮想マシンを構築する方法には、簡便化を目的としたSUSE独自の修正があり、本書の方法と少し違います。おまけにまだうまく動きません)


その「ディスクイメージ」を用意する方法ができないので、上の「インストールプログラム」を実行するのです。これこそは本当に「インストーラを用いてイメージファイル内にインストールする」という、驚くべき方法です。

次に進むと、仮想マシンの構築を一括設定する画面になります。


仮想マシンの構築を一括設定


この画面では、本書で一生懸命手作業を行っている二つのことをいっぺんに設定します。「イメージファイルの作成」と、起動設定ファイルの記述です。

ファイルの作成:一括設定の画面で、「ディスク」の欄を見てください。「4096メガバイトのイメージの作成」と書いてありますね。


イメージの「作成」と書いてある


本書で「dd if=/dev/zero...」とコマンドを打って作っているイメージファイルを自動で作ってくれるというのです。

起動設定ファイルの記述:一括設定の画面で、「VMプロパティ」「ハードウェア」「ディスク」「ネットワーク」「オペレーティングシステムのインストール」などは、みな本書に示した「xmsuse」のような起動設定ファイルに自動作成され、そこに書き込まれるものです。

この起動設定ファイルも、上述のとおりSUSE独自の修正が加えられています。でもこっちは動きます。動かない件とのどこに違いがあるのかまだ筆者にもつきとめられていません。
さて、この一括設定は、最低限デフォルトでオッケーです。修正するとすれば

「VMプロパティ」の仮想マシン名:「vm1」では味気ないので好きな名前にする。
「ハードウェア」のメモリサイズ:余裕があるなら増やしても良い
「ディスク」:イメージファイルの容量を4096MBからもっと増やしても良い

程度です。

さて、「インストールプログラム」はどこから呼んで来るのでしょうか。以下の二つの場合をお薦めします。

[1]インストールディスクからインストールする場合 まず、「インストールDVDのインストールプログラム」を使う場合です。これがデフォルトです。
一括設定画面で「オペレーティングシステムのインストール」の欄を確認してください。「インストールデバイス:CD/DVDデバイス」となっていますか。


イメージの「作成」と書いてある


これを確認したら、まず、何はなくともドライブにインストールディスクを入れます。
それから、一括設定画面で「次へ」ボタンをクリックします。 画面が切り替わって、「仮想マシンの作成」をしているという状態が表示されます。


25%くらいで結構待つ

ひとつ注意すべきは、上の図で言及している「仮想マシン」というのは、まだSUSEをインストールする前の、カーネル(Xen用に修正した)の起動のことです。「パッケージのインストール」とは何のパッケージのことなのか筆者にも実はわかりませんが、とにかくKDEだFirefoxだOpenofficeだというSUSEのアプリケーション群でないことは確かです。「ヤッホーこんなに早く終わるのね」などとぬか喜びしないようにしましょう。
上の図は「仮想マシン環境を準備します」というところでしばらく進行が止まっている様子です。エラーが出る場合はこの辺で出ますので、一番ドキドキするところです。しかし成功すると、一気に75%くらいに進んで、小さなウィンドウが立ち上がります。


画面の右上隅に小さなコンソールが

このコンソールは、やがてコンソール(テキスト)版「YaST」の青い画面になるでしょう。


画面の右上隅に小さなコンソールが

上の図では、インストーラの言語として何を用いるかを尋ねています。「Japanese」を選べば日本語のインストーラで日本語の環境にあわせたインストール設定が自動で行われます。ただ画面が多少乱れて「フファァイイアアウウォォーールル」などと表示されたり前の画面の残骸が残ったりしますので、あらゆるエラーの可能性を回避したい場合は「English」のまま行くのもよいでしょう。
このあとは、通常の「コンソール版YaST」による「通常のインストール」と変わりません。これも、デフォルトのまま「次へ」「次へ」と進んで行って問題ないでしょう。

[2]ネットワークインストールの場合 インストールディスクから仮想マシンにSUSEをインストールするためには、仮想マシンがディスクドライブを認識する必要があります。しかし、これがダメなときがあります。
そんなときにもまだ方法があります。いえ、きっとよりよい方法と思われます。それはFTPサーバからのネットワークインストールです。FTPサーバがサポートされているお手持ちのNASでもよいですし、今使っているopenSUSE自身にFTPなどのファイル転送サーバを立てることもできます。
自身にFTPを立てる方法の一例を、別ページに記しました。

仮想マシンの一括設定画面で「オペレーションシステムのインストール」という文字をクリックします。 インストール方法を選択する画面になりますので、「ネットワークインストール」を選びます。


「CD/DVD」ではなく「ネットワーク」に

次にインストール元を指定るす画面になりますので、「インストール元のカスタム指定として、URLを手入力します。

ひとつ注意があります。ネットワークインストールの場合、仮想マシンは多くのメモリを必要とするらしく、デフォルトのメモリの設定が256MBだと、起動したときに「メモリが足りない」という警告が出ます。無視して続行もできますが、なるべくならメモリを増やして、安定な状態でインストールを行いたいものです。

あとは、インストールディスクからインストールする場合と同じです。小さなコンソールで「ダウンロード」<「インストール」が行われる様子はなかなか感動的です。


ダウンロードとインストールが行われる

インストール、すなわちファイルのコピーが終わると、仮想マシンの小さなコンソールウィンドウは自動で閉じます。
一方、YaSTの仮想マシン管理画面では「仮想マシンの設定を完了する必要があります」というメッセージが表示されます。これは、要は「仮想マシンを再起動してください」ということです。
「続行」をクリックすると、「仮想マシンの最終設定」画面が現れます。これは、一括設定画面の確認です(メモリなどの値をここで変えることもできます)ので、「次へ」をクリックします。

再び小さなコンソールが現れ、起動メッセージが流れたあと、コンソール版YaSTになります。ここでようやく本書の80ページ、「コンソール版YaSTによる初期設定」に戻ることができます。



openSUSE10.2のXenで、Fedora6を動かす


本書で紹介した「Xen2.0,SUSE9.3, Fedora4」の組合せでは、という理由から、Xen2.0の汎用バイナリをXenのダウンロードサイトからもらってきてFedoraに適用しました。

次に、「Xen3.0.2, SUSE10.1, Fedora5」の組み合わせは非常に相性が良く、Fedora5にインストールしたXen用カーネルをSUSE のXenでも利用できました。

さて、「Xen3.0.3、SUSE10.2, Fedora6」の組合せはどうかというと...Fedora6のXen用カーネルは、残念ながらSUSEのXenとは合わないようです。ところが、SUSE10.2のXen専用カーネルで、Fedora6をどうにかこうにか、動かすことができました。

「うそだぁ」と言われるといけないので、証拠写真をお見せしましょう。


撮ってしまえばこっちのものだッ

このときの起動ファイル「xmfedora」は以下のとおりです。なお、Fedora6はパーティション「/dev/sda2」にインストールしてあります。
kernel = "/boot/vmlinuz-xen"
ramdisk = "/boot/initrd-xen"
name = "fedora"
memory = 512
vif = [ '' ]
disk = ['phy:sda2,sda2,w' ]
root = "/dev/sda2 ro"
extra = "5"

ただ、これも、今後のFedora及びSUSEのアップデート状況によって、うまく行かなくなったりまたうまく行くようになったりするでしょう。あるいはFedoraのXen用カーネルがまた使えるようになるかも知れません。本当は自分でXenをソースから修正・ビルドして確実にSUSEでFedoraが動くような環境を作れれば素晴らしいのでしょうが、あいにく著者も到底その域には及びません。ダメモトでいろいろな可能性を試して見ましょう。また新しい動向があったらそのつど紹介したいと思います。