Xenインストール

さっそくLVSを試して見ようと思ってるんですが、どーせなら今まで触ったことのないXenを使って仮想ホストの上でやってみようかと思って触ってみました。ついでなのでインストール手順のメモ。ちなみに昨日、飲み過ぎて軽く二日酔い (゚∀゚)アヒャ 。酒とインターネットがあれば良いとかいうと退廃的で良いですね。酒はそんなに好きじゃないですが、血筋のせいか結構飲めたり。

xenインストール

# echo alias scsi_hostadapter xenblk >>/etc/modprobe.conf 

# vi /etc/sysconfig/kernel
DEFAULTKERNEL=kernel-xen

# yum -y install xen kernel-xen

ドメインUにCentOS 5.2インストール

# virt-install -n lvs -r 256 -f /opt/xen/lvs/lvs.img -s 8 --nographics -l http://mirror.centos.org/centos/5.2/os/i386
完全仮想化のゲストがいいですか (yes または no)? これは修正不要のオペレーティングシステムの実行を可能にします。 yes
 

インストールを開始しています...
ファイル .treeinfo ? 100% |=========================|  413 B    00:00     
ファイル boot.iso を 100% |=========================|  721 B    00:00     
ドメインを作成中...                                        0 B 00:00 
ドメインに使用できるコンソールがありません

ドメインのインストールは続いています。インストール処理を完結
させるためにコンソールに再接続することができます。

失敗。ssh越しで操作してるからドメインUのシリアルを取れないとダメなのかな?xenconsoledを使えばいいみたい

# xenconsoled 
# xm console lvs

xenconsole: Could not read tty from store: No such file or directory

つなげん...。再接続できるっていってたのに。インストールしなおしてみるか。ゲストOSを削除するのはこんな感じ

# xm destroy lvs

# /etc/init.d/xend stop
xend を停止中:                                             [  OK  ]

# rm /opt/xen/lvs/lvs.img 
rm: remove 通常ファイル `/opt/xen/lvs/lvs.img'? y

# rm /etc/xen/lvs 
rm: remove 通常ファイル `/etc/xen/lvs'? y

インストールしなおし

# /etc/init.d/xend start
xend を起動中:                                             [  OK  ]

# virt-install -n lvs -r 256 -f /opt/xen/lvs/lvs.img -s 8 --nographics -l http://mirror.centos.org/centos/5.2/os/i386
完全仮想化のゲストがいいですか (yes または no)? これは修正不要のオペレーティングシステムの実行を可能にします。 yes
 
インストールを開始しています...
ファイル .treeinfo ? 100% |=========================|  413 B    00:00     
ファイル boot.iso を 100% |=========================|  721 B    00:00     
ドメインを作成中...                                        0 B 00:00 
ドメインに使用できるコンソールがありません

ドメインのインストールは続いています。インストール処理を完結
させるためにコンソールに再接続することができます。

一緒だなぁ。完全仮想化じゃなく準仮想化ならエラーがでないらしいんですが、LVS使うなら完全の方がよさそうです。virt-installを使わず手でインストール手順(http://www.thinkit.co.jp/free/tech/26/4/1.html)をみるとイメージファイルを作ってループバックマウントしてキャラクタデバイスを手で作ってるのでこの辺の何かがキチンと作られてないのかなぁ。virt-installでやってないってことはない気がしますが、折角だし手間のかかる方の手順で一回やってみようかな。しかし、デバイスまわりに近づくと知識が薄いから勘所がなくなる。そろそろ真面目にC勉強して色々作ってみないとダメかなー。カーネルソースも読んでみたいとこだけど、なんかちょっと作ってみるのに良いものないもんですかね。
この分だと、LVSにたどり着くまで少し時間がかかりそうだけど、Xenも面白そうだしいいか。これで仮想で有名どこかと思われるVMWare Server, OpenVZ, Xen全部なんとなく触れるようになりそうだし。

追記

よくよくxm console lvsした時のエラーをみると

Could not read tty from store

って言われてますね。やっぱイメージファイルに/dev/ttyXがないからかな。試しにvirt-installで出来たイメージファイルをマウントしてみようと思ったけど、

# mount -o loop /opt/xen/lvs/lvs.img /mnt
mount: ファイルシステムタイプを指定する必要があります

# mount -t ext3 -o loop /opt/xen/lvs/lvs.img /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop2,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

そもそもファイルシステムすらできてなさげ。やっぱ手でやってみるのがよさそうですね。

追追記

ttyで怒られるのはイメージファイル側じゃなくてsshでつないでてディスプレイつないでみてないからかな?やっぱもっとOSの深い部分勉強しなきゃ...。