lvs+keepalived構(gòu)建高可用集群

lvs+keepalived 構(gòu)建高可用集群

負(fù)載均衡LVS基本介紹

LB集群的架構(gòu)和原理很簡單舆逃,就是當(dāng)用戶的請求過來時,會直接分發(fā)到Director Server上,然后它把用戶的請求根據(jù)設(shè)置好的調(diào)度算法昂芜,智能均衡地分發(fā)到后端真正服務(wù)器(real server)上。為了避免不同機(jī)器上用戶請求得到的數(shù)據(jù)不一樣酥宴,需要用到了共享存儲煌往,這樣保證所有用戶請求的數(shù)據(jù)是一樣的。

LVS是 Linux Virtual Server 的簡稱令宿,也就是Linux虛擬服務(wù)器。這是一個由章文嵩博士發(fā)起的一個開源項(xiàng)目腕窥,它的官方網(wǎng)是 http://www.linuxvirtualserver.org 現(xiàn)在 LVS 已經(jīng)是 Linux 內(nèi)核標(biāo)準(zhǔn)的一部分粒没。使用 LVS 可以達(dá)到的技術(shù)目標(biāo)是:通過 LVS 達(dá)到的負(fù)載均衡技術(shù)和 Linux 操作系統(tǒng)實(shí)現(xiàn)一個高性能高可用的 Linux 服務(wù)器集群,它具有良好的可靠性簇爆、可擴(kuò)展性和可操作性癞松。從而以低廉的成本實(shí)現(xiàn)最優(yōu)的性能。LVS 是一個實(shí)現(xiàn)負(fù)載均衡集群的開源軟件項(xiàng)目入蛆,LVS架構(gòu)從邏輯上可分為調(diào)度層响蓉、Server集群層和共享存儲。

LVS 特點(diǎn)

LVS 是一種預(yù)裝在 Linux 系統(tǒng)中哨毁,基于四層枫甲、具有強(qiáng)大性能的反向代理服務(wù)器。ipvsadm 是 LVS 的命令行管理工具

  • 首先它是基于 4 層的網(wǎng)絡(luò)協(xié)議的,抗負(fù)載能力強(qiáng)想幻,對于服務(wù)器的硬件要求除了網(wǎng)卡外粱栖,其他沒有太多要求;
  • 配置性比較低脏毯,這是一個缺點(diǎn)也是一個優(yōu)點(diǎn)闹究,因?yàn)闆]有可太多配置的東西,大大減少了人為出錯的幾率食店;
  • 應(yīng)用范圍比較廣渣淤,不僅僅對 web 服務(wù)做負(fù)載均衡,還可以對其他應(yīng)用(mysql)做負(fù)載均衡吉嫩;
  • LVS 架構(gòu)中存在一個虛擬 IP 的概念砂代,需要向 IDC 多申請一個 IP 來做虛擬 IP

LVS組成部分

  1. ipvs(ip virtual server):一段代碼工作在內(nèi)核空間,叫ipvs率挣,是真正生效實(shí)現(xiàn)調(diào)度的代碼刻伊。

  2. ipvsadm:另外一段是工作在用戶空間,叫ipvsadm椒功,命令行工具, 用于管理集群服務(wù)及集群服務(wù)上的RS,負(fù)責(zé)為ipvs內(nèi)核框架編寫規(guī)則捶箱,定義誰是集群服務(wù),而誰是后端真實(shí)的服務(wù)器(Real Server)

LVS相關(guān)術(shù)語

  1. DS:Director Server动漾。指的是前端負(fù)載均衡器節(jié)點(diǎn)丁屎。
  2. RS:Real Server。后端真實(shí)的工作服務(wù)器旱眯。
  3. VIP:向外部直接面向用戶請求晨川,作為用戶請求的目標(biāo)的IP地址。
  4. DIP:Director Server IP删豺,主要用于和內(nèi)部主機(jī)通訊的IP地址共虑。
  5. RIP:Real Server IP,后端服務(wù)器的IP地址呀页。
  6. CIP:Client IP妈拌,訪問客戶端的IP地址

三種工作模式:

1)NAT模式:

NAT(Network Address Translation)網(wǎng)絡(luò)地址轉(zhuǎn)換,通過修改數(shù)據(jù)報(bào)頭蓬蝶,使得內(nèi)網(wǎng)中的IP可以和外部網(wǎng)絡(luò)進(jìn)行通信尘分。LVS負(fù)載調(diào)度器使用兩塊不同的網(wǎng)卡配置不同的IP地址,網(wǎng)卡一設(shè)置為公網(wǎng)IP負(fù)責(zé)與外部通信丸氛,網(wǎng)卡二設(shè)置內(nèi)網(wǎng)IP負(fù)責(zé)與內(nèi)網(wǎng)服務(wù)通信培愁。

外部用戶通過訪問LVS調(diào)度器的公網(wǎng)IP發(fā)送服務(wù)請求,LVS調(diào)度器接受請求后缓窜,將請求數(shù)據(jù)進(jìn)行轉(zhuǎn)換定续,通過內(nèi)網(wǎng)IP的網(wǎng)卡設(shè)備谍咆,根據(jù)調(diào)度策略將數(shù)據(jù)轉(zhuǎn)發(fā)給內(nèi)部服務(wù),內(nèi)部服務(wù)處理完成將響應(yīng)數(shù)據(jù)再返回給LVS調(diào)度器香罐,LVS調(diào)度器再將數(shù)據(jù)轉(zhuǎn)換通過公網(wǎng)IP的網(wǎng)卡設(shè)備將響應(yīng)結(jié)果返回給請求用戶卧波。

以上描述的就是一個基于NAT工作模式的LVS調(diào)度时肿,這種模式的瓶頸在于LVS調(diào)度器庇茫,因?yàn)樗械恼埱髷?shù)據(jù)和響應(yīng)數(shù)據(jù)都需要經(jīng)過LVS來進(jìn)行轉(zhuǎn)換處理,當(dāng)大流量到來時螃成,LVS調(diào)度器就成了一個短板旦签,限制整個集群服務(wù)性能的上限。

2)TUN模式:

TUN模式與NAT的不同在于寸宏,TUN模式下LVS調(diào)度器只負(fù)責(zé)接受請求宁炫,而真實(shí)服務(wù)器進(jìn)行響應(yīng)請給用戶。LVS調(diào)度器與真實(shí)服務(wù)器建立IP隧道氮凝,IP隧道它可以將原始數(shù)據(jù)包封裝并將新的源地址及端口羔巢、目標(biāo)地址及端口添加新的包頭中,將封裝后的數(shù)據(jù)通過隧道轉(zhuǎn)發(fā)給后端的真實(shí)服務(wù)器罩阵,真實(shí)服務(wù)器在收到請求數(shù)據(jù)包后直接給外部用戶響應(yīng)數(shù)據(jù)竿秆,這種模式下要求真實(shí)服務(wù)器具有直接外部用戶通信的能力。

外部用戶訪問LVS調(diào)度器發(fā)送服務(wù)請求稿壁,LVS調(diào)度器接收請求后幽钢,將請求數(shù)據(jù)轉(zhuǎn)換,根據(jù)調(diào)度策略將數(shù)據(jù)轉(zhuǎn)發(fā)給服務(wù)集群真實(shí)服務(wù)器傅是,真實(shí)服務(wù)器在處理完成后匪燕,就直接與外部請求用戶通信,直接將響應(yīng)結(jié)果返回給請求用戶喧笔。

以上描述就是一個基于TUN工作模式的LVS調(diào)度帽驯,這種模式下LVS調(diào)度器就只負(fù)責(zé)請求的負(fù)載均衡轉(zhuǎn)發(fā),而處理數(shù)據(jù)的響應(yīng)則全部由真實(shí)服務(wù)器來直接和用戶通信了书闸。在實(shí)際環(huán)境中界拦,請求的數(shù)據(jù)量往往是小于響應(yīng)的數(shù)據(jù)量,所以僅僅將請求數(shù)據(jù)讓LVS來轉(zhuǎn)發(fā)梗劫,好處就是LVS調(diào)度器的壓力減少很多享甸,可以承載更大的流量,同時真實(shí)服務(wù)器的性能也能得到充分利用梳侨,缺點(diǎn)就是真實(shí)服務(wù)器需要與外部網(wǎng)絡(luò)用戶直接通信蛉威,在安全上會存在一定風(fēng)險(xiǎn)。

3)DR模式:

DR模式是在TUN模式的基礎(chǔ)上又進(jìn)行了改造走哺,在DR模式下LVS調(diào)度器與真實(shí)服務(wù)器共享一個虛擬IP蚯嫌,且調(diào)度器的虛擬IP對外暴露,而真實(shí)服務(wù)器的虛擬IP地址將配置在Non-ARP的網(wǎng)絡(luò)設(shè)備上,這種網(wǎng)絡(luò)設(shè)備不會向外廣播自己的MAC及對應(yīng)的IP地址择示,這樣即保證了真實(shí)服務(wù)器可以接受虛擬IP的網(wǎng)絡(luò)請求也讓真實(shí)服務(wù)器所綁定的虛擬IP對外部網(wǎng)絡(luò)部是不可見的束凑。

外部用戶通過訪問虛擬IP將請求數(shù)據(jù)包發(fā)送到調(diào)度器,調(diào)度器根據(jù)調(diào)度策略確定轉(zhuǎn)發(fā)的真實(shí)服務(wù)器后栅盲,在不修改數(shù)據(jù)報(bào)文的情況下汪诉,將數(shù)據(jù)幀的MAC地址修改為選出的真實(shí)服務(wù)器的MAC地址,通過交換機(jī)將該數(shù)據(jù)幀發(fā)給真實(shí)服務(wù)器谈秫,之后真實(shí)服務(wù)器在處理完后進(jìn)行數(shù)據(jù)響應(yīng)時扒寄,會將虛擬IP封裝在數(shù)據(jù)包中,再經(jīng)過路由將數(shù)據(jù)返回給外部用戶拟烫,在這整個過程中该编,真實(shí)服務(wù)器對外部用戶不可見,外部用戶只能看到虛擬IP的地址

在DR模式下因?yàn)檎鎸?shí)服務(wù)器給外部用戶回應(yīng)的數(shù)據(jù)包設(shè)置的源IP是虛擬IP地址硕淑,又因?yàn)檎鎸?shí)服務(wù)器的虛擬IP不對外暴露课竣,這樣外部用戶在通過虛擬IP訪問時,就訪問到了調(diào)度器的虛擬IP地址置媳,就實(shí)現(xiàn)了整個集群對外部用戶透明于樟。

LVS的八種調(diào)度算法

1.輪叫調(diào)度 rr

這種算法是最簡單的,就是按依次循環(huán)的方式將請求調(diào)度到不同的服務(wù)器上半开,該算法最大的特點(diǎn)就是簡單隔披。輪詢算法假設(shè)所有的服務(wù)器處理請求的能力都是一樣的,調(diào)度器會將所有的請求平均分配給每個真實(shí)服務(wù)器寂拆,不管后端 RS 配置和處理能力奢米,非常均衡地分發(fā)下去。

2. 加權(quán)輪叫 wrr

這種算法比 rr 的算法多了一個權(quán)重的概念纠永,可以給 RS 設(shè)置權(quán)重鬓长,權(quán)重越高,那么分發(fā)的請求數(shù)越多尝江,權(quán)重的取值范圍 0 – 100涉波。主要是對rr算法的一種優(yōu)化和補(bǔ)充, LVS 會考慮每臺服務(wù)器的性能炭序,并給每臺服務(wù)器添加要給權(quán)值啤覆,如果服務(wù)器A的權(quán)值為1,服務(wù)器B的權(quán)值為2惭聂,則調(diào)度到服務(wù)器B的請求會是服務(wù)器A的2倍窗声。權(quán)值越高的服務(wù)器,處理的請求越多辜纲。

3. 最少鏈接 lc

這個算法會根據(jù)后端 RS 的連接數(shù)來決定把請求分發(fā)給誰笨觅,比如 RS1 連接數(shù)比 RS2 連接數(shù)少拦耐,那么請求就優(yōu)先發(fā)給 RS1

4. 加權(quán)最少鏈接 wlc

這個算法比 lc 多了一個權(quán)重的概念。

5. 基于局部性的最少連接調(diào)度算法 lblc

這個算法是請求數(shù)據(jù)包的目標(biāo) IP 地址的一種調(diào)度算法见剩,該算法先根據(jù)請求的目標(biāo) IP 地址尋找最近的該目標(biāo) IP 地址所有使用的服務(wù)器杀糯,如果這臺服務(wù)器依然可用,并且有能力處理該請求苍苞,調(diào)度器會盡量選擇相同的服務(wù)器固翰,否則會繼續(xù)選擇其它可行的服務(wù)器

6. 復(fù)雜的基于局部性最少的連接算法 lblcr

記錄的不是要給目標(biāo) IP 與一臺服務(wù)器之間的連接記錄,它會維護(hù)一個目標(biāo) IP 到一組服務(wù)器之間的映射關(guān)系柒啤,防止單點(diǎn)服務(wù)器負(fù)載過高倦挂。

7. 目標(biāo)地址散列調(diào)度算法 dh

該算法是根據(jù)目標(biāo) IP 地址通過散列函數(shù)將目標(biāo) IP 與服務(wù)器建立映射關(guān)系畸颅,出現(xiàn)服務(wù)器不可用或負(fù)載過高的情況下担巩,發(fā)往該目標(biāo) IP 的請求會固定發(fā)給該服務(wù)器。

8. 源地址散列調(diào)度算法 sh

與目標(biāo)地址散列調(diào)度算法類似没炒,但它是根據(jù)源地址散列算法進(jìn)行靜態(tài)分配固定的服務(wù)器資源

lvs構(gòu)建負(fù)載均衡集群

ip
調(diào)度器 192.168.126.101
vip 192.168.126.100
rs1 192.168.126.121
rs2 192.168.126.122
# eth0:1表示這個VIP綁定的目標(biāo)網(wǎng)卡設(shè)備涛癌,192.168.209.22就是VIP的值,廣播地址為192.168.209.255,子網(wǎng)掩碼為:255.255.255.0送火,up表示立即啟用這個VIP
# ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up
# 路由表上添加對這個VIP的路由信息
# route add -host 192.168.209.22 dev eth0:1

# LVS101調(diào)度器
systemctl stop NetworkManager    # 關(guān)閉網(wǎng)卡守護(hù)進(jìn)程 
cp /etc/sysconfig/network-scripts/ifcfg-ens32 ifcfg-ens32:0
# 拷貝 ens32 網(wǎng)卡子接口充當(dāng)集群入口接口
vim ifcfg-ens32:0
DEVICE=ens32:0
IPADDR=192.168.126.100
NETMASK=255.255.255.0
ifup ens32:0 #啟動網(wǎng)卡
yum -y install ipvsadm #安裝LVS
modprobe ip_vs #重載 ipvs 模塊
ipvsadm -v  #查看當(dāng)前ipvs版本
ipvsadm -A -t 192.168.126.100:80 -s rr  #添加一個集群并采用輪詢算法
ipvsadm -a -t 192.168.126.100:80  -r 192.168.126.121:80  -g 
ipvsadm -a -t 192.168.126.100:80  -r 192.168.126.122:80  -g
#添加ipvsadm集群節(jié)點(diǎn)
ipvsadm -Ln #查看當(dāng)前集群
chkconfig ipvsadm on   #設(shè)置為開機(jī)自啟

# web121
systemctl  stop  NetworkManager 
cp /etc/sysconfig/network-scripts/ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.126.100
NETMASK=255.255.255.255
vim /etc/sysctl.conf   #關(guān)閉對應(yīng)ARP響應(yīng)及公告功能
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
 
ifup lo:0   #重啟lo:0網(wǎng)卡
route add -host 192.168.126.100  dev lo:0  #添加路由
systemctl start httpd #啟動httpd服務(wù)

# 查看集群負(fù)載狀態(tài)
ipvsadm -Ln --stats

lvs+keepalived構(gòu)建高可用集群

Keepalived是什么拳话?

Keepalived是Linux下一個輕量級別的高可用解決方案≈治可以實(shí)現(xiàn)服務(wù)的高可用或熱備弃衍,用來防止單點(diǎn)故障的問題,Keepalived起初是為LVS設(shè)計(jì)的坚俗,專門用來監(jiān)控集群系統(tǒng)中各個服務(wù)節(jié)點(diǎn)的狀態(tài)镜盯,它根據(jù)TCP/IP參考模型的第三、第四層猖败、第五層交換機(jī)制檢測每個服務(wù)節(jié)點(diǎn)的狀態(tài)速缆,如果某個服務(wù)器節(jié)點(diǎn)出現(xiàn)異常,或者工作出現(xiàn)故障恩闻,Keepalived將檢測到艺糜,并將出現(xiàn)的故障的服務(wù)器節(jié)點(diǎn)從集群系統(tǒng)中剔除,這些工作全部是自動完成的幢尚,不需要人工干涉破停。而Keepalived的核心是VRRP協(xié)議,VRRP(Vritrual Router Redundancy Protocol,虛擬路由冗余協(xié)議) 主要實(shí)現(xiàn)了在路由器或三層交換機(jī)處的冗余尉剩,通過VRRP可以實(shí)現(xiàn)網(wǎng)絡(luò)不間斷穩(wěn)定運(yùn)行真慢,因此Keepalvied 一方面具有服務(wù)器狀態(tài)檢測和故障隔離功能,另外一方面也有HA cluster功能边涕,下面介紹一下VRRP協(xié)議實(shí)現(xiàn)的過程晤碘。

VRRP協(xié)議與工作原理

虛擬路由冗余協(xié)議(Virtual Router Redundancy Protocol褂微,簡稱VRRP) VRRP是一種路由容錯協(xié)議,也可以叫做備份路由協(xié)議园爷。VRRP可以將兩臺或者多臺物理路由器設(shè)備虛擬成一個虛擬路由宠蚂,這個虛擬路由器通過虛擬IP對外提供服務(wù),而在虛擬路由器內(nèi)部有多個物理路由器協(xié)同工作童社,同一時間只有一臺物理路由器對外提供服務(wù)求厕,這臺物理路由設(shè)備被設(shè)置成為:主路由器(Master角色),一般情況下Master是由選舉算法產(chǎn)生扰楼,它擁有對外服務(wù)的虛擬IP呀癣,提供各種網(wǎng)絡(luò)功能,而且其它的物理路由器不擁有對外的虛擬IP弦赖,也不提供對外網(wǎng)絡(luò)功能项栏,僅僅接收MASTER的VRRP狀態(tài)通告信息,這些路由器被統(tǒng)稱為“BACKUP的角色”蹬竖,當(dāng)主路由器失敗時沼沈,處于BACKUP角色的備份路由器將重新進(jìn)行選舉,產(chǎn)生一個新的主路由器進(jìn)入MASTER角色币厕,繼續(xù)提供對外服務(wù)列另,這種選舉角色切換非常之快,因而保證了服務(wù)的持續(xù)可用性旦装。

Keepalvied的工作原理

Keepalived是通過VRRP協(xié)議實(shí)現(xiàn)高可用性的页衙,Keepalived作為一個高性能集群軟件,它還能實(shí)現(xiàn)對集群中服務(wù)器運(yùn)行狀態(tài)的監(jiān)控以及故障隔離阴绢。

Keepalived工作在TCP/IP 參考模型的 三層店乐、四層、五層旱函,也就是分別為:網(wǎng)絡(luò)層响巢,傳輸層和應(yīng)用層,根據(jù)TCP棒妨、IP參數(shù)模型隔層所能實(shí)現(xiàn)的功能踪古,Keepalived運(yùn)行機(jī)制如下:

在網(wǎng)絡(luò)層: Keepalived在網(wǎng)絡(luò)層采用最常見的工作方式是通過ICMP協(xié)議向服務(wù)器集群中的每一個節(jié)點(diǎn)發(fā)送一個ICMP數(shù)據(jù)包,如果某個節(jié)點(diǎn)沒有返回響應(yīng)數(shù)據(jù)包券腔,那么認(rèn)為該節(jié)點(diǎn)發(fā)生了故障伏穆,Keepalived將報(bào)告這個節(jié)點(diǎn)失效,并從服務(wù)器集群中剔除故障節(jié)點(diǎn)纷纫。

在傳輸層: Keepalived在傳輸層里利用了TCP協(xié)議的端口連接和掃描技術(shù)來判斷集群節(jié)點(diǎn)的端口是否正常枕扫,比如對于常見的WEB服務(wù)器80端口∪杩或者SSH服務(wù)22端口烟瞧,Keepalived一旦在傳輸層探測到這些端口號沒有數(shù)據(jù)響應(yīng)和數(shù)據(jù)返回诗鸭,就認(rèn)為這些端口發(fā)生異常,然后強(qiáng)制將這些端口所對應(yīng)的節(jié)點(diǎn)從服務(wù)器集群中剔除掉参滴。

在應(yīng)用層:可以通過編寫程序或者腳本來運(yùn)行Keepalived强岸,而Keepalived將根據(jù)用戶的設(shè)定參數(shù)檢測各種程序或者服務(wù)是否允許正常,如果Keepalived的檢測結(jié)果和用戶設(shè)定的不一致時砾赔,Keepalived將把對應(yīng)的服務(wù)器從服務(wù)器集群中剔除

相關(guān)術(shù)語:
  • LB (Load Balancer 負(fù)載均衡)
  • HA (High Available 高可用)
  • Failover (失敗切換)
  • Cluster (集群)
  • LVS (Linux Virtual Server Linux 虛擬服務(wù)器)
  • DS (Director Server)蝌箍,指的是前端負(fù)載均衡器節(jié)點(diǎn)
  • RS (Real Server),后端真實(shí)的工作服務(wù)器
  • VIP (Virtual IP)暴心,虛擬的 IP 地址妓盲,向外部直接面向用戶請求,作為用戶請求的目標(biāo)的 IP 地址
  • DIP (Director IP)专普,主要用于和內(nèi)部主機(jī)通訊的 IP 地址
  • RIP (Real Server IP)悯衬,后端服務(wù)器的 IP 地址
  • CIP (Client IP),訪問客戶端的 IP 地址
名稱 IP地址
LVS-Master 10.239.103.51
LVS-Backup 10.239.103.52
Web-A 10.239.103.53
Web-B 10.239.103.54
Web-C 10.239.103.55
VIP 10.239.103.250
LVS-Master/LVS-Backup 安裝ipvs
# 安裝lvs
yum -y install ipvsadm
# ipvsadm:命令行工具, 用于管理集群服務(wù)及集群服務(wù)上的RS等

# ipvs: 工作于內(nèi)核上的程序, 可根據(jù)用戶定義的集群實(shí)現(xiàn)請求轉(zhuǎn)發(fā)

modprobe ip_vs #重載 ipvs 模塊
lsmod | grep ip_vs

yum -y install gcc
yum -y install openssl-devel
LVS-Master/LVS-Backup 安裝keepalived
cd /usr/local/src
tar -zxvf keepalived-1.4.0.tar.gz
cd keepalived-1.4.0
./configure --prefix=/usr/local/keepalived
make && make install
keepalived.conf 配置示例
# /usr/local/keepalived/etc/keepalived/keepalived.conf

global_defs {  #全局配置部分
notification_email {
        acassen@firewall.loc     #設(shè)置報(bào)警郵件地址脆诉,可以設(shè)置多個甚亭,每行一個贷币。
        failover@firewall.loc    #需開啟本機(jī)的sendmail服務(wù)
        sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc  #設(shè)置郵件的發(fā)送地址
    smtp_server 127.0.0.1      #設(shè)置smtp server地址
    smtp_connect_timeout 30    #設(shè)置連接smtp server的超時時間
    router_id LVS_DEVEL        #表示運(yùn)行keepalived服務(wù)器的一個標(biāo)識击胜。發(fā)郵件時顯示在郵件主題的信息
    
   vrrp_skip_check_adv_addr  
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {    #vrrp實(shí)例定義部分
    state MASTER     #指定keepalived的角色,MASTER表示此主機(jī)是主服務(wù)器役纹,BACKUP表示此主機(jī)是備用服務(wù)器
    interface eth0    #指定HA監(jiān)測網(wǎng)絡(luò)的接口
    virtual_router_id 60  #虛擬路由標(biāo)識偶摔,這個標(biāo)識是一個數(shù)字,同一個vrrp實(shí)例使用唯一的標(biāo)識促脉。即同一vrrp_instance下辰斋,MASTER和BACKUP必須是一致的
    priority 100    #定義優(yōu)先級,數(shù)字越大優(yōu)先級越高瘸味,在一個vrrp——instance下宫仗,master的優(yōu)先級必須大于backup
    advert_int 1    #設(shè)定master與backup負(fù)載均衡器之間同步檢查的時間間隔,單位是秒
    unicast_src_ip 10.239.103.51
    unicast_peer {
        10.239.103.52
    }
    authentication {  #設(shè)置驗(yàn)證類型和密碼
        auth_type PASS  #主要有PASS和AH兩種
        auth_pass 1111  #驗(yàn)證密碼旁仿,同一個vrrp_instance下MASTER和BACKUP密碼必須相同
    }
    virtual_ipaddress {  #設(shè)置虛擬ip地址藕夫,可以設(shè)置多個,每行一個
        10.239.103.250
    }
}

virtual_server 10.239.103.250 80 {  #設(shè)置虛擬服務(wù)器枯冈,需要指定虛擬ip和服務(wù)端口
    delay_loop 3    #健康檢查時間間隔
    lb_algo rr     #負(fù)載均衡調(diào)度算法
    lb_kind DR    #負(fù)載均衡轉(zhuǎn)發(fā)規(guī)則
   net_mask 255.255.255.0
    persistence_timeout 50    #設(shè)置會話保持時間毅贮,對動態(tài)網(wǎng)頁非常有用
    protocol TCP    #指定轉(zhuǎn)發(fā)協(xié)議類型,有TCP和UDP兩種

    real_server 10.239.103.53 31080 {  #配置服務(wù)器節(jié)點(diǎn)1尘奏,需要指定real server的真實(shí)IP地址和端口
        weight 1    #配置服務(wù)節(jié)點(diǎn)的權(quán)值滩褥,權(quán)值大小用數(shù)字表示,數(shù)字越大炫加,權(quán)值越高瑰煎,設(shè)置權(quán)值大小可以為不同性能的服務(wù)器
            TCP_CHECK {     #realserver的狀態(tài)監(jiān)測設(shè)置部分單位秒 TCP_CHECK { :注意TCK_CHECK和 {之間有一個空格铺然,忘記打這個空格的話,可能會出現(xiàn)后面用ipvsadm查看時酒甸,某個RS查看不到
            connect_timeout 3    #超時時間
            nb_get_retry 3      #重試次數(shù)
            delay_before_retry 3    #重試間隔
            connect_port 31080      #監(jiān)測端口
        }
    }
    real_server 10.239.103.54 31080 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 31080
      }
    }
    real_server 10.239.103.55 31080 {
        weight 1
        TCP_CHECK {
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        connect_port 31080
      }
    }
}
LVS-Master配置keepalived.conf
global_defs {
   router_id keep_101
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 60
    priority 90
    advert_int 1
    unicast_src_ip 10.239.103.51
    unicast_peer {
        10.239.103.52
    }
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       10.239.103.250
    }
}
virtual_server 10.239.103.250 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
    net_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP
    real_server 10.239.103.53 31080 {
      weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
        }
    }
   real_server 10.239.103.54 31080 {
        weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
      }
    }
    real_server 10.239.103.55 31080 {
        weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
      }
  }
}
LVS-Backup配置keepalived.conf
global_defs {
   router_id keep_102
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 60
    priority 100
    advert_int 1
    unicast_src_ip 10.239.103.51
    unicast_peer {
        10.239.103.52
    }
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       10.239.103.250
    }
}
virtual_server 10.239.103.250 80 {
    delay_loop 3
    lb_algo rr
    lb_kind DR
    net_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP
    real_server 10.239.103.53 31080 {
      weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
        }
    }
   real_server 10.239.103.54 31080 {
        weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
      }
    }
    real_server 10.239.103.55 31080 {
        weight 1
        TCP_CHECK {
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
          connect_port 31080
      }
  }
}

LVS-Master/LVS-Backup keepalived注冊系統(tǒng)服務(wù)

mkdir /etc/keepalived  
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/  
# 復(fù)制 keepalived 服務(wù)腳本到默認(rèn)的地址
cp /usr/local/src/keepalived-2.2.7/keepalived/etc/init.d/keepalived /etc/init.d/  
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 

systemctl start keepalived

# 查看VIP映射關(guān)系
ipvsadm -L

realserver.sh

#!/bin/bash
#description: Config realserver

VIP=10.239.103.250

/etc/rc.d/init.d/functions

case "$1" in
start)
       /sbin/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
       sysctl -p >/dev/null 2>&1
       echo "RealServer Start OK"
       ;;
stop)
       /sbin/ifconfig lo:0 down
       /sbin/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

Web-A/Web-B/Web-C執(zhí)行realserver.sh

vim /usr/local/server/realserver.sh
chmod 755 /usr/local/server/realserver.sh
realserver.sh start
realserver.sh stop
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末探熔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烘挫,更是在濱河造成了極大的恐慌诀艰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饮六,死亡現(xiàn)場離奇詭異其垄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)卤橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門绿满,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窟扑,你說我怎么就攤上這事喇颁。” “怎么了嚎货?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵橘霎,是天一觀的道長。 經(jīng)常有香客問我殖属,道長姐叁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任洗显,我火速辦了婚禮外潜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挠唆。我一直安慰自己处窥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布玄组。 她就那樣靜靜地躺著滔驾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巧勤。 梳的紋絲不亂的頭發(fā)上嵌灰,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音颅悉,去河邊找鬼沽瞭。 笑死,一個胖子當(dāng)著我的面吹牛剩瓶,可吹牛的內(nèi)容都是我干的驹溃。 我是一名探鬼主播城丧,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼豌鹤!你這毒婦竟也來了亡哄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤布疙,失蹤者是張志新(化名)和其女友劉穎蚊惯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灵临,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡截型,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了儒溉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宦焦。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖顿涣,靈堂內(nèi)的尸體忽然破棺而出波闹,到底是詐尸還是另有隱情,我是刑警寧澤涛碑,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布精堕,位于F島的核電站,受9級特大地震影響锌唾,放射性物質(zhì)發(fā)生泄漏锄码。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一晌涕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痛悯,春花似錦余黎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至扭仁,卻和暖如春垮衷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乖坠。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工搀突, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人熊泵。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓仰迁,卻偏偏與公主長得像甸昏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子徐许,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容