一、高可用簡介
普通的群集的部署是通過一臺調度器控制調配多臺節(jié)點服務器進行業(yè)務請求的處理,但是僅僅是一臺調度器,就會存在極大的單點故障風險,當該調度器的鏈路或則調度器本身出現故障時,就會導致整個業(yè)務的無法正常進行
?而高可用集群是由一臺主調度器和一臺或多臺備用調度器。在主調度器能夠正常運轉時,由主調度器進行節(jié)點服務器業(yè)務的分配處理,其余備用調度器處于待機狀態(tài),不參與當前的集群運轉。當主調度器出現故障無法運轉時,此時備用調度器會由優(yōu)先級最高的調度承擔主調度器的工作,而出現故障的主調調度器便會退出當前工作,由人工維修后返回集群。
兩者比較后:高可用集群只需要在調度器上多進行一臺或兩臺(服務器本身的價格比較昂貴,一般備用的服務器的數量會和當前業(yè)務創(chuàng)造的價值對等)的設置,就可避免因調度器癱瘓業(yè)務中斷的風險,所以實現了真正的高可用的效果
二、Keepalived及其工作原理
- Keepalived 是一個基于VRRP協議來實現的LVS服務高可用方案,可以解決靜態(tài)路由出現的單點故障問題。
?在一個LVS服務集群中通常有主服務器(MASTER)和備份服務器(BACKUP)兩種角色的服務器,但是對外表現為一個虛擬IP,主服務器會發(fā)送VRRP通告信息給備份服務器,當備份服務器收不到VRRP消息的時候,即主服務器異常的時候,備份服務器就會接管虛擬IP,繼續(xù)提供服務,從而保證了高可用性
?三、Keepalived體系主要模塊及其作用
keepalived體系架構中主要有三個模塊,分別是core、check和vrrp。
●core模塊:為keepalived的核心,負責主進程的啟動、維護及全局配置文件的加載和解析。
●vrrp模塊:是來實現VRRP協議的。
●check模塊:負責健康檢查,常見的方式有端口檢查及URL檢查。
四、LVS+Keepalived 高可用群集
- 主DR 服務器:ens33(192.168.181.100) ipvsadm 、keepalived(熱備) 虛擬IP:192.168.181.88 ?網卡 ens33:0
- 備DR 服務器:ens33(192.168.181.99) ipvsadm 、keepalived
- 虛擬IP:192.168.181.88 ?網卡 ens33:0
- Web 服務器1:ens33 192.168.181.101
- lo:0(VIP)192.168.181.88
- Web 服務器2:ens33 192.168.181.102
- lo:0(VIP)192.168.181.88
- vip:192.168.181.88 ? ? ?
- 客戶端:192.168.181.1
1.LVS部署
yum -y install ipvsadm keepalived
modprobe ip_vs
cat /proc/net/ip_vs
1.1 配置keeplived(主、備DR 服務器上都要設置)
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
......
global_defs { #定義全局參數
--10行--修改,郵件服務指向本地
smtp_server 127.0.0.1
--12行--修改,指定服務器(路由器)的名稱,主備服務器名稱須不同,主為LVS_01,備為LVS_02
router_id LVS_01
--14行--注釋掉,取消嚴格遵守VRRP協議功能,否則VIP無法被連接
#vrrp_strict
}
vrrp_instance VI_1 { #定義VRRP熱備實例參數
--20行--修改,指定熱備狀態(tài),主為MASTER,備為BACKUP
state MASTER
--21行--修改,指定承載vip地址的物理接口
interface ens33
--22行--修改,指定虛擬路由器的ID號,每個熱備組保持一致
virtual_router_id 10
#nopreempt #如果設置非搶占模式,兩個節(jié)點state必須為bakcup,并加上配置 nopreempt
--23行--修改,指定優(yōu)先級,數值越大優(yōu)先級越高,這里設置主為100,備為90
priority 100
advert_int 1 #通告間隔秒數(心跳頻率)
authentication { #定義認證信息,每個熱備組保持一致
auth_type PASS #認證類型
--27行--修改,指定驗證密碼,主備服務器保持一致
auth_pass 123123
}
virtual_ipaddress { #指定群集vip地址
192.168.181.88
}
}
--36行--修改,指定虛擬服務器地址(VIP)、端口,定義虛擬服務器和Web服務器池參數
virtual_server 192.168.181.88 80 {
delay_loop 6 #健康檢查的間隔時間(秒)
lb_algo rr #指定調度算法,輪詢(rr)
--39行--修改,指定群集工作模式,直接路由(DR)
lb_kind DR
persistence_timeout 50 #連接保持時間(秒)
protocol TCP #應用服務采用的是 TCP協議
--43行--修改,指定第一個Web節(jié)點的地址、端口
real_server 192.168.181.101 80 {
weight 1 #節(jié)點的權重
--45行--刪除,添加以下健康檢查方式
TCP_CHECK {
connect_port 80 #添加檢查的目標端口
connect_timeout 3 #添加連接超時(秒)
nb_get_retry 3 #添加重試次數
delay_before_retry 3 #添加重試間隔
}
}
real_server 192.168.181.102 80 { #添加第二個 Web節(jié)點的地址、端口
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
##刪除后面多余的配置##
}
192.168.181.100和99都需要配置vip(虛擬IP)
vim /etc/sysconfig/network-scripts/ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.188
NETMASK=255.255.255.255
重啟網卡 systemctl restart network
ifup ens33:0
systemctl start keepalived
ip addr #查看虛擬網卡vip
1.2 啟動 ipvsadm 服務
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C ##清空規(guī)則
ipvsadm -A -t 192.168.181.88:80 -s rr
ipvsadm -a -t 192.168.181.88:80 -r 192.168.181.101:80 -g
ipvsadm -a -t 192.168.181.88:80 -r 192.168.181.102:80 -g
ipvsadm -ln
#如沒有VIP 的分發(fā)策略,則重啟 keepalived 服務,systemctl restart keepalived
--192.168.181.99---
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -ln
1.3?調整 proc 響應參數,關閉Linux 內核的重定向參數響應
vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
sysctl -p
2.配置節(jié)點服務器
yum -y install httpd
systemctl start httpd
--192.168.181.101---
echo 'lbj king!' > /var/www/html/index.html
--192.168.181.102---
echo 'jokic is a joke~' > /var/www/html/index.html
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.181.88
NETMASK=255.255.255.255
service network restart 或 systemctl restart network
ifup lo:0
ifconfig lo:0
route add -host 192.168.181.88 dev lo:0
vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
3.測試驗證
在客戶端訪問 http://192.168.181.88/?
再在主服務器關閉 keepalived 服務后再測試, systemctl stop keepalived
?文章來源地址http://www.zghlxwxcb.cn/news/detail-532615.html文章來源:http://www.zghlxwxcb.cn/news/detail-532615.html
?
到了這里,關于LVS+Keepalived架構(負載均衡高可用集群)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!