注意: 近日、SL6を使った仮想化構築についてまとめる予定ですが、もしこの手順を参考にしてSL6でKVM環境の構築を行なう場合は、SELinuxに注意してください。SELinuxが有効であるとブリッジの作成に失敗することがあります。KVM環境の構築後は有効にしても問題ないようです。
仮想化ソリューションの一つである、KVM(Kernel-based Virtual Machine)の構築を行ないます。
なお、仮想マシンの管理はVirt-managerを使って行ないます。
KVMのゲストをブリッジ接続する場合は、従来のnetworkサービスのほうを使います。
# service NetworkManager stop # chkconfig NetworkManager off # service network start # chkconfig network on
(1)KVMのコンポーネントなどの導入を行ないます。
# yum -y install kvm kmod-kvm kvm-qemu-img libvirt python-virtinst bridge-utils virt-manager virt-viewer etherboot-zroms-kvm
(2)libvirtdの起動と、自動起動設定を行ないます。
# /etc/rc.d/init.d/libvirtd start
以上でKVM環境は導入できるのですが、このままではKVMホスト上からしか仮想マシンにアクセスできません。
# chkconfig libvirtd on
以下の手順に従って、ブリッジ接続できるように作業を行ないます。
ifcfg-eth0をコピーしてifcfg-br0を作成します。
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-br0
仮想マシンでブリッジ接続するための仮想NICを設定します。
例ではMACアドレスをxx:xx:xx:xx:xx:xxと表記しています。
このままコピペしても動作しませんので、そこだけは注意してください。
# vim ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.1.50 NETMASK=255.255.255.0 NETWORK=192.168.1.0 GATEWAY=192.168.1.1 ONBOOT=yes #USERCTL=no #IPV6INIT=no #PEERDNS=yes #HWADDR=xx:xx:xx:xx:xx:xx
BRIDGE=br0を追記して、br=0とかぶる部分はコメントアウト(削除でも可)しておきます。
# vim ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet HWADDR=xx:xx:xx:xx:xx:xx ONBOOT=yes BRIDGE=br0 #BOOTPROTO=none #USERCTL=no #IPV6INIT=no #PEERDNS=yes #NETMASK=255.255.255.0 #IPADDR=192.168.1.50 #GATEWAY=192.168.1.1
ネットワークサービスを再起動します。
# /etc/rc.d/init.d/network restart
作成した仮想NIC(br0)がIPを取得できているか確認します。
# ifconfig
br0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::218:71ff:fee9:4758/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:144 errors:0 dropped:0 overruns:0 frame:0
TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:25905 (25.2 KiB) TX bytes:16339 (15.9 KiB)
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet6 addr: fe80::218:71ff:fee9:4758/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:148 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29359 (28.6 KiB) TX bytes:12413 (12.1 KiB)
Interrupt:169 Memory:fa000000-fa012800
:
以下のコマンドを実行して必要なモジュールを組み込みます(AMD CPUの場合は、2つ目はmodprobe kvm_amd)。
# modprobe kvm
# modprobe kvm_intel
モジュールが組み込まれたか確認します。結果がでれば、必要なモジュールは組み込まれています。
# /sbin/lsmod | grep kvm
kvm_intel 86920 0
kvm 226336 1 kvm_intel
以下の設定を/etc/rc.d/rc.localに追加します(AMD CPUの場合は、2つ目はmodprobe kvm_amd)。
# vim /etc/rc.d/rc.local
/sbin/modprobe kvm
/sbin/modprobe kvm-intel
ユーザーをKVMグループに追加します。
# usermod -G kvm -a admin
ファイアウォール設定で、br0を信頼できるデバイスに設定します。
これにより、別の端末から仮想ゲストへ、もしくはゲストから別の端末へアクセス出来るようになります。

どのサービスを通過させるかしないかは、仮想ゲスト側のファイアウォールで設定します。