KVMはじめた。
スイッチの方じゃなくて、VM動かす方のKVM(Kernel Based Machine)を最近、常用しはじめた。
インストール
ホストになっているPCのスペック
という感じ。まな板(DC-ACPCD/R)で組んで、むき出しで足下にとりあえず放置。
ホストのOSは、使い慣れたGentooを入れる。
CD-ROMドライブとかついとらんので、このへんのドキュメントでかかれているようなUSBメモリとかでブートして入れる。Ubuntuとか、KNOPPIXで起動してインストールもGentooは簡単なのが好き。
んで、カーネルはとりあえず新しいのをもってきます。RCまではがんばりましょう。今だと、2.6.27-rc8。
- KVM関連を有効にする
- TIMER関係は、virtioの性能向上のために、高精度、高頻度にしとくのが吉らしい
くらいで。
で、KVM-80がリリースされているので、それをKVM本家から持ってくる。
でも、KVMのBlogとかにもかいてるけど、virtio_netがこのリリースではうまく動かんので、ちょっとだけパッチ当てる。
パッチは、ここを参照。
offsetを0で初期化するの忘れてたーってやつらしい。
ゲストのインストール - Gentoo
とりあえず、クロスコンパイルとかやる作業用ゲストを一個作る。
手順は、:
という感じ。
起動時のオプションは、Gentooのインストールイメージとかだとkernelがそんなに新しくなくて、virtio関連のドライバが入ってないので、とりあえず、ディスクはide,ネットは、e1000で起動する。以下みたいな感じ。
~/kvm/bin/qemu-system-x86_64 \ -m 2048m -monitor stdio -curses -vnc :1 \ -vga std \ -soundhw ac97 \ -localtime -k ja \ -net nic,vlan=0,model=e1000,macaddr=52:54:00:12:34:51 \ -net tap,vlan=0,ifname=qtap1,script=no \ -drive file=hdd_image/gentoo.img,if=ide,boot=on -cdrom install_image/install-x86-minimal-2008.0.iso -boot d
あ、ちなみに、ネットワーク設定は、ブリッジbr0をつくって、eth0,qtap1がaddifされていることが前提です。
これ以降は、また、普通のインストールをすればOK。
virtio関連を有効にする
vrtioっていうのは、ディスクやNICの準仮想化の仕組みです。
まあ、たいていの場合、はやくなります。ただし、ゲスト側にドライバ必要です。
なんで、とりあえず、virtioを有効にせず、インストールをして、それから設定変更という手順を踏みます。
ちなみに、Ubuntuとかだと、2.6.25以降のインストーラだったりして、そのままインストールできます。
設定変更箇所は、たぶん以下。
- /etc/fstabの/dev/hda*を/dev/vda*に変更する
- /boot/grub/device.mapの(hd0, 0)を/dev/vdaに変更する
- /boot/grub/menu.listのroot=を/dev/vda*に変更する
これくらいやっておけば、ディスクは認識されて起動するはず。
ネットワークは、virtio_netをちゃんとロードすれば、eth0として認識される。
Windows XPのインストール
グラフィック系は、vmwareを指定してみたのですが、ドライバうまく入らず。結局、デフォルトのcirrusを指定してます。
まあ、リモートデスクトップ経由なら、問題ない動き。
インストール自体は、まったく問題なく終わりました。
パフォーマンスの問題もありそうだったので、nLiteでがりがり削りまくったバージョンですが。