lvsコンパイルインストールDRモデル
5768 ワード
一、環境
システム:CentOS 6.4 x 64最小化インストール
DR:192.168.3.20
RS1:192.168.3.21
RS2:192.168.3.22
VIP: 192.168.3.23
二、Realserverはhttpdサービスを配置してテストする
RS 1構成
RS 2構成
三、DR配置取付
ベースパッケージのインストール
パッケージのダウンロードとインストール
四、RealserverのVIPを配置する
Realserverでスクリプト構成VIPを実行します.スクリプトの内容は次のとおりです.
スクリプトの実行
RS 2で同様の操作を行う
五、DRにクラスタサービスを追加する
テスト1:直接アクセスhttp://192.168.3.23
テスト2:バックエンドのRS 1を削除し、検証http://192.168.3.23アクセスできるかどうか
システム:CentOS 6.4 x 64最小化インストール
DR:192.168.3.20
RS1:192.168.3.21
RS2:192.168.3.22
VIP: 192.168.3.23
二、Realserverはhttpdサービスを配置してテストする
RS 1構成
[root@RS1 ~]# yum install httpd -y
[root@RS1 ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for RS1
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
# ,
[root@RS1 ~]# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@RS1 ~]# echo "RS1 Server" >/var/www/html/index.html
[root@RS1 ~]# curl http://127.0.0.1
RS1 Server
RS 2構成
[root@RS2 ~]# yum install httpd -y
[root@RS2 ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for RS2
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
# ,
[root@RS2 ~]# service iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
[root@RS2 ~]# echo "RS2 Server" >/var/www/html/index.html
[root@RS2 ~]# curl
RS2 Server
三、DR配置取付
ベースパッケージのインストール
[root@DR ~]# yum install make popt libnl libnl-devel popt-static gcc* -y
パッケージのダウンロードとインストール
[root@DR ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
[root@DR ~]# tar xf ipvsadm-1.26.tar.gz
[root@DR ~]# cd ipvsadm-1.26
[root@DR ipvsadm-1.26]# make
[root@DR ipvsadm-1.26]# make install
# ipvsadm --help, ,
[root@DR ipvsadm-1.26]# ipvsadm --help
四、RealserverのVIPを配置する
Realserverでスクリプト構成VIPを実行します.スクリプトの内容は次のとおりです.
#!/bin/bash
VIP=192.168.3.23
source /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
スクリプトの実行
[root@RS1 ~]# sh realserver.sh start
RealServer Start OK
[root@RS1 ~]# ip a|grep 3.23
inet 192.168.3.23/32 brd 192.168.3.23 scope global lo:0
RS 2で同様の操作を行う
[root@RS2 ~]# sh realserver.sh start
RealServer Start OK
[root@RS2 ~]# ip a |grep 3.23
inet 192.168.3.23/32 brd 192.168.3.23 scope global lo:0
五、DRにクラスタサービスを追加する
# DR VIP
[root@DR ~]# ifconfig eth0:0 192.168.3.23
[root@DR ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e0:ca:92 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.20/24 brd 192.168.3.255 scope global eth0
inet 192.168.3.23/24 brd 192.168.3.255 scope global secondary eth0:0
inet6 fe80::20c:29ff:fee0:ca92/64 scope link
valid_lft forever preferred_lft forever
[root@DR ~]# ipvsadm -A -t 192.168.3.23:80 -s rr
#
#-A
#-t VIP , 80
#-s
[root@DR ~]# ipvsadm -a -t 192.168.3.23:80 -r 192.168.3.21 -g
[root@DR ~]# ipvsadm -a -t 192.168.3.23:80 -r 192.168.3.22 -g
# realserver ,-g DR
[root@DR ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.3.23:80 rr
-> 192.168.3.21:80 Route 1 0 0
-> 192.168.3.22:80 Route 1 0 0
# DR
[root@DR ~]# service iptables stop
テスト1:直接アクセスhttp://192.168.3.23
[root@qa-web ~]# curl http://192.168.3.23
RS2 Server
[root@qa-web ~]# curl http://192.168.3.23
RS1 Server
[root@qa-web ~]# curl http://192.168.3.23
RS2 Server
[root@qa-web ~]# curl http://192.168.3.23
RS1 Serve
# lvs
テスト2:バックエンドのRS 1を削除し、検証http://192.168.3.23アクセスできるかどうか
[root@DR ~]# ipvsadm -d -t 192.168.3.23:80 -r 192.168.3.21
[root@DR ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.3.23:80 rr
-> 192.168.3.22:80 Route 1 0 0
# realserver 192.168.3.22 httpd , RS2 Server
# http://192.168.3.23,
[root@qa-web ~]# curl http://192.168.3.23
RS2 Server
[root@qa-web ~]# curl http://192.168.3.23
RS2 Server