CentOS/KVMによるサーバ仮想化 +
はじめに +
KVM(Kernel-based Virtual Machine)はRedHat5.4(CentOS 5.4)で実装された機能で、 1台のマシン上で複数のOSを起動する事が出来ます。
KVMはCPUの仮想化支援機構を利用してLinuxやwindowsを動作させるさせる事が可能ですが 動作には仮想化支援機構に対応したCPU(Intel-VT,AMD-V)が必要になります。
インストール環境 +
- OS
- CentOS 5.5 (kernel 2.6.18-194.3.1.el5 x86_64)
- パッケージ
- libvirt-0.6.3-33.el5
- virt-viewer-0.0.2-3.el5
- virt-manager-0.6.1-12.el5
動作条件 +
- KVMの動作に必要な仮想化支援機構(Intel-VT、AMD-V)を確認します。
cpuinfoで flagsとしてvmxがあれば動作可能です。# cat /proc/cpuinfo |grep vmx flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow up nonstop_tsc pni cx16 lahf_lm svm extapic cr8legacy 3dnowprefetch ts fid vid ttp tm stc 100mhzsteps
BIOSの設定変更 +
- BIOSの設定を変更してCPUの仮想化支援機構を有効にします。
「HP ProLiant ML115 G5」の場合は以下の手順で実施します。
- サーバの電源をオンして、起動中に「F10」を押してBIOSメニューを開きます。
- 「Advancecd」タブを選択します
- 「CPU Configuration」を選択します
- 「Secure Virtual Machine Mode」を「Enable」へ変更します。
- 変更を保存してBIOSメニューを終了します。
インストール +
- kvmのインストール
# yum groupinstall kvm
自動起動の設定 +
- chkconfigコマンドで自動起動をONにします
# chkconfig libvirtd on
- chkconfigコマンドで自動起動の確認をします。
LUNレベル3,4,5がonになっていれば問題ありません。
# chkconfig --list libvirtd libvirtd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- KVMを有効にするため再起動します。
# shutdown -r now
準備 +
ブリッジインターフェース(br0)の作成 +
デフォルトの設定だと、仮想マシンは仮想NICを利用するため、外部とはNATで通信する事になります。
しかし、NAT接続はサーバ用途に向かないため、ブリッジインターフェースを作成して物理NICを利用可能にします。
- eth0をコピーしてbr0の雛形を作成します。
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
- br0 を編集します。
# vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge #大文字、小文字に注意します BOOTPROTO=static IPADDR=192.168.11.50 BROADCAST=192.168.11.255 NETMASK=255.255.255.0 NETWORK=192.168.11.0 ONBOOT=yes
- eth0を編集します。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet HWADDR=D8:D3:85:FF:20:F4 ONBOOT=yes BRIDGE=br0
- ネットワークを再起動します。
# /etc/init.d/network restart
- ブリッジインターフェースの追加を確認します。
# brctl show bridge name bridge id STP enabled interfaces br0 8000.0e7818198363 no eth0 virbr0 8000.000000000000 yes
iptablesの設定 +
- トラフィックがブリッジまで転送されるようiptablesを無効化します。
# vi /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
- 設定されたカーネルパラメータを sysctl で再ロードします。
# sysctl -p /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0
- libvirtdをリロードします
# /etc/init.d/libvirtd reload
ゲストOSの作成 +
仮想マシンマネージャの起動 +
- Xwinodow上で下記コマンドを実行し、仮想マシンマネージャを起動します。
# virt-manager
- 仮想マシンマネージャが起動したら、新規ボタンを押して仮想マシンを作成していきます。
Virtuak Machine Creation +
- 進むを選択します。
Virrtual Machine Name +
- 仮想マシンのホスト名を入力します。
Virtual Machine Method +
- 仮想化の方式は「Fully virtualized(完全仮想化)」を選択します。
- CPUアーキテクチャーは「X86_64」を選択します。
- ハイパーバイザーは「KVM」を選択します
Installation Method +
- インストール方法を設定します。
Installation Media +
- インストールメディアを選択します。
Storage +
- ディスクイメージの保存先を設定します。
Network +
- ネットワークは共有物理装置でブリッジインターフェースを選択します。
Memory and CPU Allocation +
- メモリの容量とCPU数を選択します。
Finish Virtual Machine Creation +
- 確認画面で問題なければ完了ボタンを押して仮想マシンを作成します。
OSインストール +
- 仮想マシン作成後にOSインストール画面が起動するので、そのままOSをインストールします。
仮想マシンの確認 +
- 仮想マシン作成後は仮想マシンマネージャで管理する事が出来ます。













