天天看點

LVS負載均衡群集前言1.企業群集應用概述2.企業群集分類3.負載均衡群集架構4.負載均衡群集工作模式分析5.LVS的負載排程算法6.小結7.LVS群集建立與管理8.LVS-DR模式9.LVS-DR-Keepalived小結

目錄

  • 前言
  • 1.企業群集應用概述
  • 2.企業群集分類
  • 3.負載均衡群集架構
  • 4.負載均衡群集工作模式分析
  • 5.LVS的負載排程算法
  • 6.小結
  • 7.LVS群集建立與管理
  • 8.LVS-DR模式
  • 9.LVS-DR-Keepalived
  • 小結

前言

1.了解LVS-DR工作的原理?掌握LVS-DR部署過程?

1.企業群集應用概述

1、群集的含義

cluster、叢集、群集

由多台主機構成,但對外隻表現為一個整體,隻提供一個通路入口(域名與I位址),相當于一台大型計算機。

2、問題

網際網路應用中,随着站點對硬體性能、響應速度、服務穩定性、資料可靠性等要求越來越高,單台伺服器已經無法滿足負載均衡及高可用性的要求。

3、解決方法

使用價格昂貴的小型機、大型機

使用多台相對廉價的普通伺服器建構服務叢集

通過整合多台伺服器,使用LVs來達到伺服器的高可用和負載均衡,并且同一個IP位址對外提供相同的服務。在企業中常用的一種叢集技術—LVS (Linux virtual server,Linux虛拟伺服器)

2.企業群集分類

1、根據群集所針對的目标差異,可分為三種類型、負載均衡群集

、高可用群集

3、高性能運算群集

2、負載均衡群集(Load Balance Cluster)

提高應用系統的響應能力、盡可能處理更多的通路請求、減少延遲為目标,獲得高并發、高負載(LE)的整體性能

IB的負載配置設定依賴于主節點的分流算法,将來自客戶機的通路請求分擔給多個伺服器節點,進而緩解整個系統的負載

3、高可用群集(High Availability cluster)

提高應用系統的可靠性、盡可能地減少中斷時間為目标,確定服務的連續性,達到高可用(HA)的容錯效果

HA的工作方式包括雙工和主從兩種模式,雙工即所有節點同時線上;主從則隻有主節點線上,但當出現故障時從節點能自動切換為主節點例如:"故障切換”、"雙機熱備”等

4、高性能運算群集(High Performance Computer Cluster)

以提高應用系統的CPU運算速度、擴充硬體資源和分析能力為目标,獲得相當于大型、超級計算機的高性能運算(HPC)能力

高性能依賴于"分布式運算"、“并行計算”,

通過專用硬體和軟體将多個伺服器的CPU、記憶體等資源整合在一起,實作隻有大型、超級計算機才具備的計算能力

3.負載均衡群集架構

1、負載均衡的結構

第一層,負載排程器(Load Balancer或Director)通路整個群集系統的l唯一入口,

對外使用所有伺服器共有的vIP位址,也稱為群集Ie她址。通常會配置主、備兩台排程器實作熱備份,當主排程器失效以後能夠平滑替換至備用排程器,確定高可用性。

第二層,伺服器池(server Pool)

群集所提供的應用服務、由伺服器池承擔,其中每個節點具有獨立的RIP位址(真實I2),隻處理排程器分發過來的客戶機請求。當某個節點暫時失效時,負載排程器的容錯機制會将其隔離,等待錯誤排除以後再重新納入伺服器池。

第三層,共亭存儲(share storage)

為伺服器池中的所有節點提供穩定、一緻的檔案存取服務,

確定整個群集的統一性共享存儲可以使用NAS裝置,或者提供NFS共享服務的專用伺服器。

4.負載均衡群集工作模式分析

負載均衡群集是目前企業用得最多的群集類型群集的負載排程技術有三種工作模式

位址轉換

IP隧道

所有的real server基本都有自己的公網IP,因為有衆多公網IP,安全政策成本,人員維護成本提高。

直接路由

1.位址轉換

Network Address Translation,簡稱NAT模式

類似于防火牆的私有網絡結構,負載排程器作為所有伺服器節點的網關,即作為客戶機的通路入口,也是各節點回應客戶機的通路出口

伺服器節點使用私有IP位址,與負載排程器位于同一個實體網絡,安全性要優于其他兩種方式

特點:請求的出和入均有排程器伺服器控制(LVS)

所有伺服器在同一個福利網絡内

2.IP隧道

PTunnel,簡稱TUN模式

采用開放式的網絡結構,負載排程器僅作為客戶機的通路入口,各節點通過各自的lnternet連接配接直接回應客戶機,而不再經過負載排程器

伺服器節點分散在網際網路中的不同位置,具有獨立的公網IP位址,通過專用IP隧道與負載排程器互相通信

特點:real servers在公網環境(公網IP)

lvs隻接受請求,響應請求由對應接收請求的real server以隧道形式直接響應

3.直接路由

Direct Routing,簡稱DR模式

采用半開放式的網絡結構,與TUN木

模式的結構類似,但各節點并不是分散在各地,而是與排程器位于同一個實體

網絡

負載排程器與各節點伺服器通過本地網絡連接配接,不需要建立專用的IP隧道

特點:

1、接受請求由LVS處理,響應請求也是由real server處理

2、他們在同一實體網絡(内部網),響應請求(不同網段的),需要通過公共路由器實作

5.LVS的負載排程算法

1.輪詢(Round Robin)

将收到的通路請求按照順序輪流配置設定給群集中的各節點(真實伺服器),均等地對待每一台伺服器,而不管伺服器實際的連接配接數和系統負載

權重輪詢(Weighted Round Robin)

根據排程器設定的權重值來分發請求,權重值高的節點優先獲得任務,配置設定的請求數越多

保證性能強的伺服器承擔更多的通路流量

2.最少連接配接(Least Connections)

根據真實伺服器已建立的連接配接數進行配置設定,将收到的通路請求優先配置設定給連接配接數最少的節點

權重最少連接配接(Weighted Least Connections)

在伺服器節點的性能差異較大時,可以為真實伺服器自動調整權重

性能較高的節點将承擔更大比例的活動連接配接負載

以“接近實時連接配接的請求數(連接配接數)做為基礎

以權重的方式,決定在real servers中“連接配接數相同”的情況下

該如何配置設定請求(以權重的方式判斷)

3.LVS群集建立與管理

①建立虛拟伺服器

②添加,删除伺服器節點

③檢視群集及節點情況

④儲存負載配置設定政策

6.小結

工作模式差別                     NAT模式             TUN模式        DR模式( 與nat相比較為複雜)
real server節點伺服器
server number節點數量          low10-20           high 100       high 100
真實網關(real servers)         負載排程器           自由路由器       自由路由器
IP位址                        公網+私|網           公網            私網
優點                          安全性高             安全、速度快     性能最好
缺點                          效率低、壓力大        需要隧道支援     不能跨越lan(局域|網)
           

7.LVS群集建立與管理

步驟

1、建立虛拟伺服器`

2、添加、冊删除伺服器節點

3、檢視群集及節點情況

4、儲存負載配置設定政策

LVs的管理工具是ipvsadm

ipvsadm工具選項說明

-A  添加虛拟伺服器
-D  删除整個虛拟伺服器
-s  指定負載排程算法 (輪詢:rr、權重輪詢: wrr、最少連接配接: lc、權重最少連接配接: wlc )
-a  表示添加真實伺服器(節點伺服器)
-d  冊删除某一個節點
-t  指定VIP位址及TCP端口-r指定RIP位址及TCP端口-m表示使用NAT群集模式.-g表示使用DR模式
-i  表示使用TUN模式
-w  設定權重(權重為.0時表示暫停節點)-p 60表示保持長連接配接60秒
-l  清單檢視 LVS 虛拟伺服器(預設為檢視所有)
-n  以數字形式顯示位址、端口等資訊,常與"-l”選項組合使用。ipvsadm -ln
           

8.LVS-DR模式

一、LVS-DR資料包流量分析(同一區域網路)

用戶端向目标VIP發送請求,負載均衡器接收

負載均衡器根據負載均衡算法選擇後端真實伺服器,不修改也不封裝IP封包,而是将資料幀的MAC位址改為後端真實伺服器的MAc位址,然後在區域網路上發送

後端真實伺服器收到這個幀,解封裝後發現目标IP與本機比對(事先綁定了vIP),于是處理這個封包。

随後重新封裝封包,将響應封包通過lo接口傳送給實體網卡然後向外發出用戶端将收到回複封包。用戶端認為得到正常的服務,而不會知道是哪一台伺服器處理的如果跨網段,則封包通過路由器經由internet傳回給使用者

二、LVS-DR中的ARP問題

1、在LVS-DR負載均衡集樣中,負載均衡與節點伺服器都要配置相同的VIP位址。

激活Windows

2、在區域網路中具有相同的IP位址,勢必會造成各伺服器ARP通信的紊亂。

當ARP廣播發送到LVS-DR叢集時,因為負載均衡器和節點伺服器都是連接配接到相同網絡上,它們都會接收到ARP廣播。隻有前端的負載均衡器進行響應,其他節點伺服器不應該響應ARP廣播。

3、對節點伺服器進行處理,使其不響應針對VIP的ARP請求。

使用虛接口 lo:0 承載VIP位址設定核心參數 arp_ignore=1:系統隻響應目的IP為本地 IP 的ARP請求

4、RealServer傳回封包(源IP是VIP)經路由器轉發,重新封裝封包時,需要先擷取路由器的MAC位址

5、發送ARP請求時,Linux預設使用IP包的源IP位址(即VIP)作為ARP請求包中的源IP位址,而不使

用發送接口的IP位址如:ens33

6、路由器收到ARP請求後,将更新ARP表項

7、原有的VIP對應Director的MAC位址會被更新為VIP對應RealServer的MAC位址

8、路由器根據ARP表項,會将新來的請求封包轉發給Realserver,導緻Director的VIP失效

解決方法:對節點伺服器進行處理,設定核心參數arp_announce=2:系統不使用IP包的源位址來設定ARP請求的源位址,而選擇發送接口的IP位址

三、解決ARP的兩個問題的設定方法

修改 /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
           

四、LVS-DR處理問題後的流量分析

① 用戶端發送請求到Director server (負載均衡器),請求的資料封包(源IP是Client IP,目标IP是VIP)到達核心空間。

② Director Server和Real server在同一個網絡中,資料通過二層資料鍊路層來傳輸。

③ 核心空間判斷資料包的目标IP是本機VIP,此時IPVS (IP虛拟伺服器)比對資料包請求的服務是否是叢集服務,是叢集服務就重新封裝資料包。修改源MAC位址為Director Server的MAC位址,修改目标MAC位址為Real Server的MAC位址,源IP位址與目标IP位址沒有改變,然後将資料包發送給Real Server。

④到達Real server的請求封包的MAC位址是自身的MAC位址,就接收此封包。資料包重新封裝封包(源IP位址為VIP,目标IP為CIP),将響應封包通過 lo 接口傳送給實體網卡ens33然後向外發出。

⑤ Real Server 直接将響應封包傳送到用戶端。

五、LVS-DR 特性

① Director Server和Real Server必須在同一個實體網絡中。

② Real Server可以使用私有位址,也可以使用公網位址。如果使用公網位址,可以通過網際網路對RIP進行直接通路。

③ Director Server作為群集的通路入口,但不作為網關使用。

所有的請求封包經由Director Server,但回複響應封包不能經過Director Server

④ Real Server的網關不允許指向Director Server IP,即Real Server發送的資料包不允許經過Director Server。

⑤ Real Server上的l0接口配置VIP的IP位址。

六、Keepalived

6.1Keepalived概述

支援故障自動切換(Failover)

支援節點健康狀态檢查(Health Checking)

判斷LVS負載排程器、節點伺服器的可用性,當master主機出現故障及時切換到backup節點保證業務正常,當 master 故障主機恢複後将其重新加入群集并且業務重新切換回 master 節點(優先級)。

6.2Keepalived實作原理剖析

keepalived采用VRRP熱備份協定實作Linux 伺服器的多機熱備功能

VRRP(虛拟路由備援協定)是針對路由器的一種備份解決方案。

由多台路由器組成一個熱備份組,通過共用的虛拟IP位址對外提供服務

每個熱備組内同時隻有一台主路由器提供服務,其他路由器處于備援狀态

若目前線上的路由器失效,則其他路由器會根據設定的優先級自動接替虛拟IP位址,繼續提供服務

snmp 通過網絡管理伺服器、交換機、路由器等裝置的一種協定

在keepalived SNMP管理的是健康檢查(狀态)

PS: 在監控中也會通過snmp 監控、擷取被監控伺服器的資料

9.LVS-DR-Keepalived

1、環境住備
伺服器IP位址:配置需要的工具主負載排程器(Director1)
ens33:192.168.226.128
ipvsadm、keepalived(熱備)
備負教排程器(Director2)
ens33:192.168.226.129
ipvsadm、keepalived
web伺服器1ens33
192.168.226.130
公
lo:0(VIP):
192.168.226.100 httpd
web伺服器2 ens33
192.168.226.131
lo:0(VIP):
192.168.226.100 httpd
centos用戶端
192.168.226.132 web浏覽器
centos用戶端
192.168.226.133 web浏覽器
2、LVS排程伺服器配置(主-備)
systemctl stop firewalld.servicesetenforce o
yum -y install ipvsadm keepalivedmodprobe ip_vs#加教ip_vs子產品
cat lproc/net/ip vs#檢視ip vs版本資訊
cd /etclsysconfig/ network-scripts/
激活Windows
cp -p ifcfg-ens33 ifcfg-ens33:0
#調整proc響應參數
#由于Lvs負載均衡器和各節點需要共用vip位址,應該關閉linux核心的重定向響應參數,不充當路由器(轉發、重定向)
vim letc/sysctl.confnet.ipv4.ip_forward = o
net.ipv4.conf.all.send_redirects = o
net.ipv4.conf.default.send_redirects = onet .ipv 4.conf.ens33.send_redirects = o
sysctl -p
#開啟ipvsadmmodprobe ip_vs
cat lproc/ net/ip_vs
IP virtual server version 1.2.1 (size=4096)Prot LocalAddress : Port scheduler Flags
-> RemoteAddress : Port Forward weight ActiveConn InActConn
#配置負載配置設定政策
ipvsadm-save > letc/ sysconfig/ipvsadm
           
LVS負載均衡群集前言1.企業群集應用概述2.企業群集分類3.負載均衡群集架構4.負載均衡群集工作模式分析5.LVS的負載排程算法6.小結7.LVS群集建立與管理8.LVS-DR模式9.LVS-DR-Keepalived小結

小結

①可将兩個或多個Tomcat server 放到 Nginx 的 upstream 中組成一個負載均衡叢集,然後通過 proxy_pass 這種 Web 代理的方式在 location 中設定叢集站點,然後再通過 weight 值來分别對 Tomcat server 進行權重的設定。

②在生産環境中,Tomcat server 的硬體配置可能不盡相同,可以通過修改相應伺服器的 weight 值,對配置較高或配置較低的伺服器的通路請求進行配置設定控制