主頁 >  其他 > LVS+KeepAlived高可用部署架構(超詳細)

LVS+KeepAlived高可用部署架構(超詳細)

2022-02-27 07:02:12 其他

1 構建高可用集群

1.1 什么是高可用集群

高可用集群(High Availability Cluster,簡稱HA Cluster),是指以減少服務中斷時間為目的得服務器集群技術,它通過保護用戶得業務程式對外部間斷提供的服務,把因為軟體,硬體,認為造成的故障對 業務得影響降低到最小程度,總而言之就是保證公司業務7*24小時不宕機,

1.2 高可用衡量標準

衡量集群的可用性(HA)高低,可以從MTTF(平均無故障時間)和MTTR(平均故障維修時間)進行考 量,公式為:HA=MTTF/(MTTF+MTTR)*100%,具體衡量標準可以參考下表

1.3 高可用保障

對集群中的服務器進行負載均衡、健康監測,并在服務器出現故障時能進行故障轉移,自動切換到正常服務器是高可用保障的必要手段,

1.3.1 負載均衡

常見的負載均衡手段如下:
硬體負載均衡,如F5 軟體負載均衡,如nginx、haproxy、lvs 幾種軟體負載均衡技術比較

1.3.2 健康監測和自動切換

常見的健康監測和自動切換軟體有keepAlived和heartBeat,其二者對比如下:
Keepalived使用更簡單:從安裝、配置、使用、維護等角度上對比,Keepalived都比Heartbeat要簡單;
Heartbeat功能更強大:Heartbeat雖然復雜,但功能更強大,配套工具更全,適合做大型集群管理,而Keepalived主要用于集群倒換,基本沒有管理功能,

1.4 高可用拓撲圖

2 軟體負載均衡技術LVS

2.1 LVS簡介

2.1.1 什么是lvs

LVS是Linux Virtual Server的簡寫,在1998年5月由章文嵩博士成立, 作業在OSI模型的四層,基于IP進行負載均衡, 在linux2.2內核時,IPVS就已經以內核補丁的形式出現, 從2.4版本以后,IPVS已經成為linux官方標準內核的一部分,

2.1.2 LVS官方資料鏈接

  1. lvs專案介紹 [http://www.linuxvirtualserver.org/zh/lvs1.html]
  2. lvs集群的體系結構 [http://www.linuxvirtualserver.org/zh/lvs2.html]
  3. lvs集群中的IP負載均衡技術 [http://www.linuxvirtualserver.org/zh/lvs3.html]
  4. lvs集群的負載調度 [http://www.linuxvirtualserver.org/zh/lvs4.html]
  5. lvs中文站點 [http://zh.linuxvirtualserver.org]

2.2 LVS場景術語

LVS服務器(DS)
集群中節點服務器(RS)
虛擬IP地址(VIP),用于向客戶端提供服務的IP地址(配置于負載均衡器上)
真實服務器的IP地址(RIP), 集群中節點服務器的IP地址
負載均衡器IP地址(DIP),負載均衡器的IP地址,物理網卡上的IP
客戶端主機IP地址(CIP),終端請求用戶的主機IP地址

2.3 作業原理

LVS負載均衡調度技術是在linux內核中實作的,使用配置LVS時,不是直接配置內核中的IPVS,而是通 過IPVS的管理工具IPVSADM來管理配置,LVS集群負載均衡器接受所有入站客戶端的請求,并根據演算法 來決定由哪個集群的節點來處理請求,

2.4 LVS的四種作業模式

2.4.1 NAT模式

NAT(Network Address Translation)模式是基于NAT技術實作的,在此模式中,LVS服務器既要處理請求的接入,又要處理請求的回應,因此存在較大的性能瓶頸,

  1. 客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP(客戶端IP),后面統稱為CIP),目標地址為VIP(負載均衡器前端地址,后面統稱為VIP),
  2. 負載均衡器收到報文后,發現請求的是在規則里面存在的地址,那么它將客戶端請求報文的目標地址改為了后端服務器的RIP地址并將報文根據演算法發送出去,
  3. 報文送到Real Server后,由于報文的目標地址是自己,所以會回應該請求,并將回應報文返還給LVS,
  4. 然后lvs將此報文的源地址修改為本機并發送給客戶端,
    注意:在NAT模式中,Real Server的網關必須指向LVS,否則報文無法送達客戶端,
    NAT模式缺點
    擴展性有限,當服務器節點(普通PC服務器)增長過多時,負載均衡器將成為整個系統的瓶頸,因為所有的請求包和應答包的流向都經過負載均衡器,當服務器節點過多時,大量的資料包都交匯在負載均衡器那,速度就會變慢!

2.4.2 DR模式

DR(Direct Routing)模式是LVS的默認作業模式,也叫直接路由模式,只處理請求的接入,不處理請求的回應,因此性能高,瓶頸小,

  1. 客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP,目標地址為VIP,
  2. 負載均衡器收到報文后,發現請求的是在規則里面存在的地址,那么它將客戶端請求報文的源MAC地址改為自己DIP的MAC地址,目標MAC改為了RIP的MAC地址,并將此包發送給RS,
  3. RS發現請求報文中的目的MAC是自己,就會將次報文接收下來,處理完請求報文后,將回應報文通過lo介面送給eth0網卡直接發送給客戶端,
    注意:需要設定lo介面的VIP不能回應本地網路內的arp請求,
    優點
    負載均衡器也只是分發請求,應答包通過單獨的路由方法回傳給客戶端,因此DR模式的效率很高,但是配置稍微復雜一點,因此對于訪問量不是特別大的公司可以用Haproxy/Nginx取代,日1000-2000W PV或者并發請求1萬一下都可以考慮用Haproxy/Nginx,
    缺點:所有節點和調度器只能在一個局域網里面,

2.4.3 TUN模式(隧道模式)

  1. 客戶端將請求發往前端的負載均衡器,請求報文源地址是CIP,目標地址為VIP,
  2. 負載均衡器收到報文后,發現請求的是在規則里面存在的地址,那么它將在客戶端請求報文的首部再封裝一層IP報文,將源地址改為DIP,目標地址改為RIP,并將此包發送給RS,
  3. RS收到請求報文后,會首先拆開第一層封裝,然后發現里面還有一層IP首部的目標地址是自己lo介面上的VIP,所以會處理次請求報文,并將回應報文通過lo介面送給eth0網卡直接發送給客戶端,

注意:需要設定lo介面的VIP不能在共網上出現,
總結

  1. TUN模式必須在所有的 realserver 機器上面系結 VIP 的 IP 地址
  2. TUN模式的 vip ------>realserver 的包通信通過 TUNNEL 模式,不管是內網和外網都能通信,所以不需要 lvs vip 跟 realserver 在同一個網段內
  3. TUN模式 realserver 會把 packet 直接發給 client 不會給 lvs 了
  4. TUN模式走的隧道模式,所以運維起來比較難,所以一般不用,
    優點
    負載均衡器只負責將請求包分發給后端節點服務器,而RS將應答包直接發給用戶,所以,減少了負載均衡器的大量資料流動,負載均衡器不再是系統的瓶頸,就能處理很巨大的請求量,這種方式,一臺負載均衡器能夠為很多RS進行分發,而且跑在公網上就能進行不同地域的分發,
    缺點
    隧道模式的RS節點需要合法IP,這種方式需要所有的服務器支持”IP Tunneling”(IP Encapsulation)協議,服務器可能只局限在部分Linux系統上,

2.4.4 FULLNAT模式

淘寶定制化的技術,linux內核不支持
無論是 DR 還是 NAT 模式,不可避免的都有一個問題:LVS 和 RS 必須在同一個 VLAN 下,否則 LVS 無法作為 RS 的網關,
這引發的兩個問題是:

  1. 同一個 VLAN 的限制導致運維不方便,跨 VLAN 的 RS 無法接入,
  2. LVS 的水平擴展受到制約,當RS水平擴容時,總有一天其上的單點 LVS 會成為瓶頸,
    Full-NAT 由此而生,解決的是LVS和RS跨VLAN的問題,而跨VLAN問題解決后,LVS和RS不再存在VLAN上的從屬關系,可以做到多個LVS對應多個RS,解決水平擴容的問題,
    在包從 LVS 轉到 RS 的程序中,源地址從客戶端 IP 被替換成了 LVS 的內網 IP,內網 IP 之間可以通過多個交換機跨 VLAN 通信,當 RS 處理完接受到的包,回傳時,會將這個包回傳給 LVS 的內網 IP,這一步也不受限于 VLAN,LVS 收到包后,在 NAT 模式修改源地址的基礎上,再把 RS 發來的包中的目標地址從 LVS 內網 IP 改為客戶端的 IP,
    Full-NAT 主要的思想是把網關和其下機器的通信,改為了普通的網路通信,從而解決了跨 VLAN 的問題,采用這種方式,LVS 和 RS 的部署在 VLAN 上將不再有任何限制,大大提高了運維部署的便利性,

2.5 LVS 調度演算法

2.5.1 靜態調度演算法

  • RR:Round Robin 輪詢調度
  • WRR:Weighted RR 加權輪詢調度
  • SH:Source Hashing源地址哈希調度
  • DH:Destination Hashing目標地址哈希調度

2.5.2 動態調度演算法

  • LC:Least Connections最小連接數調度
  • WLC:Weighted LC加權最小連接數調度 (默認)
  • SED:Shortest Expection Delay初始連接高權重優先
  • NQ:Nerver Queue 第一輪平均分配,后續SED
  • LBLC:Locality-Based LC 動態的DH演算法
  • LBLCR:LBLC with Replication 帶復制功能的LBLC
  • FO: Weighted Fail Over,linux內核4.15后新增的調度演算法
  • OVF:Overflow-connection,linux內核4.15后新增的調度演算法

2.5.3 LVS 基本命令

對于lvs的操作,主要是通過ipvsadm軟體實作,Linux內核已集成lvs,常用的lvs操作命令如下:

  • 集群服務管理:
# 此命令用來添加一個lvs策略,IP指VIP,調度演算法是12種調度演算法 的一種
ipvsadm -A -t IP -s 調度演算法
# 此命令用來清除一個lvs策略
ipvsadm -C
# 此命令用來保存一個lvs策略
ipvsadm -S
# 此命令用來加載一個lvs策略
ipvsadm -R
# 此命令用來查看策略
ipvsadm -L
  • 集群RS管理
# 添加一臺RS,
# IP1指VIP
# IP2指RIP
# -m|g|i中m是NAT
# g是 DR,
ipvsadm -a -t IP1 -r IP2 - m|g|i
# 此命令用來洗掉一臺RS,IP1指VIP,IP2指RIP
ipvsadm -d -t IP1 -r IP2

2.6 LVS 實戰(DR模式)

ARP(Address Resolution Protocol)地址決議協議,是根據IP地址獲取物理地址 (MAC)的一個 TCP/IP協議,主機發送資訊時將包含目標IP地址的ARP請求廣播到局域網路上的 所有主機,并接收返 回訊息,以此確定目標的物理地址;收到回傳訊息后將該IP地址和物理地址 存入本機ARP快取中并 保留一定時間,下次請求時直接查詢ARP快取以節約資源,

2.6.1 DR模式服務器拓撲圖

服務器準備

  • LVS(Q110):CentOS7 DIP:192.168.88.110 VIP:192.168.88.88
  • RS1(Q111): CentOS7 RIP:192.168.88.111 VIP:192.168.88.88
  • RS2(Q112): CentOS7 RIP:192.168.88.112 VIP:192.168.88.88

2.6.2 DR模式實作

通過拓撲圖可以發現,需要讓LVS和RS在同一個網段,并且在兩個RS服務器上也需要系結VIP,操作步驟如下:

  1. 在兩臺RS服務器Q111和Q112上進行如下ARP抑制操作,并配置VIP到lo網卡上,如下:
# arp抑制,修改內核
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce

# 安裝ifconfig,centos7沒有ifconfig
yum install net-tools.x86_64 -y
# 配置VIP到lo網卡 這里的子網掩碼需要4個255,
ifconfig lo:8 192.168.88.88 netmask 255.255.255.255
# 查看IP
ifconfig


查看網關是否生效

[root@q111 ~]# route -n

  1. 在兩臺RS服務器Q111和Q112上都安裝httpd服務器(測驗使用):
# 下載安裝httpd服務,命令如下
yum install -y httpd
# 設定首頁內容(RS2把內容改為this is RS2)
echo this is RS01 > /var/www/html/index.html
# 啟動httpd
systemctl start httpd

通過單獨訪問192.168.88.111和192.168.88.112可以正常訪問,

  1. 在LVS服務器Q110上安裝ipvsadm,系結VIP192.168.88.88:
# 1)安裝ipvsadm
yum install -y ipvsadm
# 2)在lvs的ens33網卡上系結VIP192.168.88.100
ifconfig ens33:8 192.168.88.88/24
# 查看ip
ifconfig


4. LVS服務器上設定DR策略和負載規則

# 設定規則
ipvsadm -A -t 192.168.88.88:80 -s rr
# 添加RS
ipvsadm -a -t 192.168.88.88:80 -r 192.168.88.111 -g -w 1
ipvsadm -a -t 192.168.88.88:80 -r 192.168.88.112 -g -w 1
#查看策略
ipvsadm -Ln

  1. 驗證
    客戶端測驗:192.168.88.88,可以使用瀏覽器或者curl命令

LVS上查看調度情況

[root@q110 ~]# ipvsadm -Lnc

FIN_WAIT:正常情況

2.6.3 小結

以上以DR模型搭建了一套簡單的負載均衡環境,但是存在幾個問題:

  1. 如果LVS服務器掛了會出現什么問題?
  2. 如何進行故障轉移、自動切換?
  3. 如果后端某臺RS服務器掛了會出現什么問題?
  4. 如何獲知RS服務器狀態?
    解決方案:通過使用LVS+KeepAlived實作高可用架構,

3 KeepAlived

3.1 keepAlived簡介

Keepalived的作用是檢測服務器狀態,如果有一臺web服務器宕機,或作業出現故障,Keepalived將檢測到,并將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的作業,當服務器作業正常后Keepalived自動將服務器加入到服務器群中,

3.2 keepAlived特點

3.2.1 健康檢測

tcp_check
作業在第4層,keepalived向后端服務器發起一個tcp連接請求,如果后端服務器 沒有回應或超時,那么這個后端將從服務器池中移除,
http_get
作業在第5層,向指定的URL執行http請求,將得到的結果用md5加密并與指定的 md5值比較看是否匹配,不匹配則從服務器池中移除;此外還可以指定http回傳 碼來判斷檢測是否成功,HTTP_GET可以指定多個URL用于檢測,這個一臺服務器有多個虛擬主機的情況下比較好用,
misc_check
用腳本來檢測,腳本如果帶有引數,需將腳本和引數放入雙引號內,
ssl_get
和http_get相似,不同的只是用SSL連接,
smtp_check
主要用于郵件系統SMTP協議的檢測

3.2.2 故障遷移

VRRP協議
在現實的網路環境中,主機之間的通信都是通過配置靜態路由或者(默認網關)來完成的,而主機之間的 路由器一旦發生故障,通信就會失效,因此這種通信模式當中,路由器就成了一個單點瓶頸,為了解決 這個問題,就引入了VRRP協議,
VRRP協議是一種容錯的主備模式的協議,保證當主機的下一跳路由出現故障時,由另一臺路由器來代 替出現故障的路由器進行作業,通過VRRP可以在網路發生故障時透明的進行設備切換而不影響主機之 間的資料通信
故障遷移原理
在 Keepalived 服務正常作業時,主 Master 節點會不斷地向備節點發送(多播的方式)心跳訊息,用以告訴備 Backup 節點自己還活著,當主 Master 節點發生故障時,就無法發送心跳訊息,備節點也就 因此無法繼續檢測到來自主 Master 節點的心跳了,于是呼叫自身的接管程式,接管主 Master 節點的 IP 資源及服務,而當主 Master 節點恢復時,備 Backup 節點又會釋放主節點故障時自身接管的 IP 資源 及服務,恢復到原來的備用角色,

3.3 keepAlived原理

Keepalived作業在TCP/IP參考模型的三層、四層、五層,其原理如下:
網路層
Keepalived通過ICMP協議向服務器集群中的每一個節點發送一個ICMP資料包(有點類似與 Ping的功能),如果某個節點沒有回傳回應資料包,那么認為該節點發生了故障, Keepalived將報告這個節點失效,并從服務器集群中剔除故障節點,
傳輸層
Keepalived在傳輸層里利用了TCP協議的埠連接和掃描技術來判斷集群節點的埠是否 正常, 比如對于常見的WEB服務器80埠,或者SSH服務22埠,Keepalived一旦在傳輸 層探測到這些埠號沒有資料回應和資料回傳,就認為這些埠發生例外,然后強制將這些 埠所對應的節點從服務器集群中剔除掉,
應用層
Keepalived的運行方式更加全面化和復雜化,用戶可以通過自定義Keepalived作業方式, 例如:可以通過撰寫程式或者腳本來運行Keepalived,而Keepalived將根據用戶的設定參 數檢測各種程式或者服務是否正常,如果Keepalived的檢測結果和用戶設定的不一致時, Keepalived將把對應的服務器從服務器集群中剔除,

3.4 分布式選舉策略

3.4.1 僅設定priority

在一個一主多備的Keepalived集群中,priority值最大的將成為集群中的MASTER節點,而其他都是 BACKUP節點,在MASTER節點發生故障后,BACKUP節點之間將進行“民主選舉”,通過對節點優先級值 priority和weight的計算,選出新的MASTER節點接管集群服務,

3.4.2 設定priority和weight

weight值為正數時
在vrrp_script中指定的腳本如果檢測成功,那么MASTER節點的權值將是weight值與priority值之和;如 果腳本檢測失效,那么MASTER節點的權值保持為priority值
MASTER 節點vrrp_script腳本檢測失敗時,如果MASTER節點priority值小于BACKUP節點weight值與 priority值之和,將發生主、備切換,
MASTER節點vrrp_script腳本檢測成功時,如果MASTER節點weight值與priority值之和大于BACKUP節 點weight值與priority值之和,主節點依然為主節點,不發生切換,
weight值為負數時
在vrrp_script中指定的腳本如果檢測成功,那么MASTER節點的權值仍為priority值,當腳本檢測失敗時,MASTER節點的權值將是priority值與weight值之差 MASTER節點vrrp_script腳本檢測失敗時,如果MASTER節點priority值與weight值之差小于BACKUP節點priority值,將發生主、備切換, MASTER節點vrrp_scrip腳本檢測成功時,如果MASTER節點priority值大于BACKUP節點priority值時,主節點依然為主節點,不發生切換,
對于weight值的設定,有一個簡單的標準,即weight值的絕對值要大于MASTER和BACKUP節點priority 值之差,由此可見,對于weight值的設定要非常謹慎,如果設定不好,主節點發生故障時將導致集群角 色選舉失敗,使集群陷于癱瘓狀態,

4 LVS+keepAlived

4.1 網路拓撲圖

為了測驗lvs的高可用,這里需要增加一臺lvs服務器,需在此服務器上安裝ipvsadm,RS1 和 RS2保持不變,

4.2 keepAlived安裝和配置

4.2.1 安裝keepAlived

在兩臺lvs服務器上都需要安裝keepAlived,安裝命令如下:

yum install -y keepalived

keepAlived安裝完成后,在/etc/keepalived目錄下有一個keepalived.conf原組態檔,內容如下:

! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
#上面的配置無需關注,重點關注和修改下面的配置 
vrrp_instance VI_1 {
	#標識當前lvs是主,根據實際lvs服務器規劃確定,可選值
	state MASTER
	MASTER和BACKUP
	#lvs服務器提供服務器的網卡,根據實際服務器網卡進行修改
	interface eth0 
	#lvs提供的服務所屬ID,目前無需修改
	virtual_router_id 51
	#lvs服務器的優先級,主服務器最高,備份服務器要低于主服務器
	priority 100 
	# VRRP Multicast 廣播周期秒數
	advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
	}
	virtual_ipaddress {
        192.168.88.88/24 dev ens33 label ens33:8
    }
}
#virtual_ipaddress用于配置VIP和LVS服務器的網卡系結關系,一般需要修改 
#示例: 192.168.25.100/24 dev ens33 label ens33:9 
virtual_ipaddress {
        192.168.200.16
        192.168.200.17
        192.168.200.18
} }
#配置lvs服務策略,相當于ipvsadm -A -t 192.168.25.100:80 -s rr,一般需要修改 
virtual_server 192.168.200.100 443 {
	delay_loop 6
	#配置lvs調度演算法,默認輪詢
	lb_algo rr
	#配置lvs作業模式,可以改為DR
	lb_kind NAT
	#用于指定同一個client在多久內,只去請求第一次提供服務的RS,為查看輪詢效果,這里需要改為0
	persistence_timeout 50
	#TCP協議
	protocol TCP
	#配置RS資訊,相當于ipvsadm -a -t 192.168.25.100:80 -r 192.168.25.112 -g 
	real_server 192.168.201.100 443 {
		#當前RS的權重
		weight 1
		#SSL_GET健康檢查,一般改為HTTP_GET
		SSL_GET {
			#兩個url可以洗掉一個,url內的內容改為path /和status_code 200,digest洗掉 
			url {
				path /
				  digest ff20ad2481f97b1754ef3e12ecd3a9cc
			}
			url {
			  path /mrtg/
			  digest 9b3a0c85a887a256d6939da88aabd8cd
			}
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		} 
	}
}
#下面的配置實際是兩組lvs服務的配置,含義和上面的lvs服務配置一致,如果用不到,下面的配置可以全部 洗掉
virtual_server 10.10.10.2 1358 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
    sorry_server 192.168.200.200 1358
    real_server 192.168.200.2 1358 {
        weight 1
        HTTP_GET {
            url {
 ....

4.2.2 配置keepAlived

基于上述組態檔和實戰拓撲圖及服務器規劃,對兩臺lvs服務器分別修改keepalived.conf配置如下:
LVS主服務器(Q110)

! Configuration File for keepalived
global_defs {
   router_id LVS_DEVEL
}
vrrp_instance VI_1 { 
	#主服務器
	state MASTER 
	interface ens33 
	virtual_router_id 51 
	#優先級高
	priority 100
	advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.88.88/24 dev ens33 label ens33:8
	} 
}
virtual_server 192.168.88.88 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 0
    protocol TCP
    real_server 192.168.88.111 80 {
        weight 1
        HTTP_GET {
            url {
				path /
				status_code 200
			}
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		} 
	}
	real_server 192.168.88.112 80 {
        weight 1
        HTTP_GET {
            url {
				path /
				status_code 200
			}
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 3
		} 
	}
}

LVS備用服務器

# 拷貝主服務器配置到備用服務器并覆寫
scp /etc/keepalived/keepalived.conf [email protected]:`pwd`
# 進入備用服務器修改配置
vi /etc/keepalived/keepalived.conf
# 調整內容1:vrrp_instance VI_1 中state 改為 BACKUP,權重priority 50

注意:組態檔中的key和大括號之間一定要有空格

4.2.3 啟動keepAlived

在兩臺lvs服務器上分別啟動keepAlived,命令如下:

systemctl start keepalived

4.3 高可用測驗

4.3.1 測驗環境檢查

上述步驟執行完畢后,可以在lvs主服務器和備份服務器分別執行ifconfig命令,可以查看到VIP被系結到 了主服務器,如下:

4.3.2 測驗負載均衡

在客戶端發起請求,測驗負載均衡,如下:

# qin @ QinMac in ~ [8:54:24]
$ curl 192.168.88.88
this is RS02

# qin @ QinMac in ~ [8:56:05]
$ curl 192.168.88.88
this is RS01

# qin @ QinMac in ~ [8:56:15]
$ curl 192.168.88.88
this is RS02

# qin @ QinMac in ~ [8:56:16]
$ curl 192.168.88.88
this is RS01

4.3.3 測驗RS高可用

關閉一臺RS1后(這里可以使用systemctl stop httpd),客戶端繼續發起請求,查看是 否可以正常訪問,

# qin @ QinMac in ~ [8:56:19]
$ curl 192.168.88.88
this is RS02

# qin @ QinMac in ~ [9:01:21]
$ curl 192.168.88.88
this is RS02

# qin @ QinMac in ~ [9:01:23]
$ curl 192.168.88.88
this is RS02

會發現,此時客戶端可以正常訪問,但只有RS2在提供服務,這說明,keepAlived檢測到了RS1服務器例外,將其剔除了,
此時再啟動RS1服務器,客戶端繼續訪問,會發現回應結果如下,keepAlived檢測到RS1服務器恢復正 常,又將其加入服務串列了

4.3.4 測驗LVS高可用

測驗lvs主服務宕機
使用ifconfig 網卡名 down命令,關閉主服務器網卡,此時主服務器不能提供服務,觀察備份服務器是否將VIP系結到自己,以及客戶端是否可以繼續正常訪問,如下: 關閉主服務器網卡

[root@q110 keepalived]# ifconfig ens33 down

觀察備份服務器,會發現VIP已經系結過來了,這里實際是keepAlived檢測到了主服務器的例外,而做 出的故障轉移和自動切換,

觀察客戶端是否可以繼續正常訪問

# qin @ QinMac in ~ [9:02:32]
$ curl 192.168.88.88
this is RS01

# qin @ QinMac in ~ [9:04:24]
$ curl 192.168.88.88
this is RS02

測驗lvs主服務器恢復 上述測驗通過后,可以開啟主服務器網卡,讓其能夠提供服務,然后觀察VIP是否會回到主服務器, 開啟主服務器網卡

ifconfig ens33 up

查看主服務器和備份服務器
主服務器

備服務器

會發現,VIP重新系結到了主服務器,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433292.html

標籤:其他

上一篇:認識 LLVM

下一篇:leecode刷題1

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more