1. 程式人生 > >lvs負載均衡的四種模式原理,LVS之DR模型,LVS+keeaplived實現負載均衡,keepalived實現高可用

lvs負載均衡的四種模式原理,LVS之DR模型,LVS+keeaplived實現負載均衡,keepalived實現高可用

一,LVS的簡介:

Linux virtual system,是由目前阿里著名工程師章文嵩開發的一寬開源的軟體。LVS工作在一臺server上提供Directory(負載均衡器)的功能,它本身並不提供任何服務,只是把特定的請求轉發給對應的realserver(後端真正的服務主機),通過對後端伺服器的排程完成叢集環境中的負載均衡。
LVS的核心元件為iipvs,工作在kernel中,是真正的用於實現根據排程策略把客戶端的請求轉發到RS。另一元件為ipvsadm,工作在使用者空間,用於讓使用者定義ipvs規則的工具。所以我們只需要在server上安裝ipvsadm就可以定義ipvs規則,並且在linux kernel的2.6版本以後是直接支援ipvs的,不需要編譯核心

二,lvs的四種模式:

1,lvs的DR模式:

工作原理結構:
這裡寫圖片描述
工作原理:
**負載排程器中只負責排程請求,而伺服器直接將響應返回給客戶,可以極大地提
高整個集群系統的吞吐量。跟 VS/TUN 相比,這種方法沒有 IP 隧道的開銷,但調度器和伺服器組都必須在物理上有一個網絡卡通過不分斷的區域網相連,如通過交換機或者高速的 HUB 相連。VIP 地址為排程器和伺服器組共享,排程器配置的 VIP 地址是對外可見的,用於接收虛擬服務的請求報文;所有的伺服器把 VIP 地址配置在各自的 Non-ARP 網路裝置上,它對外面是不可見的,只是用於處 理目標地址為VIP 的網路請求。**
例項場景裝置清單:
這裡寫圖片描述


說明:我這裡為了方便,client 是與 vip 同一網段的機器。如果是外部的使用者訪問,將 client 替換成gateway 即可,因為 IP 包頭是不變的,變的只是源 mac 地址。
1 client 向目標 vip 發出請求,Director 接收。此時 IP 包頭及資料幀頭資訊如下:
這裡寫圖片描述
2 VS 根據負載均衡演算法選擇一臺 active 的 realserver(假設是 192.168.57.122),將此 RIP 所在網絡卡的 mac 地址作為目標 mac 地址,傳送到局域網裡。此時 IP 包頭及資料幀頭資訊如下:
這裡寫圖片描述
3 realserver(192.168.57.122)在區域網中收到這個幀,拆開後發現目標 IP(VIP)與本地匹配,於是處理這個報文。隨後重新封裝報文,傳送到區域網。此時 IP 包頭及資料幀頭資訊如下:
這裡寫圖片描述

4 如果 client 與 VS 同一網段,那麼 client(192.168.57.135)將收到這個回覆報文。如果跨了網段,那麼報文通過 gateway/路由器經由 Internet 返回給使用者

關於DR模式常見的問題:
1. LVS/DR 如何處理請求報文的,會修改 IP 包內容嗎?
vs/dr 本身不會關心 IP 層以上的資訊,即使是埠號也是 tcp/ip 協議棧去判斷是否正確,vs/dr 本身主要做這麼幾個事:
1)接收 client 的請求,根據你設定的負載均衡演算法選取一臺 realserver 的 ip;
2)以選取的這個 ip 對應的 mac 地址作為目標 mac,然後重新將 IP 包封裝成幀轉發給這臺 RS;
3)在 hashtable 中記錄連線資訊。
vs/dr 做的事情很少,也很簡單,所以它的效率很高,不比硬體負載均衡裝置差多少。
資料包、資料幀的大致流向是這樣的:client –> VS –> RS –> client
.
2. RealServer 為什麼要在 lo 介面上配置 VIP,在出口網絡卡上配置 VIP 可以嗎?
既然要讓 RS 能夠處理目標地址為 vip 的 IP 包,首先必須要讓 RS 能接收到這個包。
在 lo 上配置 vip 能夠完成接收包並將結果返回 client。
答案是不可以將 VIP 設定在出口網絡卡上,否則會響應客戶端的 arp request,造成 client/gateway arp table 紊亂,以至於整個 loadbalance 都不能正常工作。

  1. LVS/DR loadbalancer(director)與 RS 為什麼要在同一網段中?
    從第一個問題中大家應該明白 vs/dr 是如何將請求轉發給 RS 的了吧?它是在資料鏈路層來實現的,所以 director 必須和 RS 在同一網段裡面。

  2. 為什麼 director 上 eth0 介面除了 VIP 另外還要配一個 ip(即 DIP)?
    如果是用了 keepalived 等工具做 HA 或者 LoadBalance,則在健康檢查時需要用到 DIP
    沒有健康檢查機制的 HA 或者 Load Balance 則沒有存在的實際意義.

  3. LVS/DRip_forward 需要開啟嗎?
    不需要。因為 director 跟 realserver 是同一個網段,無需開啟轉發。

2.LVS的隧道模式(LVS-TUN):

IP隧道技術:是路由器把一種網路層協議封裝到另一個協議中以跨過網路傳送到另一個路由器的處理過程。IP 隧道(IP tunneling)是將一個IP報文封裝在另一個IP報文的技術,這可以使得目標為一個IP地址的資料報文能被封裝和轉發到另一個IP地址。IP隧道技術亦稱為IP封裝技術(IP encapsulation)。IP隧道主要用於移動主機和虛擬私有網路(Virtual Private Network),在其中隧道都是靜態建立的,隧道一端有一個IP地址,另一端也有唯一的IP地址。移動IPv4主要有三種隧道技術,它們分別是:IP in IP(ipip)、最小封裝(gre)以及通用路由封裝(sit)。這三種隧道技術都需要核心模組 tunnel4.ko 的支援。

ipip 需要核心模組 ipip.ko ,該方式最為簡單!但是你不能通過IP-in-IP隧道轉發廣播或者IPv6資料包。你只是連線了兩個一般情況下無法直接通訊的IPv4網路而已。
GRE 需要核心模組 ip_gre.ko ,GRE是最初由CISCO開發出來的隧道協議,能夠做一些IP-in-IP隧道做不到的事情。比如,你可以使用GRE隧道傳輸多播資料包和IPv6資料包。
sit 他的作用是連線 ipv4 與 ipv6 的網路。個人感覺不如gre使用廣泛 。

為建立隧道,隧道的客戶機和伺服器雙方必須使用相同的隧道協議。隧道技術可分別以第2層或第3層隧道協議為基礎。第2層隧道協議對應於OSI模型的資料鏈路層,使用幀作為資料交換單位。PPTP(點對點隧道協議)、L2TP(第二層隧道協議)和L2F(第2層轉發協議)都屬於第2層隧道協議,是將使用者資料封裝在點對點協議(PPP)幀中通過網際網路傳送。第3層隧道協議對應於OSI模型的網路層,使用包作為資料交換單位。IPIP(IP over IP)以及IPSec隧道模式屬於第3層隧道協議,是將IP包封裝在附加的IP包頭中,通過IP網路傳送。無論哪種隧道協議都是由傳輸的載體、不同的封裝格式以及使用者資料包組成的。它們的本質區別在於,使用者的資料包是被封裝在哪種資料包中在隧道中傳輸。

VS-TUN原理結構圖:
這裡寫圖片描述
原理:
VS/TUN 技術對伺服器有要求,即所有的伺服器**必須支援 “ IP Tunneling” 或者 “ IP
Encapsulation”協議。目前,VS/TUN 的後端伺服器主要執行 Linux 作業系統。在 VS/TUN 的集群系統中,負載排程器只將請求排程到不同的後端伺服器,後端伺服器將應答的資料直接返回給使用者這樣,負載排程器就可以處理大量的請求,它甚至可以調 度百臺以上的伺服器(同等規模的伺服器),而它不會成為系統的瓶頸。即使負載排程器只有 100Mbps的全雙工網絡卡,整個系統的最大吞吐量可超過 1Gbps。所以,VS/TUN 可以極大地增加負載排程器排程的伺服器數量。VS/TUN 排程器可以排程上百臺伺服器,而它本身不會成為系統的瓶頸**,可以 用來構建高效能的超級伺服器。

3,LVS/NAT模式:

首先client 傳送請求[package] 給VIP;VIP 收到package後,會根據LVS設定的LB演算法選擇一個合適的realserver,然後把package 的DST IP 修改為realserver;realserver 收到這個package後判斷dst ip 是自己,就處理這個package ,處理完後把這個包傳送給LVS VIP;LVS 收到這個package 後把sorce ip改成VIP的IP,dst ip改成 client ip然後傳送給client。
NAT 模式 package in 和package out 都需要經過VS ;因此VS 的可能會成為一個系統瓶頸問題。

4.fullnat模式:

fullnat模式和nat模式的區別在於,fullnat需要做四次ip地址轉換,客戶端(cip)發的請求先到達vip,做一次DNAT,將dip改編為lip,lip到rip,又一次SNAT,這是資料包傳到RS,同樣,RS將資料返回給client也需要兩次ip地址轉換。所以LVS負載均衡器和真實主機可以不在同一個vlan中, 而且真實主機只需要接入內網。
這裡寫圖片描述
看完上圖後發現 FULLNAT有一個問題是:RealServer無法獲得使用者IP;淘寶通過叫TOA的方式解決的,
主要原理是:將client address放到了TCP Option裡面帶給後端RealServer,RealServer收到後儲存在socket
的結構體裡並通過toa核心模組hook了getname函式,這樣當用戶呼叫getname獲取遠端地址時,返回的是保
存在socket的TCPOption的IP. 百度的BVS是通過叫ttm模組實現的,其實現方式跟toa基本一樣,只是沒有開源.

三,配置LVS

1,lvs實現負載均衡

server4上(VS)

#配置完整的yum源:
[[email protected] yum.repos.d]# vim rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.92.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.92.250/rhel6.5/LoadBalancer
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.92.250/rhel6.5/HighAvailability
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.92.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.92.250/rhel6.5/ScalableFileSystem
gpgcheck=0

#安裝ipvsadm:
yum install -y ipvsadm
#新增ipvs的策略
ip addr add 172.25.92.100/24 dev eth0   #新增vip
-A -t 172.25.92.100:80 -s rr    #指定172.25.92.100為vs(排程器),使用rr排程策略
#新增兩個(RS)
-a -t 172.25.92.100:80 -r 172.25.92.5:80 -g -w 1
-a -t 172.25.92.100:80 -r 172.25.92.6:80 -g -w 1
/etc/init.d/ipvsadm save    #儲存策略
/etc/init.d/ipvsadm start

[[email protected] ~]# ipvsadm -Ln  #檢視策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.92.100:80 rr
  -> 172.25.92.5:80               Route   1      0          0         
  -> 172.25.92.6:80               Route   1      0          0       

在server5和server6上:

/etc/init.d/httpd start     #開啟apche服務
yum install -y arptables_jf.x86_64  #安裝arptbles的管理工具
ip addr add 172.25.92.100/24 dev eth0   #新增vip
arptables -A IN -d 172.25.92.100 -j DROP    #丟棄對本機上172.25.92.100發來的所有資料包
arptables -A OUT -s 172.25.92.100 -j mangle --mangle-ip-s 172.25.92.2        #隱藏vip,只是對外公佈自己的真實ip
/etc/init.d/arptables_jf save           #儲存arp策略

此處,也可通過修改核心來實現RS上的vip隱藏。

此處解釋:如果不再RS上新增arp規則,那麼在VS和RS組成的lan網中會有多個相同的ip生效(vip),這樣會導致資料流傳輸紊亂,所以需要隱藏RS的vip,只公佈RS的真實ip。

經測試;如果刪除VS主機上的vip,即取消排程器,但是RS(server5和server6)上的vip依然存在,在客戶端訪問:curl 172.25.92.100時依然會得到資料,但是此時的資料只是來自其中一臺RS,vip對應的mac地址也只是其中一臺RS,不能實現mac地址轉換,也失去了負載均衡的意義,但是卻依然可以傳輸資料包,說明如果不禁掉RS上的vip,在VS上的vip也存在時,是真正的會造成ip衝突。

測試:在172.25.254.92上:

[[email protected] Desktop]# curl 172.25.92.100
<h1>bbs.test.com</h1>
[[email protected] Desktop]# curl 172.25.92.100
<h1>www.test.com</h1>
[[email protected] Desktop]# curl 172.25.92.100
<h1>bbs.test.com</h1>
[[email protected] Desktop]# curl 172.25.92.100
<h1>www.test.com</h1>
可以看出來實現了負載均衡

2,lvs+ldirectord:

如果只是lvs負載均衡器的話,它本身沒有健康檢查機制,後端的RS就算宕掉了,VS上依然不會察覺,所以此處配合ldirectord實現後端的健康檢查
server4(VS)上:

[[email protected] ~]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm
[[email protected] ~]# rpm -ql ldirectord       #檢視配置檔案應該放的地方
/etc/ha.d
/etc/ha.d/resource.d
/etc/ha.d/resource.d/ldirectord
/etc/init.d/ldirectord
/etc/logrotate.d/ldirectord
/usr/lib/ocf/resource.d/heartbeat/ldirectord
/usr/sbin/ldirectord
/usr/share/doc/ldirectord-3.9.5
/usr/share/doc/ldirectord-3.9.5/COPYING
/usr/share/doc/ldirectord-3.9.5/ldirectord.cf
/usr/share/man/man8/ldirectord.8.gz
[[email protected] ~]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/ #將ldirectord的配置檔案放在此處
cp: overwrite `/etc/ha.d/ldirectord.cf'? y
[[email protected] ~]# cd /etc/ha.d/    

[[email protected] ha.d]# vim ldirectord.cf      #編輯配置檔案
25 virtual=172.25.92.100:80     #修改為vip地址
 26         real=172.25.92.5:80 gate    #指定RS
 27         real=172.25.92.6:80 gate
 28         fallback=127.0.0.1:80 gate  #當所有的RS都宕掉後,使用本地地址迴應,此時應該回饋給客戶的應該是提示資訊,如“此網站正在維護“
 29         service=http
 30         scheduler=rr          #排程演算法rr
 31         #persistent=600       #持續時間,針對服務,ftp應該設定持續時間
 32         #netmask=255.255.255.255
 33         protocol=tcp
 34         checktype=negotiate
 35         checkport=80
 36         request="index.html"
 37         #receive="Test Page"  #註釋掉
 38         #virtualhost=www.x.y.z #註釋掉

[[email protected] ha.d]# /etc/init.d/ipvsadm stop   #關掉ipvs原本的策略
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Unloading modules:                                [  OK  ]
[root[email protected] ha.d]# ipvsadm -Ln    #檢視,沒有策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[[email protected] ha.d]# /etc/init.d/ldirectord start   #開啟ldirectord,配置檔案的策略自動載入進去
Starting ldirectord... success
[[email protected] ha.d]# ipvsadm -Ln   #檢視,策略存在
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.92.100:80 rr
  -> 172.25.92.5:80               Route   1      0          0         
  -> 172.25.92.6:80               Route   1      0          0   
 InActConn:處理請求的次數

測試:
RS(server5和server6)分別停掉apache服務,可以在VS上檢測到,直到最後只剩下本地地址作為RS

[root@server5 ~]# /etc/init.d/httpd stop       #server5上的apache關閉
Stopping httpd:                                            [  OK  ]
[root@server4 ha.d]# ipvsadm -Ln            #server4上發現server5不存在了
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.92.100:80 rr
  -> 172.25.92.6:80               Route   1      0          1    
  [root@server6 ~]# /etc/init.d/httpd stop          #server6上的apache停掉
Stopping httpd:                                            [  OK  ]
[root@server4 ha.d]# ipvsadm -Ln                   #server4上只剩下了本地地址
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.92.100:80 rr
  -> 127.0.0.1:80                 Local   1      0          0        
通過測試可以發現ldirectord可以實現lvs的後端健康檢測。

3,LVS+keepalived實現負載均衡:

keepalived同樣可以對lvs後端主機實現健康檢查,同樣也可以實現排程器高可用,架設多個keepalived可以實現高可用。
應該注意的是ldirectord和keepalived只能開啟一個,開啟兩個會衝突。ldirectord預設開啟的
server4(RS)上:

 #安裝keepalived: 

 get keepalived-1.3.6.tar.gz 
 tar zxf keepalived-1.3.6.tar.gz        #解壓包
 cd keepalived-1.3.6
 less INSTALL                          #檢視安裝文件,安裝依賴的包
yum install -y openssl-devel libnl-devel ipset-devel iptables-devel   libnfnetlink-devel-1.0.0-1.el6.x86_64.rpm   #安裝依賴庫和包
cd keepalived-1.3.6
./configure --prefix=/usr/local/keepalived     --with-init=SYSV
make && make install
ln -s /usr/local/keepalived/etc/keepalived /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
which keepalived
cd /usr/local/keepalived/etc/rc.d/init.d
chmod +x keepalived             #加執行許可權才能啟動
到此keepalived完成安裝

LVS(DR)+keepalived

vim /etc/keepalived/keepalived.conf 
global_defs {
   notification_email {
    root@localhost       #健康檢查報告通知郵箱
   }

   notification_email_from keepalived@loaclhost    #傳送郵件的地址
   smtp_server 127.0.0.1     #郵件伺服器
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict             #此處應該註釋掉,否則開啟keepalived後會預設將vip(172.25.92.100)加入到iptables的禁止訪問列表中,可以通過iptables -L看到
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
#實現高可用的配置段
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 92       #標示號要修改
    priority 100
    advert_int 1               #健康檢測頻率     
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {        #vip新增策略
        172.25.92.100
         }
}
#apache服務的負載均衡
virtual_server 172.25.92.100 80 {    #定義虛擬主機(排程器)
    delay_loop 1                     #RS宕掉後反應時間
    lb_algo rr                       #排程演算法rr  
    lb_kind DR                       #DR模型  
    #persistence_timeout 50          #持續連線一臺RS的時間,對於ftp服務需要開啟
    protocol TCP
    #RS健康檢查機制
    real_server 172.25.92.5 80 {
        weight 1
    TCP_CHECK {                 #使用TCP_CHECK方式檢查
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 172.25.92.6 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
#ftp服務的負載均衡:
virtual_server 172.25.92.100 21 {
    delay_loop 1
    lb_algo rr
    lb_kind DR
    persistence_timeout 50  #ftp服務需要保持持續連線時間,防止傳輸的資料流中斷
    protocol TCP

    real_server 172.25.92.5 21 {
        weight 1
        TCP_CHECK {
            connect_port 21
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

    real_server 172.25.92.6 21 {
        weight 1
        TCP_CHECK {
            connect_port 21
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

   檔案中後面的全部刪除

實現ftp服務需要在servr5和server6上的做法:

yum install -y vsftpd
cd /var/ftp/
然後server5touch一個名為 server5的檔案
server6 touch 一個名為server6的檔案,方便測試
/etc/init.d/vsftpd start

apache服務負載均衡測試:
server4(VS)上:

/etc/init.d/ipvsadm stop        #關閉ipvs,開啟keepalived後會自動載入keepalived配置檔案中的策略
/etc/init.d/ldirectord stop     #關閉ldirectord,防止影響keepalived
[root@server4 ~]# ipvsadm -Ln           #檢視策略,此時沒有
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

ip addr del 172.25.92.100/24 dev eth0
[root@server4 ~]# /etc/init.d/keepalived start
可以看到加在配置檔案中的策略
在主機上使用命令:curl www.test.com,可以體現負載均衡。同時,宕掉一個server之後,在VS使用ivsadm -L 檢視不到了,即實現了健康檢查。

ftp服務負載均衡測試:

在主機上:lftp 172.25.92.100
ls
可以看見有server5或server6檔案
當關閉其中以一臺主機的ftp時,自動切換到另一臺主機的ftp伺服器。
兩臺不同的主機同時使用lftp 172.25.92.100,一個登陸的是server5,一個登陸的是server6,即實現了負載均衡。

注意:如果配置過程中出現問題:
第一,檢視資料包是否經過排程器(InActConn)
第二,檢視RS是否有arptables策略,以及RS是否有vip
第三,在主機上過濾arp的資訊(arp -an | grep 100)檢視vip對應的mac地址

4,keepalived高可用:

keepalived可以實現負載均衡,但是隻有一臺keepalived主機時,如果它宕掉了,則資料不能轉發,更不可能有負載均衡了,所以需要配置另一臺keepalived實現高可用。即主備keepalived,一臺主機上的keepalived懷掉了,可以由備份keepalived接管負載均衡排程。
server7上:

server4:scp /usr/local/keepalived 172.25.92.7:/usr/local/
server7:
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
which keepalived
cd /usr/local/keepalived/etc/rc.d/init.d/
chmod +x keepalived 
/etc/init.d/keepalived start
檢視日誌可以看到:
[[email protected] init.d]# tail -f /var/log/messages
Jan 22 11:14:18 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) Received advert with higher priority 100, ours 90
Jan 22 11:14:18 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) **Entering BACKUP STATE**
Jan 22 11:14:18 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) removing protocol VIPs.

#關閉server1上的keepalived:
[[email protected] init.d]# tail -f /var/log/messages
Jan 22 11:15:52 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) Transition to **MASTER STATE**
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) Entering MASTER STATE
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) setting protocol VIPs.
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 172.25.92.100
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:53 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:58 server7 Keepalived_vrrp[5191]: Sending gratuitous ARP on eth0 for 172.25.92.100
Jan 22 11:15:58 server7 Keepalived_vrrp[5191]: VRRP_Instance(VI_1) Sending/queueing gratuitous ARPs on eth0 for 172.25.92.100
#可以看見server7上的keepalived變為主排程器

keealived三個程序,一個主程序,另兩個一個是機那康檢查,一個是高可用
[[email protected] ~]# ps ax
可以看到keepalived由三個程序;
1038 ?        Ss     0:00 keepalived -D
 1040 ?        S      0:00 keepalived -D
 1041 ?        S      0:00 keepalived -D
keealived三個程序,一個主程序,另兩個一個是負責健康檢查,一個是負責高可用

可以檢視程序之間的關係:
cat /proc/1038/status
這裡寫圖片描述
cat /proc/1040/status
這裡寫圖片描述
cat /proc/1041/status
這裡寫圖片描述
可以看見主程序為1038

相關推薦

lvs負載均衡模式原理LVSDR模型LVS+keeaplived實現負載均衡keepalived實現可用

一,LVS的簡介: Linux virtual system,是由目前阿里著名工程師章文嵩開發的一寬開源的軟體。LVS工作在一臺server上提供Directory(負載均衡器)的功能,它本身並不提供任何服務,只是把特定的請求轉發給對應的realserver(

LVS基礎-模式原理實現

簡介 LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。現在 LVS 已經是 Linux 核心標準的一部分。使用 LVS

LVS負載均衡模式實現

地址轉換 基礎 可見 技術 image 實現 被集成 設置 log 何為lvs負載均衡? lvs負載均衡(linux virtual server)又名linux虛擬服務器。由章文嵩博士主導的負載均衡項目,目前LVS已經被集成到Linux內核模塊中。該項目在Linux內核中

Cluster了解+LB{ LVS模式)+ipvs+lvs持久連接 }

inpu 網卡 netmask pvs 交互 eas sch 用戶空間 bash Cluster: 系統擴展的兩種思路: scale up:向上擴展 -- 性能更好的主機,替換舊的主機 scale out:橫向擴展 -- 添加服務器

javaScript 建立物件的方式的模式探討this指向問題以及Jquery中物件的建立

在javaScript中,建立物件一共有四種方式,廢話少說:看程式碼 1  Json格式,字面量方式建立: <script> var persion ={ name:"xiaoheng",

叢集介紹、keepalived介紹、用keepalived配置可用叢集、負載均衡叢集介紹、LVS介紹 、LVS排程演算法、LVS NAT模式搭建

一、叢集介紹 Linux叢集根據功能劃分為兩大類:高可用和負載均衡。 高可用叢集 高可用叢集通常為2臺伺服器,一臺工作,另一臺作為冗餘,當提供服務的機器宕機時,冗餘將接替繼續提供服務。 實現高可用的開源軟體有:heartbeat、Keepalived,其中hea

Nginx 負載均衡4模式

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/80541464 本文出自【趙彥軍的部落格】 4 種負載均衡演算法 upstream 支援4種負載均衡排程演算法: A)輪詢(預設):每個請求按時間順序逐一分配到不同的後端伺服器; B)ip_

3D UI 互動和 攝像機的Clar Flags 模式Depth 深度理解Randerer path 渲染方式控制

1 3D UI 互動  將 精靈直接拖入3D場景 Spriter render       2D ui 放入3D場景中自動系統自動新增該元件  BOX collider元件    射線檢測  Button 元件        變色控制    點選事件 Event T

一文讀懂Redis的模式單機、主從、哨兵、叢集

少點程式碼,多點頭髮 本文已經被GitHub收錄,歡迎大家踴躍star 和 issues。 https://github.com/midou-tech/articles 入職第一週,我被坑了 最近剛入職新公司,本來想著這剛來新公司,一般都是熟悉熟悉公司同事,看看組內工程文件,找幾個demo自己練練手。 咳

大量資料也不在話下Spring Batch並行處理模式初探

# 1 前言 > 歡迎訪問[南瓜慢說 www.pkslow.com](https://www.pkslow.com/)獲取更多精彩文章! `Spring相關文章:`[Springboot-Cloud](https://www.pkslow.com/categories/springboot) 前

分組加密的模式(ECB、CBC、CFB、OFB)

奇偶校驗位 strong word text change 相同 分組 mes 這一 加密一般分為對稱加密(Symmetric Key Encryption)和非對稱加密(Asymmetric Key Encryption)。 對稱加密又分為分組加密和序列pass

使用文件進行數據存儲模式

append 視頻筆記 bsp private 存在 操作模式 mod 如果 tput 視頻筆記: 1.應用包名:唯一標識一個應用 2.使用文件進行數據存儲: (1)Context.MODE_PRIVATE: 默認操作模式,代表該文件是私有數據,只能被應用本身訪問,在該模式

對稱加密和分組加密中的模式(ECB、CBC、CFB、OFB)

模式 ips pos .cn 一個 密碼 明文模式 ref ipp 對稱加密和分組加密中的四種模式(ECB、CBC、CFB、OFB) 一. AES對稱加密:

數據庫模式的一般原則

程序代碼 記錄 之間 說明 模板 獨立 其余 采購員 差異 1. 什麽時候用“主擴展模式”?對象的個數不多;各個對象之間的屬性有一定差別;各個對象的屬性在數據庫設計階段能夠完全確定;各個擴展對象有獨立的、相對比較復雜的業務處理需求,此時用“主擴展模式”。將各個對

LVS + Keepalived 搭建可用負載均衡群集

sage smtp cfg 設置權限 拓撲 alived exports 輪詢 dex Keepalived 的設計目標是搭建高可用的 LVS 負載均衡群集,可以調用 ipvsadm 工具來創建虛擬服務器、管理服務器池,而不僅僅用作雙機熱備。使用 Keepalived 搭建

Linux網卡配置的模式以及防火墻設置的方式(CentOS 7.4)未完成

cmp netmask 如果 18C per 配置文件 匹配 .com cti 一、網卡配置的四種模式 1、直接修改配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTO代表地址的分配方式,有dhc

常見的 POST 提交數據方式(application/x-www-form-urlencodedmultipart/form-dataapplication/jsontext/xml)

.org api 低版本 數據格式 orb 交互 文件類型 告訴 eba HTTP/1.1 協議規定的 HTTP 請求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 這幾種。其中 POST 一般用來向服務端提交數據,本

Spark 的模式

mit 內核 資源管理 stand 開發 ike size vertical 參數 1.spark主要有四種運行模式:Loca 、standalone、yarn、mesos。   1)Local模式:在一臺機器上,一般用於開發測試   2)standalone模式:完全獨立

_038_Android_Android 檔案訪問許可權的模式

轉自https://www.cnblogs.com/wuyudong/p/5552833.html,感謝作者的無私分享。  Linux檔案的訪問許可權 * 在Android中,每一個應用是一個獨立的使用者 * drwxrwxrwx * 第1位:d表示資料夾,-表示檔案 * 第2-4位:

XSStrike原始碼閱讀(2)——模式

1.bruteforcer模式 功能介紹 根據使用者提供的payloads檔案去暴力測試每一個引數,以此來確定是否存在xss漏洞(說起來也就是一個兩層迴圈)。 具體實現 XSStrike3.0 bruteforcer.py原始碼如下: import copy from