Xenが使用するNICを変更する

気が付いたらXenでテスト環境を構築することになってました。

あたりを参考にしながら手探りでやってます。

実機はNICが2枚ささってて、eth0をグローバル、eth1をローカルに使用。eth1->eth0にIPマスカレード設定して、LAN内の他のマシンが外に出る時にここを通る想定。
サーバは1台なので、LAN内っても全部XenのゲストOSになるから、XenのネットワークをNATで構築してしまえばそれで済むんだけど、後でゲストにグローバルIPを持たせる可能性もある。そこで、ネットワークはブリッジにして、ゲストOSにローカルIPを持たせて、実機のeth1と接続という形で行くことに決定。

普通にXenの環境を作るとeth0を使って仮想ネットワークを構築してくれるんだけど、eth0はグローバルで使ってるので、これだとよろしくないわけです。で、ifcfg-eth0とifcfg-eth1の設定を入れ替えて、eth0をローカル、eth1をグローバルにしてゲストOSのインストール。

Starting install...
libvir: Xen Daemon error : POST operation failed: (xend.err 'destroyDevice() takes exactly 3 arguments (2 given)')

なんすか、これ。いじめですか。

CentOSのバグトラックに上がってたのを発見したけど、今のところ解決していない模様。ってことは、もう少し待ってCentOS5.1が出てもダメか。
後からネットワークの設定を変えたのがまずかったのかな。Xenのネットワーク環境を再構築してやればいけるのかも。

…なんて面倒なことはしたくないと思ったら、Xenの仮想ネットワークにeth1を使う方法を見付けました。
/etc/xen/xend-config.sxpの

(network-script network-bridge)

となってるところを

(network-script 'network-bridge netdev=eth1')

に変更してやればOK。ネタ元は「Xen を使った仮想マシン環境(FC4)」。上で挙げた参考サイトの別ページでしたね。
設定ファイルを変更したらサーバ再起動して、再びゲストOSのインストールに挑戦。

sudo virt-install --name=lvs01 --uuid=`uuidgen` --ram=256 --vcpus=1 --file=/var/lib/xen/images/lvs01 --nographics --paravirt --location=http://192.168.10.1/iso --extra-args='ks=http://192.168.10.1/xen-ks.cfg'

みたいにしてインストール開始。virt-installのパラメータはちゃんと調べてないけど、これでXenのゲストOSをkickstartインストールできました(ラボブログ後編ももう少しでアップするよ)。
Xenそのものはまだこれからだけど、よさそうなら自宅のml115もメモリ増設してXenで運用しちゃってもいいな。