debian etch xen ゲストOSをインストール | 雲の上はいつも青空

雲の上はいつも青空

不思議な経歴をもつエンジニア!?の徒然なブログです。
お仕事関係の話が多いと思いますが、コメントとかもらえると中の人はとても喜びます(^O^)/

ここではホストOSと同じDebianをゲストOSとしてインストールする手順を書きます。

基本的にはxen-toolsに含まれている支援ツールで総てのインストールが完了します。まずは、以下の設定ファイルを変更しましょう。

# /etc/xen-tools/xen-tools.conf

dir = /home/xen
debootstrap = 1

size = 50Gb # Disk image size.
memory = 512Mb # Memory size
swap = 1Gb # Swap size
fs = reiserfs # use the reiserFS filesystem for the disk image.
dist = etch # Default distribution to install.
image = sparse # Specify sparse vs. full disk images.

gateway = 192.168.64.254
netmask = 255.255.255.0

kernel = /boot/vmlinuz-2.6.18-6-xen-686
initrd = /boot/initrd.img-2.6.18-6-xen-686

mirror = http://cdn.debian.or.jp/debian/

おおよそコメントを見ればどこを設定すればいいかわかりますが、該当のホスト機で一番初めのゲストOSをインストールする時には、mkdir /home/xen で、ディレクトリーを作っておく必要があります。

当然のことながらネットワークインストールを行うので、ゲスト機に振るIPアドレスからインターネットへいけるようになっている必要があります(FWのアウトバウンドで制限をかけている場合に注意)。

次に上記設定ファイルにあるように、kernelのイメージはxen専用のイメージじゃないとインストールできません。ホスト機のインストールという前のトピックにしたがってインストールしてあれば、/bootにvmlinuz-2.6.18-?-xen-686(?はたぶん変わる筈)というイメージファイルがあるはずなので、それを記載して下さい。
当然、ホストOSのkernelがアップグレードされた=バージョンアップされてファイル名が変わったときには、この設定も変更することを忘れないように…(自動で変化はしない)

ただし、この設定が有効になるのは新規にゲストOSを作成するときだけなので、この設定を変更したとしても、すでに稼動しているゲストOSには何の影響も与えないので注意してください。


--------
以上の設定ファイルの変更が終われば、新しいゲストOSの作成を行うことが出来ます。
# xen-create-image --hostname rickdom --ip 192.168.64.55
ホスト名  rickdom
IPアドレス 192.168.64.55
設定が正しくて、インターネットへの接続が問題なければ数分すると新しいrickdomというホストが作成されます。
※インストールにはしばらく(5~6分)かかります。

General Infomation
--------------------
Hostname : rickdom
Distribution : etch
Fileystem Type : reiserfs

Size Information
----------------
Image size : 50Gb
Swap size : 1Gb
Image type : sparse
Memory size : 512Mb
Kernel path : /boot/vmlinuz-2.6.18-6-xen-686
Initrd path : /boot/initrd.img-2.6.18-6-xen-686

Networking Information
----------------------
IP Address 1 : 192.168.64.55
Netmask : 255.255.255.0
Gateway : 192.168.64.254

Creating swap image: /home/xen/domains/rickdom/swap.img
Done

Creating disk image: /home/xen/domains/rickdom/disk.img
Done

--- 途中略 ---

No role script specified. Skipping

Creating Xen configuration file
Done
All done

このように最後に All done と表示されれば正常終了です。
上記作業中に^cで作業を中止しないようにしてください。
いくつかタスクが残ってしまい、再インストールができなくなります。たぶん、killでいくつか該当タスクを止めればOKだと思うのですが、そこはまだ調べていません。ホスト機を再起動すれば再インストール可能になりますが、ゲストOSも総て再起動となりますので、実行には注意してください。
※また、途中で終わらせた後の再インストールの場合、/home/xen以下に中途半端なイメージファイルが出来ているので、そのままではインストールが出来ないとエラーがでます。xen-create-image コマンドに追加で --force を指定すると、上書きして新しいイメージを作成します。

--------
新しいゲストOSのイメージが出来上がれば、
# xm create /etc/xen/rickdom.cfg
このコマンドで、新しい仮想サーバが起動します。
sshdはデフォルトでインストールされているので、直接新しい仮想サーバへログインしてもいいですし、
# xm console rickdom
とコマンドを叩くと、ホスト機から直接仮想サーバのコンソールへ接続が出来ます。
※もとのホスト機のコンソールへ戻るには^]を入力する。
※xm consoleで接続した場合、仮想コンソールにバグがあるらしく、teraterm等でホスト機に接続していると、画面のコントロールがおかしくなります。その場合は、^]で仮想サーバのコンソールからホスト機のコンソールへ戻ったあとで、terminalソフトをリセットしてください(teratermの場合には、コントロール→端末リセット)。 ただし、ホスト機にVGA装置(液晶とか)とキーボードを接続し、物理コンソールから操作しているとおかしくはなりません。


※2009/02/15 新しいlennyがリリースされました。
この関係で、以下の操作をする前に /etc/apt/sorce.lst を必ず確認してください。
deb http://security.debian.org/ stable/updates main になっているとダメです。
すぐに変更して、
deb http://security.debian.org/ etch/updates main に直してください


稼動を始めた新しい仮想サーバには、必要最低限の設定しかされていません。いろんなアプリケーションをインストールする前に、以下のパッケージを先行してインストールしておいてください。

less host telnet mailx dns-browse vim

また、タイムゾーンの設定がおかしいようで、syslog等が生成するlogファイルの時間がJSTになっていません。

tzconfig

dateコマンドで見るとちゃんとlocalなタイムゾーンが設定されているように見えますが、どこか設定が抜けているようでこのタイムゾーンの設定(Asia → Tokyo)を行って、syslogdを再起動するとlogのタイムスタンプが正常な状態へ復帰します。

--------
最後に仮想化環境における時刻について書いておきます。

デフォルトの設定では、ドメインUの時刻はドメイン0に同期しているので、ドメインUでntpdを動かす必要はありません。
しかし、ドメインUでntpサーバを動かしたい場合には、このままの設定でntpdを起動させるといつまでたっても上位のntpサーバに時刻が同期しないという不思議な現象が起きます。

このような現象を回避するには、ドメイン0とドメインUで独立に時刻を管理する必要があるため、カーネルのパラメータを変更する必要があります。
xen.independent_wallclock = 1
を、/etc/sysctl.conf に記載する必要があります。
※この場合は、再起動しないと有効になりません。

すでに起動している状況で、このパラメータを変更するには

# sysctl xen.independent_wallclock=1

このコマンドを投入してください。
この設定はドメイン0とドメインU両方で設定が必要です。


■次回は、仮想サーバの運用について書いてみます。