中韩高清无专码区2021曰网站_亚洲黄色成人网站_久久久久精品国产_国产区视频在线观看

×

疫情期間讓我們學習下什么是LVS虛擬服務(wù)器

  • 作者:sdfcsd
  • 來源:互聯(lián)網(wǎng)
  • 瀏覽:100
  • 2020-02-05 17:21:22

LVS即Linux Virtual Server,虛擬服務(wù)器是一個可高擴展且高可用的服務(wù)器,構(gòu)建在真實服務(wù)器集群上。服務(wù)器群集的體系結(jié)構(gòu)對最終用戶完全透明,用戶與群集系統(tǒng)進行交互,就好像它只

LVS即Linux Virtual Server,虛擬服務(wù)器是一個可高擴展且高可用的服務(wù)器,構(gòu)建在真實服務(wù)器集群上。服務(wù)器群集的體系結(jié)構(gòu)對最終用戶完全透明,用戶與群集系統(tǒng)進行交互,就好像它只是一個高性能的虛擬服務(wù)器一樣。請參考下圖:

真實服務(wù)器和負載均衡器可以通過高速LAN(局域網(wǎng))或地理上分散的WAN(廣域網(wǎng))互連。負載均衡器可以將請求分配給后端不同的服務(wù)器,而對外則只顯示為單個IP的虛擬服務(wù)。分配的工作方式可以使用IP負載均衡技術(shù)或應(yīng)用級負載均衡技術(shù)。通過透明地添加或刪除集群中的節(jié)點來實現(xiàn)系統(tǒng)的可伸縮性。通過檢測節(jié)點或守護程序故障并適當?shù)刂匦屡渲孟到y(tǒng)來提供高可用性。

Linux Virtual Server Project的基本目標是:使用集群技術(shù)為Linux構(gòu)建高性能,高可用性的服務(wù)器,提供良好的可擴展性,可靠性和可維護性。

為什么需要LVS?
隨著互聯(lián)網(wǎng)的爆炸性增長及其在我們生活中日益重要的作用,互聯(lián)網(wǎng)上的流量急劇增加。服務(wù)器上的工作負載也隨之迅速增加,因此服務(wù)器很容易在短時間內(nèi)過載,尤其是對于一些受歡迎的網(wǎng)站。為了克服服務(wù)器的過載問題,有兩種解決方案:一種是單服務(wù)器解決方案,即將服務(wù)器升級到性能更高的服務(wù)器,但是當請求增加時它很快就會過載,因此我們必須再次升級,升級過程復(fù)雜且成本高;另一種是多服務(wù)器解決方案,即在服務(wù)器集群上構(gòu)建可擴展的網(wǎng)絡(luò)服務(wù)系統(tǒng)。當負載增加時,我們可以簡單地將新服務(wù)器或更多服務(wù)器添加到集群中以滿足不斷增長的請求。因此,為網(wǎng)絡(luò)服務(wù)構(gòu)建服務(wù)器集群系統(tǒng)更具可擴展性和成本效益。

有幾種方法可以構(gòu)建服務(wù)器集群:

A. 基于DNS的負載均衡集群
DNS負載平衡可能是構(gòu)建網(wǎng)絡(luò)服務(wù)集群的最簡單方法。它使用域名系統(tǒng)通過將域名解析為服務(wù)器的不同IP地址來將請求分發(fā)到不同的服務(wù)器。當DNS請求到達DNS服務(wù)器以解析域名時,DNS服務(wù)器根據(jù)調(diào)度策略(例如以循環(huán)方式)發(fā)出一個服務(wù)器IP地址,然后使用相同的本地緩存名稱服務(wù)器從客戶端發(fā)出后續(xù)請求在指定的名稱解析生存時間(TTL)中發(fā)送到同一服務(wù)器。

但是,由于客戶端和分層DNS系統(tǒng),很容易導致服務(wù)器之間的動態(tài)負載不平衡,因此服務(wù)器不容易處理其峰值負載。在DNS服務(wù)器上無法很好地選擇名稱映射的TTL值,TTL值很小的話,會導致DNS流量很高,DNS服務(wù)器將成為瓶頸。而如果TTL值過高,則動態(tài)負載不平衡將變得更糟。即使TTL值設(shè)置為零,調(diào)度粒度是每個主機,不同用戶的訪問模式可能會導致動態(tài)負載不平衡,因為有些人可能從網(wǎng)站上拉大量頁面,而其他人可能只是瀏覽幾頁而已。

B. 基于調(diào)度程序的負載均衡集群
Dispatcher,也稱為負載均衡器,可用于在群集中的服務(wù)器之間分配負載,以便服務(wù)器的并行服務(wù)可以在單個IP地址上顯示為虛擬服務(wù),并且最終用戶可以像單個服務(wù)器一樣進行交互而不知道集群中的所有服務(wù)器。與基于DNS的負載平衡相比,調(diào)度程序可以以精細的粒度(例如每個連接)調(diào)度請求,以便在服務(wù)器之間實現(xiàn)更好的負載平衡。當一臺或多臺服務(wù)器發(fā)生故障時,可以屏蔽故障。服務(wù)器管理變得越來越容易,管理員可以隨時使用服務(wù)器或更多服務(wù)器,而且不會中斷最終用戶的服務(wù)。

負載均衡可以在兩個級別完成,即應(yīng)用級和IP級。例如,Reverse-proxy和pWEB是用于構(gòu)建可伸縮Web服務(wù)器的應(yīng)用程序級負載平衡方法。他們將HTTP請求轉(zhuǎn)發(fā)到群集中的不同Web服務(wù)器,獲取結(jié)果,然后將其返回給客戶端。由于在應(yīng)用程序級別處理HTTP請求和回復(fù)的開銷很高,當服務(wù)器節(jié)點數(shù)量增加到5或更多時,應(yīng)用程序級負載均衡器將成為新的瓶頸。

LVS工作方式
現(xiàn)在虛擬服務(wù)器以三種方式實現(xiàn)。Linux Director中共有三種IP負載均衡技術(shù)(數(shù)據(jù)包轉(zhuǎn)發(fā)方法)。它們是通過NAT的虛擬服務(wù)器,通過IP隧道的虛擬服務(wù)器和通過直接路由的虛擬服務(wù)器。即NAT/DR/IP Tunneling。

以下小節(jié)將解釋它們的優(yōu)缺點。VS/NAT,VS/TUN 和 VS/DR的比較總結(jié)在下表中:

A. NAT
通過NAT的虛擬服務(wù)器的優(yōu)點是真實服務(wù)器可以運行任何支持TCP / IP協(xié)議的操作系統(tǒng),真實服務(wù)器可以使用私有Internet地址,并且負載均衡器只需要1個IP地址。

缺點是通過NAT的虛擬服務(wù)器的可擴展性是有限的。當服務(wù)器節(jié)點的數(shù)量增加到大約20或更多時,負載平衡器可能是整個系統(tǒng)的瓶頸,因為請求包和響應(yīng)包都需要由負載平衡器重寫。假設(shè)TCP數(shù)據(jù)包的平均長度為536字節(jié),重寫數(shù)據(jù)包的平均延遲約為60us(在奔騰處理器上,使用更高的處理器可以減少一點),負載均衡器的最大吞吐量為8.93 MB /秒。假設(shè)真實服務(wù)器的平均吞吐量為400Kbytes / s,負載均衡器可以調(diào)度22個真實服務(wù)器。

B. IP Tunneling
在通過NAT的虛擬服務(wù)器中,請求和響應(yīng)數(shù)據(jù)包都需要通過負載均衡器,當服務(wù)器節(jié)點數(shù)量增加到20個或更多時,負載均衡器可能成為新的瓶頸,因為網(wǎng)絡(luò)接口的吞吐量最終有限。從許多Internet服務(wù)(例如Web服務(wù))可以看出,請求數(shù)據(jù)包通常很短,而響應(yīng)數(shù)據(jù)包通常包含大量數(shù)據(jù)。

在通過IP隧道的虛擬服務(wù)器中,負載均衡器僅調(diào)度對不同真實服務(wù)器的請求,而真實服務(wù)器直接向用戶返回回復(fù)。因此,負載均衡器可以處理大量請求,它可以調(diào)度超過100個真實服務(wù)器,并且它不會成為系統(tǒng)的瓶頸。因此,使用IP隧道將大大增加負載均衡器的最大服務(wù)器節(jié)點數(shù)。即使負載均衡器只有100Mbps全雙工網(wǎng)絡(luò)適配器,虛擬服務(wù)器的最大吞吐量也可以達到1Gbps以上。

IP隧道功能可用于構(gòu)建高性能的虛擬服務(wù)器。構(gòu)建虛擬代理服務(wù)器非常好,因為當代理服務(wù)器獲得請求時,它可以直接訪問Internet以獲取對象并將它們直接返回給用戶。

C. Direct Routing
與通過隧道方法在虛擬服務(wù)器中一樣,DR模式僅通過直接路由處理虛擬服務(wù)器中的客戶端到服務(wù)器的流量,而由后端的真實服務(wù)器直接相應(yīng)數(shù)據(jù)包并發(fā)送到客戶端。這可以大大提高虛擬服務(wù)器的可擴展性。

與通過IP隧道方法的虛擬服務(wù)器相比,這種方法沒有隧道開銷,但要求負載均衡器的接口和真實服務(wù)器的接口必須在同一網(wǎng)段。

LVS的架構(gòu)
對于整個系統(tǒng)的可擴展性,可用性和可管理性,我們通常采用下圖所示的LVS集群中的三層架構(gòu)。

三層結(jié)構(gòu)包括:
Load Balancer
它是整個集群系統(tǒng)的前端機器,并在一組服務(wù)器之間平衡來自客戶端的請求,以便客戶端認為所有服務(wù)都來自單個IP地址。

服務(wù)器群集
它是一組運行實際網(wǎng)絡(luò)服務(wù)的服務(wù)器,例如Web,郵件,F(xiàn)TP,DNS和媒體服務(wù)。

共享存儲
為服務(wù)器提供共享存儲空間,以便服務(wù)器可以輕松擁有相同的內(nèi)容并提供相同的服務(wù)。

負載均衡器是服務(wù)器集群系統(tǒng)的單一入口點,它可以運行在Linux內(nèi)核中實現(xiàn)IP負載平衡技術(shù)的IPVS,或在Linux內(nèi)核中實現(xiàn)應(yīng)用程序級負載平衡的KTCPVS。當使用IPVS時,所有服務(wù)器都需要提供相同的服務(wù)和內(nèi)容,負載均衡器根據(jù)指定的調(diào)度算法和每個服務(wù)器的負載將新的客戶端請求轉(zhuǎn)發(fā)給服務(wù)器。無論選擇哪個服務(wù)器,客戶端都應(yīng)該得到相同的結(jié)果。當使用KTCPVS時,服務(wù)器可以具有不同的內(nèi)容,負載均衡器可以根據(jù)請求的內(nèi)容將請求轉(zhuǎn)發(fā)到不同的服務(wù)器。由于KTCPVS是在Linux內(nèi)核中實現(xiàn)的,因此中繼數(shù)據(jù)的開銷很小,因此它可以具有高吞吐量。

可以根據(jù)系統(tǒng)接收的負載更改服務(wù)器集群的節(jié)點數(shù)目。當集群中所有服務(wù)器都過載時,可以添加更多新服務(wù)器來處理不斷增加的工作負載。對于大多數(shù)Internet服務(wù)(如Web),請求可以在不同的服務(wù)器上并行運行。因此,隨著服務(wù)器集群的節(jié)點數(shù)量的增加,整體的性能幾乎可以線性擴展。

共享存儲可以是數(shù)據(jù)庫系統(tǒng),網(wǎng)絡(luò)文件系統(tǒng)或分布式文件系統(tǒng)。服務(wù)器節(jié)點需要動態(tài)更新的數(shù)據(jù)應(yīng)該存儲在基于數(shù)據(jù)的系統(tǒng)中,當服務(wù)器節(jié)點并行地讀取或?qū)懭霐?shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)時,數(shù)據(jù)庫系統(tǒng)可以保證并發(fā)數(shù)據(jù)訪問的一致性。靜態(tài)數(shù)據(jù)通常保存在網(wǎng)絡(luò)文件系統(tǒng)(如NFS和CIFS)中,以便所有服務(wù)器節(jié)點可以共享數(shù)據(jù)。但是,單個網(wǎng)絡(luò)文件系統(tǒng)的可擴展性是有限的,例如,單個NFS / CIFS只能支持從4到8個服務(wù)器的數(shù)據(jù)訪問。對于大規(guī)模集群系統(tǒng),分布式/集群文件系統(tǒng)可以用于共享存儲,例如GPFS,Coda和GFS,然后共享存儲也可以根據(jù)系統(tǒng)要求進行擴展。

負載均衡器,服務(wù)器集群和共享存儲通常由高速網(wǎng)絡(luò)連接,如100Mbps以太網(wǎng)和千兆以太網(wǎng),這樣網(wǎng)絡(luò)在系統(tǒng)成長時不會成為系統(tǒng)的瓶頸。

LVS高可用
隨著越來越多的任務(wù)關(guān)鍵型應(yīng)用程序在Internet上運行,提供高可用性服務(wù)變得越來越重要。集群系統(tǒng)的一個優(yōu)點是它具有硬件和軟件冗余,因為集群系統(tǒng)由許多獨立節(jié)點組成,每個節(jié)點運行一個操作系統(tǒng)和應(yīng)用軟件的副本。通過檢測節(jié)點或守護程序故障并適當?shù)刂匦屡渲孟到y(tǒng),可以實現(xiàn)高可用性,從而可以由集群中的其余節(jié)點接管工作負載。

事實上,高可用性是一個很大的領(lǐng)域。高級的高可用系統(tǒng)可以具有可靠的通信子系統(tǒng),成員管理子系統(tǒng),并發(fā)控制子系統(tǒng)等,需要比較多的學習成本。但是,我們現(xiàn)在可以使用一些現(xiàn)有的軟件包來構(gòu)建高度可用的LVS集群系統(tǒng)。

通常,在負載均衡器上運行服務(wù)監(jiān)視器守護程序以定期檢查服務(wù)器運行狀況,如下圖所示。如果在指定時間內(nèi)服務(wù)器訪問請求或ICMP ECHO_REQUEST沒有響應(yīng),服務(wù)監(jiān)視器將認為服務(wù)器已經(jīng)掛掉,并將其從負載均衡器的可用服務(wù)器列表中刪除,因此不會向這個掛掉的服務(wù)器再轉(zhuǎn)發(fā)請求。當服務(wù)監(jiān)視器檢測掛掉的服務(wù)器恢復(fù)工作時,服務(wù)監(jiān)視器將服務(wù)器添加回可用服務(wù)器列表。因此,負載均衡器可以自動掩蓋服務(wù)守護進程或服務(wù)器的故障。此外,管理員還可以使用系統(tǒng)工具添加新服務(wù)器以提高系統(tǒng)吞吐量或刪除服務(wù)器以進行系統(tǒng)維護,而無需關(guān)閉整個系統(tǒng)服務(wù)。

現(xiàn)在負載均衡器可能成為整個系統(tǒng)的單一故障點。為了防止整個系統(tǒng)因負載均衡器故障而停止運行,我們需要設(shè)置負載均衡器的備份(或多個備份)。兩個心跳守護程序分別在主服務(wù)器和備份服務(wù)器上運行,它們通過定期檢測到“我還活著”這樣的消息。當備份的心跳守護進程在指定時間內(nèi)無法聽到來自主服務(wù)器的心跳消息時,它將接管虛擬IP地址以提供負載均衡服務(wù)。當失敗的負載均衡器恢復(fù)工作時,有兩種解決方案,一種是自動成為備份負載均衡器,另一種是主動負載均衡器釋放VIP地址,并且恢復(fù)一次接管VIP地址并成為主要負載均衡器。

主負載均衡器具有連接狀態(tài),即連接轉(zhuǎn)發(fā)到哪個服務(wù)器。如果備份負載均衡器在沒有這些連接信息的情況下接管,則客戶端必須再次將其請求發(fā)送到訪問服務(wù)。為了使負載均衡器故障轉(zhuǎn)移對客戶端應(yīng)用程序透明,我們在IPVS中實現(xiàn)連接同步,主IPVS負載均衡器通過UDP多播將連接信息同步到備份負載均衡器。當備份負載均衡器在主要負載均衡器發(fā)生故障后接管時,備份負載均衡器將具有大多數(shù)連接狀態(tài),因此幾乎所有連接都可以通過備份負載均衡器繼續(xù)訪問服務(wù)。

免責聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading