トップページに戻る


KVMホストの構築
最終更新日:2011.11.9

注意: 近日、SL6を使った仮想化構築についてまとめる予定ですが、もしこの手順を参考にしてSL6でKVM環境の構築を行なう場合は、SELinuxに注意してください。SELinuxが有効であるとブリッジの作成に失敗することがあります。KVM環境の構築後は有効にしても問題ないようです。

仮想化ソリューションの一つである、KVM(Kernel-based Virtual Machine)の構築を行ないます。
なお、仮想マシンの管理はVirt-managerを使って行ないます。

NetworkManagerの終了とnetworkの開始

KVMのゲストをブリッジ接続する場合は、従来のnetworkサービスのほうを使います。

# service NetworkManager stop
# chkconfig NetworkManager off
# service network start
# chkconfig network on

KVMのインストール

(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
# chkconfig libvirtd on
以上でKVM環境は導入できるのですが、このままではKVMホスト上からしか仮想マシンにアクセスできません。
以下の手順に従って、ブリッジ接続できるように作業を行ないます。

ブリッジ接続用の仮想NICの作成

ifcfg-eth0をコピーしてifcfg-br0を作成します。
# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-br0

仮想NIC"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

NIC "eth0"の設定変更

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グループへユーザーを追加

ユーザーをKVMグループに追加します。 # usermod -G kvm -a admin

br0を信頼するネットワークに設定

ファイアウォール設定で、br0を信頼できるデバイスに設定します。
これにより、別の端末から仮想ゲストへ、もしくはゲストから別の端末へアクセス出来るようになります。

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

ゲストのインストール

準備が出来たら、ゲストのインストールを行ないます。