bondingで負荷分散&冗長化したホストマシン上にKVMで仮想マシンを構築する
ホストマシン(CentOS5.5)のネットワークを冗長化させて、
かつ負荷分散も可能にしたmode blance-albを利用してbondingで
NIC2枚を束ねます。
次にbondingされたNICにBridgeを設定してKVMとホストのNICを
Bridge経由でネットワークに接続出来るようにします。
ネットワークの設定後にssh経由でMacからvirt-managerで
遠隔からGUIでゲストOSをセットアプします。
まずホストのネットワークを下記の設定ファイルのように設定します。
※192.168.12.0/24のネットワーク上で設定を行ないます。
/etc/modprobe.conf
alias eth0 e1000e alias eth1 e1000e alias scsi_hostadapter ata_piix # add bonding alias bond0 bonding
/etc/sysconfig/network
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=gt110b01.local
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 TYPE=Bridge ONBOOT=yes DELAY=0 BOOTPROTO=none IPADDR=192.168.12.10 NETMASK=255.255.255.0 NETWORK=192.168.12.0 BROADCAST=192.168.12.255 GATEWAY=192.168.12.1
/etc/sysconfig/network-scripts/ifcfg-bond0
※bondingのmodeは今回はblance-albを使用してます。
筆者環境ではactive/backup、blance-tlb、blance-albを試してます。
DEVICE=bond0 ONBOOT=yes BONDING_OPTS="mode=6 miimon=100 updelay=5000" BRIDGE=br0
/etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 82574L Gigabit Network Connection DEVICE=eth0 HWADDR=xx:xx:xx:xx:xx:xx MASTER=bond0 SLAVE=yes BOOTPROTO=none
/etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corporation 82574L Gigabit Network Connection DEVICE=eth1 HWADDR=xx:xx:xx:xx:xx:xx MASTER=bond0 SLAVE=yes BOOTPROTO=none
/etc/sysconfig/iptables
※iptablesの設定に1行足してbr0を通過できるようにします。
# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -i br0 -j ACCEPT →この行を追加 -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
上記の設定でiptablesとNICが設定出来ているのでホストのネットワークを再起動します。
# /etc/init.d/iptables restrat # /etc/init.d/network restart
ホストのマシンが他のマシンから接続出来るか確認します。
% ping 192.168.12.10 PING 192.168.12.10 (192.168.12.10): 56 data bytes 64 bytes from 192.168.12.10: icmp_seq=0 ttl=64 time=0.531 ms % ssh root@192.168.12.10 root@192.168.12.10's password: Last login: Mon Sep 20 16:39:12 2010 from 192.168.12.5
次にホスト上にvirt-managerで新規仮想マシンを作っていきます。
今回はMacからsshでXを転送させてリモートで操作をします。
CentOS側の/etc/ssh/sshd_configのX11Forwardingの項目が
yesになっていれば下記のように起動が可能です。
% ssh -X bose999@192.168.12.10 $ su - # virt-manager &
これで下記のようにMacのデスクトップにvirt-managerが立ち上がります。
※この操作をする前にMac上でMacのX11.appを起動しとくのがいいかも。
仮想マシンの名前を入力して「進む」ボタンをクリック
※仮想マシンの管理上の名前です。
作成する仮想マシンの設定をします。
今回はx86_64のCentOS5.5をインストールするので下記の画面の設定で
「進む」ボタンをクリック
今回はx86_64のCentOS5.5をインストールするので下記の画面の設定で
「進む」ボタンをクリック
今回はホストマシンのDVDドライブのメディアからインストールするので
下記の画面の設定で「進む」ボタンをクリック
仮想マシンのディスクイメージの設定をします。
管理する上で都合の良い場所を選択して、
必要なディスク容量を割り当てて「進む」ボタンをクリック
※Allocate entire vitual disk nowにチェックを入れておくと
最初から仮想マシン用のディスクイメージにMaxの容量が割り当てられます。
ディスク使用量よりもパフォーマンスを重視する場合はチェックを入れて下さい。
共有物理装置をクリックして選択し、先程設定したbr0を選択します。
この設定により仮想マシンは物理ネットワーク上にIPを持つことが可能になります。
メモリとCPUの割り当てです。必要な容量を割り当てます。
※私の環境は物理メモリを増設してないのできついですw
ディスクの作成が完了すると仮想マシンが立ち上がりますのでCentOS5.5を
インストールします。
※仮想マシンのコンソールにポインターを移すとこの方法では
仮想マシンをシャットダウンしないとポインターが開放されません。
コンソールを触るのはインストールの時のみと筆者は割りきって操作しています。
インストール後に確認してみます。
仮想マシンのIPは192.168.12.101としています。
% ping 192.168.12.101 PING 192.168.12.101 (192.168.12.101): 56 data bytes 64 bytes from 192.168.12.101: icmp_seq=0 ttl=64 time=1.803 ms % ssh -X root@192.168.12.101 root@192.168.12.101's password: Last login: Mon Sep 20 18:17:35 2010 from 192.168.12.5
上記がうまくいき、sshでログイン出来れば完了です。