一 基礎(chǔ)環(huán)境
1.1 IP規(guī)劃
1.2 架構(gòu)規(guī)劃

二 高可用LVS負(fù)載均衡集群部署
2.1 NTP部署
2.2 部署httpd集群
[root@RServer01 ~]# yum -y install httpd
[root@RServer01 ~]# service iptables stop
[root@RServer01 ~]# chkconfig iptables off
[root@RServer01 ~]# vi /etc/selinux/config
SELINUX=disabled
[root@master ~]# setenforce 0 #關(guān)閉SELinux及防火墻
firewall-cmd –permanent–-add-service=keepalived
firewall-cmd –reload
2.3 安裝Keepalived
[root@lvsmaster ~]# yum -y install gcc gcc-c++ make kernel-devel kernel-tools kernel-tools-libs kernel libnl libnl-devel libnfnetlink-devel openssl-devel wget openssh-clients #安裝基礎(chǔ)環(huán)境及依賴
[root@lvsmaster ~]# ln -s /usr/src/kernels/`uname -r` /usr/src/linux
[root@lvsmaster ~]# wget http://www.keepalived.org/software/keepalived-1.3.6.tar.gz
[root@lvsmaster ~]# tar -zxvf keepalived-1.3.6.tar.gz #編譯安裝Keepalived
[root@lvsmaster ~]# cd keepalived-1.3.6/
[root@lvsmaster keepalived-1.3.6]# ./configure –prefix=/usr/local/keepalived
[root@Master keepalived-1.3.9]# make && make install
2.4 添加啟動相關(guān)服務(wù)
[root@lvsmaster ~]# mkdir /etc/keepalived
[root@lvsmaster ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@lvsmaster ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@lvsmaster ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@lvsmaster ~]# vi /etc/init.d/keepalived #創(chuàng)建Keepalived啟動腳本,如附件
#!/bin/sh
#
# keepalived High Availability monitor built upon LVS and VRRP
#
# chkconfig: – 86 14
# description: Robust keepalive facility to the Linux Virtual Server project
# with multilayer TCP/IP stack checks.
### BEGIN INIT INFO
# Provides: keepalived
# Required-Start: $local_fs $network $named $syslog
# Required-Stop: $local_fs $network $named $syslog
# Should-Start: smtpdaemon httpd
# Should-Stop: smtpdaemon httpd
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: High Availability monitor built upon LVS and VRRP
# Description: Robust keepalive facility to the Linux Virtual Server
# project with multilayer TCP/IP stack checks.
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
exec=”/usr/sbin/keepalived”
prog=”keepalived”
config=”/etc/keepalived/keepalived.conf”
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
lockfile=/var/lock/subsys/keepalived
start() {
[ -x $exec ] || exit 5
[ -e $config ] || exit 6
echo -n $”Starting $prog: “
daemon $exec $KEEPALIVED_OPTIONS
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $”Stopping $prog: “
killproc $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
echo -n $”Reloading $prog: “
killproc $prog -1
retval=$?
echo
return $retval
}
force_reload() {
restart
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status &>/dev/null
}
case “$1” in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $”Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}”
exit 2
esac
exit $
[root@lvsmaster ~]# chmod u+x /etc/rc.d/init.d/keepalived
[root@lvsmaster ~]# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
……
smtp_connect_timeout 30
router_id LVS_Master #表示運(yùn)行Keepalived服務(wù)器的一個標(biāo)識
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色
interface eth0 #指定HA監(jiān)測網(wǎng)絡(luò)的接口
virtual_router_id 51 #同一個vrrp實(shí)例使用唯一的標(biāo)識,即同一個vrrp_instance下,Master和Backup必須是一致的
priority 100 #定義優(yōu)先級,數(shù)值越大,優(yōu)先級越高
advert_int 1 #設(shè)定Mater和Backup負(fù)載均衡器之間同步檢查時間間隔
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.24.8.100 #設(shè)置虛擬IP地址
}
}
virtual_server 172.24.8.100 80 {
delay_loop 6 #運(yùn)行情況檢查時間
lb_algo rr #設(shè)置負(fù)載均衡算法
lb_kind DR #設(shè)置LVS實(shí)現(xiàn)負(fù)載均衡的機(jī)制,有NAT/DR/TUN
persistence_timeout 50 #會話保持時間
protocol TCP #指定轉(zhuǎn)發(fā)類型
real_server 172.24.8.12 80 {
weight 1 #服務(wù)節(jié)點(diǎn)的權(quán)值,數(shù)值越大,權(quán)值越高
TCP_CHECK {
connect_timeout 5 #表示無響應(yīng)超時時間,單位是秒
nb_get_retry 3 #表示重試次數(shù)
delay_before_retry 3 #表示重試間隔
}
}
real_server 172.24.8.13 80 {
weight 1
TCP_CHECK {
connect_timeout 5
nb_get_retry 3
delay_before_retry 3
}
}
}
[root@lvsmaster ~]# scp /etc/keepalived/keepalived.conf 172.24.8.11:/etc/keepalived/keepalived.conf
[root@lvsbackup ~]# vi /etc/keepalived/keepalived.conf
state BACKUP
priority 80
2.5 安裝IPVS管理工具
1 [root@lvsmaster ~]# yum -y install ipvsadm
2.6 配置Real Server節(jié)點(diǎn)
1 [root@RServer01 ~]# vi /etc/init.d/lvsrs 2 [root@RServer01 ~]# chmod u+x /etc/init.d/lvsrs
2.7 啟動集群
[root@RServer01 ~]# service httpd start
[root@RServer01 ~]# chkconfig httpd on
[root@RServer02 ~]# service httpd start
[root@RServer02 ~]# chkconfig httpd on
[root@lvsmaster ~]# service keepalived start
[root@lvsmaster ~]# chkconfig keepalived on
[root@lvsbackup ~]# service keepalived start
[root@lvsbackup ~]# chkconfig keepalived on
[root@RServer01 ~]# service lvsrs start
[root@RServer02 ~]# service lvsrs start
三 測試集群
3.1 高可用功能測試
3.2 負(fù)載均衡測試
1 [root@RServer01 ~]# echo 'This is Real Server01!' >>/var/www/html/index.html 2 [root@RServer01 ~]# echo 'This is Real Server02!' >>/var/www/html/index.html
3.3 故障切換測試
1 [root@RServer01 ~]# service httpd stop
當(dāng)關(guān)掉其中一個Real Server時,訪問VIP,只會顯示還處于集群中的web節(jié)點(diǎn)。