CentOS 5 に xen を入れてみたら、うっかりハマった
今時のOSなら yum で xen とか一発で入るから楽勝とかおもってたけどハードの問題でうっかりハマることになったので、そのへんをまとめます。
まずやっておきたいこと
CPUが xen に対応しているかどうかチェックする、以下のような表示の場合は対応してる
# grep pae /proc/cpuinfo flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
完全仮想化に対応しているかチェックする、以下のようになにも表示されなければ対応してない
# egrep -e 'vmx|svm' /proc/cpuinfo
BIOSで有効になっているかチェックする、以下のような表示の場合は対応してない
# cat /sys/hypervisor/properties/capabilities xen-3.0-x86_32p
今回 xen の環境を作る上で完全仮想化に対応していなくて domain-U を作成するときにオプションが必要だった。
xen のインストール
xen 対応のカーネルのインストールと xen のインストールをする
# yum install kernel-xen xen
# vi /etc/grub.conf default=0 の部分をxen 対応のカーネルに指定、おそらく1になってるのを0にすればいいはず kernel /xen.gz-2.6.18-164.6.1.el5 dom0_mem=380000 xen 対応カーネル部分のkernel行に dom0_mem= を追加して domain-0 に割り当てるメモリを指定する
再起動後、xenが動いているか確認する。
# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 372 1 r----- 415.7
domin-U の作成をする。promptはコンソールからインストールする場合でparavirtは準仮想化でインストールする。
# virt-install --prompt --paravirt What is the name of your virtual machine? centos How much RAM should be allocated (in megabytes)? 256 What would you like to use as the disk (file path)? /var/lib/xen/images/centos.img How large would you like the disk (/var/lib/xen/images/centos.img) to be (in gigabytes)? 8 What is the install URL? http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/
または、コマンドラインで指定してやると対話する必要なくて楽だったりする
# virt-install --prompt --paravirt --name=centos --ram=256 --file=/var/lib/xen/images/centos.img --file-size=8 --location=http://ftp.iij.ad.jp/pub/linux/centos/5/os/i386/
読み込み終わったらコンソールに戻るので domain-U にコンソールを移動してインストール作業をする
# xm console centos
インストールが終わって再起動をしたら、またコンソールに戻るので domain-U を立ち上げる。(これは上手く再起動がかからなかったから必要なのかなー?)
# xm create /etc/xen/centos
domain-U が立ち上がってるのを確認する。
# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 372 1 r----- 418.6 centos 4 255 1 -b---- 69.9
ということで domain-U ができた。 --paravirt が必要なことを知るのに時間を費やしてしまった。。。
また domain-U の削除をする場合は
# xm shutdown centos # rm -rf /var/lib/xen/images/centos.img # rm -rf /etc/xen/centos
とまぁ、直接消す感じでいいと思う