LVS+Keepalived高可用群集
阿新 • • 發佈:2018-01-28
ip add forever fas 路徑 算法 其中 p地址 有一個 cad keeplived是專門針對LVS設計的一款輔助工具,主要功能是實現故障切換,類似HSRP熱備份路由協議,HSRP是思科的私有協議,而VRRP是通用協議,都是為了實現故障切換,當一臺路由器發生故障的時候,另一臺馬上接替工作,用戶感覺不到服務器發生了問題,而且不會中斷服務。
雙機熱備是就是利用了VRRP虛擬路由冗余協議,和HRSP一樣都擁有一個虛擬的ip地址對外提供服務,而不是真正的服務器ip地址,也擁有一臺主服務器和多臺備份服務器,優先級高的做主路由器,備份服務器處於冗余狀態,當主服務器發生故障的時候,從服務器會變成主服務器,當主服務器修好之後,會重新成為主路由器。這裏和HSRP不同的是,HSRP需要配置占先權,而這裏不用配置,默認都有占先權。
.
- keepalived的熱備方式
VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協議)
一主 + 多備,共用同一個IP地址,但優先級不同
. - 安裝及服務控制
先安裝支持軟件:
kernel-devel、openssl-devel、popt-devel、ipvsadm
再編譯安裝keepalived,需指定內核路徑
--prefix、--with-kernel-dir=
使用Keepalived服務
. - 配置文件keepalived.conf
全局設置:global_defs { ... }
熱備設置:vrrp_instance 實例名稱 { ... }
樣例文件位於:/etc/keepalived/samples/
.
- 主服務器配置
state:設置本節點狀態,MASTER、BACKUP
priority:設置競選優先級,數值越大優先級越高
virtual_ipaddress { ... }:設置漂移IP地址
…… - 備用服務器配置
router_id設為自有名稱
state設為BACKUP
priority值低於主服務器
—— 其余所有配置均與主服務器相同
. - 負載均衡+高可用群集
針對LVS調度器實現雙機熱備
能夠管理服務器池,自動隔離失效節點
.
LVS與keepalived的結合
. - 主、從調度器配置要點
DR模式必須調整 /proc參數(方法同第5章)
清除VIP地址、清除ipvsadm策略
配置keepalived雙機熱備,並添加服務器池設置 - Web節點註意事項
DR模式必須調整/proc參數、添加VIP地址及路由
—— 具體方法見第5章
. - LVS+HA群集的測試
訪問 http://172.16.16.172/,正常顯示Web頁面
主、從調度器其中一臺失效,站點訪問及負載仍然正常
只要保持至少一個Web節點有效,整個站點依然可用
.
LVS+Keepalived高可用群集
.
配置LVS+Keepalived高可用群集,LVS具體操作可看上篇文章,除了lvs的虛擬地址不需要配和nat不用做其他都相同,所以本篇LVS不在詳解
.
配置主調度器
.
安裝支持軟件
[root@centos1 /]# yum -y install kernel-devel openssl-devel popt-devel
[root@centos1 /]# umount /dev/cdrom /media/
[root@centos1 /]# mount /dev/cdrom /media/
[root@centos1 /]# cd /media/
[root@centos1 /]# ls
[root@centos1 /]# tar zxf keepalived-1.2.13.tar.gz -C /usr/src/
.
編譯安裝Keepalived
[root@centos1 /]# cd /usr/src/keepalived-1.2.13/
[root@centos1 /]# ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install
.
使用Keepalived服務
[root@centos1 /]# chkconfig --add keepalived
[root@centos1 /]# chkconfig leepalived on
[root@centos1 /]# chkconfig keepalived on
.
配置主調度器
[root@centos1 /]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { //接收郵件的地址,需要postfix,這裏可不寫
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1 //郵件服務器地址,這裏填本機
smtp_connect_timeout 30
router_id R1 //主調度器名稱,與從調度器名稱不能相同
}
vrrp_instance VI_1 {
state MASTER //主服務器MASTER,從服務器填BACKUP
interface eth0 //外網卡名稱不一定是eth0
virtual_router_id 1 //虛擬路由器ID主從要一致
priority 100 //優先級100,主要比從大
advert_int 1 //心跳頻率1秒
authentication {
auth_type PASS
auth_pass 1111 //主從密碼要一致
}
virtual_ipaddress {
172.16.16.172 //群及地址
}
}
virtual_server 172.16.16.172 80 { //虛擬服務器地址端口
delay_loop 6 //健康檢查時間6秒
lb_algo rr //輪訓調度算法rr
lb_kind DR //路由模式DR
persistence_timeout 50 //保持時間50秒
protocol TCP //協議tcp
real_server 172.16.16.177 80 { //web節點A的地址端口
weight 1 //權重 1
TCP_CHECK {
connect_port 80
connect_timeout 3 //連接超時3秒
nb_get_retry 3 //重復3次
delay_before_retry 3 //重復間隔3秒
}
}
real_server 172.16.16.178 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
.
重啟keepalived服務
[root@centos1 /]# service keepalived start
[root@centos1 /]# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP
qlen 1000
link/ether 00:0c:29:7d:92:43 brd ff:ff:ff:ff:ff:ff
inet 172.16.16.173/16 brd 172.16.255.255 scope global eth0
inet 172.16.16.172/32 scope global eth0 //虛擬地址
inet6 fe80::20c:29ff:fe7d:9243/64 scope link
valid_lft forever preferred_lft forever
.
從調度服務器的配置
首先安裝keepalived,和主服務器一樣,在配置的時候主要有三個地方不一樣:優先級99,調度器名稱R2,熱備狀態為BACKUP
.
另一臺lvs安裝完可用[root@centos1 /]# scp root@(IP):/遠程路徑 /本地路徑
.
在從調度器查看 [root@centos1 /]# ip addr show dev eth0
則不會出現虛擬地址
route_id R2
state BACKUP
priority 99
.
測試訪在客戶端訪問
.
斷開一個lvs再次測試
.
LVS+Keepalived高可用群集