LVS Keepalived 方案是和LVS Heartbeat 同樣的高可用加負載均衡方案, Keepalived 於node
Heartbeat 相比在部署和管理方面都大大簡化了。linux
1.0 集羣環境列表算法
IP 地址主機名說明後端
---------------loader Balance 負載層----------------服務器
192.168.140.140 VIP負載均衡
192.168.140.141 Web-Director LVS Directoride
192.168.140.143 Web-Backup Keepalived Backupoop
---------------Sserver custer 服務器集羣層----------------測試
192.168.140.137 Web-node1 Web 節點 網站
192.168.140.139 Web-node2 Web 節點
---------------Storage 存儲層-----------------------
1.1 其它注意事項
1> LVS Keepalived 方案ipvsadm 的管理有keepalived 負責。
2> LVS 後端節點的監控檢查也是keepalived 進行。
3> 注意內核版本和ipvsadm 版本的對應。
4> 注意ip_vs 模塊是否載入內核。
1.2 部署LVS Keepalived
檢查內核版本和模塊
[root@Web-Director ~]# uname -r
2.6.18-164.el5
[root@Web-Director ~]# modprobe ip_vs
[root@Web-Director ~]# lsmod | grep ip_vs
ip_vs 121473 0
1.3 下載軟件包
[root@Web-Director ~]# ln -s /usr/src/kernels/2.6.18-164.el5-x86_64/ /usr/src/linux
[root@Web-Director ~]# cd /usr/local/src
[root@Web-Director src]# wget
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
[root@Web-Director src]# wget
http://www.keepalived.org/software/keepalived-1.1.20.tar.gz
1.4 安裝ipvsadm
注意:Web-Director 和Web-Backup 安裝相同
[root@Web-Director src]# tar zxvf ipvsadm-1.24.tar.gz
[root@Web-Director src]# cd ipvsadm-1.24
有關安裝的相關信息,能夠查看該目錄下的README 文件。
[root@Web-Director ipvsadm-1.24]# make && make install
安裝完畢後會產生如下文件:
/sbin/ipvsadm
/sbin/ipvsadm-save
/sbin/ipvsadm-restore
/usr/man/man8/ipvsadm.8
/usr/man/man8/ipvsadm-save.8
/usr/man/man8/ipvsadm-restore.8
/etc/rc.d/init.d/ipvsadm
1.5 安裝Keepalived
注意:Web-Director 和Web-Backup 安裝相同
[root@Web-Director src]# tar zxvf keepalived-1.1.20.tar.gz
[root@Web-Director src]# cd keepalived-1.1.20
[root@Web-Director keepalived-1.1.20]# ./configure --prefix=/usr/local/keepalived
Keepalived configuration
------------------------
Keepalived version : 1.1.20
Compiler : gcc
Compiler flags : -g -O2
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
Use VRRP Framework : Yes
Use Debug flags : No
若是出現以上輸出,說明能夠正常編譯安裝。
[root@Web-Director keepalived-1.1.20]# make && make install
[root@Web-Director ~]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived
/etc/rc.d/init.d/
[root@Web-Director ~]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@Web-Director ~]# /usr/local/keepalived/sbin/keepalived --help
若是你執行了keepalived 命令,你會發現它默認去/etc/keepalived/keepalived.conf 找配置文件,
因此咱們要把配置文件建立到此處方便啓動,固然,你也能夠本身制定配置文件位置。
[root@Web-Director ~]# mkdir /etc/keepalived
[root@Web-Director ~]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf
/etc/keepalived/
[root@Web-Director ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
1.6 LVS 配置
LVS 配置是由keepalived 依靠/etc/keepalived/keepalived.conf 來進行配置的,也就是說我
們不須要手動配置ipvsadm 程序,可是咱們作爲LVS DR 模式運行,不能忘了對真實機的配。
RealServer 配置 -------這裏直接用腳本執行
[root@Web-node1 ~]# /sbin/realserver.sh start
RealServer Start OK
[root@Web-node2 ~]# /sbin/realserver.sh start
RealServer Start OK
在RealServer 執行完realserver.sh 後,必定要檢查:
[root@Web-node1 ~]# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.140.140 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1
[root@Web-node2 ~]# ifconfig lo:0
lo:0 Link encap:Local Loopback
inet addr:192.168.140.140 Mask:255.255.255.255
UP LOOPBACK RUNNING MTU:16436 Metric:1
這樣才表示與VIP地址綁定好了。
1.7 Keepalived 配置
這是LVS Keepalived 集羣方案的核心,主要集中在/etc/keepalived/keepalived 文件上。
Keepalived 有兩種狀態,MASTER 和BACKUP,配置大體類似。
Web-Director 配置
下面是一個配置好的keepalived.conf 文件,對於每行用註釋說明。
[root@Web-Director ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs { #全局定義塊
notification_email {
admin@unixhot.com #郵件通知模塊,定義通知郵件地址。
}
notification_email_from localhost #
smtp_server 127.0.0.1 #定義SMTP Server
smtp_connect_timeout 30 #SMTP 連接超時時間
router_id LVS_MASTER #運行keepalived 機器的一個標識,注意:Web-Backup 應該不
同,修改成LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #實例狀態,注意:Web-Backup 應該修改成BACKUP
interface eth0 #指定對外服務的網卡。
virtual_router_id 51
priority 101 #優先級,注意:Web-Backup 應該修改比這個值小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.140.140
}
}
virtual_server 192.168.140.140 80 {
delay_loop 6 #健康檢查的時間間隔
lb_algo wrr #負載均衡的調度算法
lb_kind DR #負載均衡轉發模式
nat_mask
255.255.255.0
persistence_timeout 50 #會話保持時間,針對動態網站
protocol TCP #轉發的協議
real_server 192.168.140.137 80 { #真實機的設置
weight 1 #真實機的權重,在帶有加權調度的調度算法中有用
TCP_CHECK { #TCP 健康檢查
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.140.139 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
BACKUP 端配置
BACKUP 端配置和MASTER 幾乎同樣,能夠直接用scp 從MASTER 端複製一份過來,作如下修改即
可:
router_id LVS_MASTER
state MASTER
priority 101
1.8 LVS Keepalived 方案測試
啓動keepalived 服務
[root@Web-Director ~]# /etc/init.d/keepalived start
[root@Web-Backup ~]# /etc/init.d/keepalived start
VIP 切換測試
[root@Web-Director ~]# ip ad li eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:57:04:db brd ff:ff:ff:ff:ff:ff
inet 192.168.140.141/24 brd 192.168.140.255 scope global eth0
inet 192.168.140.140/32 scope global eth0
inet6 fe80::20c:29ff:fe57:4db/64 scope link
valid_lft forever preferred_lft forever
能夠發現,默認的VIP 是綁定在優先級比較高的這臺MASTER 上,也就是Web-Director 服務器。
[root@Web-Backup ~]# ip ad li eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:45:5e:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.140.143/24 brd 192.168.140.255 scope global eth0
inet6 fe80::20c:29ff:fe45:5e0e/64 scope link
valid_lft forever preferred_lft forever
你能夠手動來停掉Web-Director 上的keepalived 服務,VIP 就會自動切刀Web-Backup 上。