理想未来ってなんやねん

娘可愛い。お父さん頑張る。

CentOS 5.4でKVMを試してみた。 〜 コンソール編 〜

CentOS 5.4でKVMを試してみました。忘れても良いようにメモしておきます。
GUIで弄ると非常に簡単に使えますが、それだと仕事として使えないのでコンソールだけで試してみました。

インストール

パッケージをインストールする。

yum install kvm kvm-qemu-img python-virtinst

以下はGUIな人が好みで。

yum install virt-manager virt-viewer

カーネルモジュールをロードする。

modprobe kvm
modprobe kvm-intel

設定

ブリッジネットワークを使用する場合の設定。

/etc/sysconfig/network-scripts/ifcfg-br0を以下ような内容で作成する。

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes

/etc/sysconfig/network-scripts/ifcfg-eth0も変更する。

DEVICE=eth0
BOOTPROTO=none
HWADDR=XX:XX:XX:XX:XX:XX
ONBOOT=yes
BRIDGE=br0

ゲストOSにパケットが届くように/etc/sysconfig/iptablesを書き換える。

〜省略〜
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -i br0 -j ACCEPT ←追記
-A FORWARD -j RH-Firewall-1-INPUT
〜省略〜

設定を反映する。

service network restart
service iptables restart

ゲストOSのインストール

virt-installを使ったテキストモードでのインストール方法

virt-install \
 --connect qemu:///system \
 -n vm01 \
 -r 512 \
 --vcpus=2 \
 -f /var/lib/libvirt/images/vm01.img \
 -s 12 \
 --nographics \
 --os-type linux \
 --os-variant=virtio26 \
 --accelerate \
 --network=bridge:br0 \
 --hvm \
 --location='http://ftp.riken.jp/Linux/centos/5.4/os/x86_64' \
 --extra-args='console=tty0 console=ttyS0,115200n8'

オプションで--os-variant=virtio26を指定することで準仮想化デバイスを使用できるのでパフォーマンスが良くなる。
テキストモードでインストールする場合は--extra-argsでconsoleを指定するのがポイント。
インストール元は--locationで指定する。--extra-argsはオプションで--cdromを指定した場合は動作しないので注意。
consoleからインストールを行う場合は、必然的にインストール元を--locationで指定することになる。

尚、--extra-argsでconsoleを指定しなかった場合、そのままではconsoleを使用することができない。
インストール後にconsoleを使用できるように変更したい場合は、/etc/inittabを書き換える。

# Run gettys in standard runlevels
co:2345:respawn:/sbin/agetty ttyS0 115200 vt100-nav (←追加)
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2


インストールをKickStartで行う場合は、--extra-argsを次のように指定する。

 --extra-args='ks=http://(ks-config-server)/(path)/ks.cfg console=tty0 console=ttyS0,115200n8'

ks=でゲストOSから見たks.cfgファイルのパスを指定する。
ホストOS内にks.cfgを置いて127.0.0.1を指定してもゲストOS自身になるので駄目。


今日の所はここまで。