Linux虛擬服務(wù)器(LVS)系統(tǒng)是由負(fù)載調(diào)度器(Load Balancer)、服務(wù)器集群(Server Cluster)和文件存儲(chǔ)服務(wù)(File Servers)組成的,通過(guò)Linux下的負(fù)載平衡,將一群服務(wù)器構(gòu)成一個(gè)服務(wù)集群,而實(shí)際服務(wù)器的前端是一臺(tái)負(fù)載平衡器,將用戶的請(qǐng)求調(diào)度到實(shí)際服務(wù) 器執(zhí)行后將結(jié)果返回用戶,而終端用戶可見(jiàn)的只是一臺(tái)服務(wù)器,由于負(fù)載調(diào)度技術(shù)是在Linux內(nèi)核中實(shí)現(xiàn)的,我們稱(chēng)之為L(zhǎng)inux Virtual Server。正如上文所講,當(dāng)前網(wǎng)絡(luò)服務(wù)要求系統(tǒng)提供可靠性、可用性高的服務(wù),即要求系統(tǒng)在遭到破壞和出現(xiàn)故障時(shí),系統(tǒng)上的數(shù)據(jù)不能丟失,而且在盡可能 短的時(shí)間內(nèi)恢復(fù)系統(tǒng)的正常運(yùn)行,下面我們就LVS的基本原理(參考圖1)和一些服務(wù)安全性能進(jìn)行探討。
附件1
連接用戶的外部網(wǎng)為Internet/Intranet,服務(wù)器組由內(nèi)部網(wǎng)(通常是高速局域網(wǎng)或地理分布的廣域網(wǎng))連接。負(fù)載平衡器有兩個(gè)IP地 址,一個(gè)是外部網(wǎng)關(guān),一個(gè)是內(nèi)部網(wǎng)關(guān)。外部網(wǎng)的用戶發(fā)出請(qǐng)求,負(fù)載調(diào)度器負(fù)責(zé)將用戶要求的任務(wù),調(diào)度到服務(wù)器集群中的服務(wù)器上執(zhí)行,具體的調(diào)度策略現(xiàn)在主 要有四種調(diào)度算法:輪轉(zhuǎn)調(diào)度算法(Round-RobinScheduling)、加權(quán)輪轉(zhuǎn)調(diào)度算法(Weighted Round-RobinScheduling)、最小連接調(diào)度算法(Least-ConnectionScheduing)、加權(quán)最小連接算法 (Weighted Least- ConnectionScheduing)。LVS采用基于IP層負(fù)載平衡技術(shù),通過(guò)IPVS軟件實(shí)現(xiàn)了三種IP負(fù)載均衡技術(shù),在Linux操作系統(tǒng)下, 將IP層的TCP和UDP請(qǐng)求均衡地轉(zhuǎn)移到不同的服務(wù)器上。當(dāng)用戶請(qǐng)求到達(dá)時(shí),調(diào)度器從服務(wù)器組中選出一個(gè)服務(wù)器轉(zhuǎn)發(fā)該請(qǐng)求并由該服務(wù)器執(zhí)行,同時(shí)記錄此 調(diào)度。這一切都在操作系統(tǒng)核心空間內(nèi)完成,且調(diào)度開(kāi)銷(xiāo)很小,使得服務(wù)器集群中的節(jié)點(diǎn)數(shù)目可以達(dá)25甚至可以多達(dá)100。文件存儲(chǔ)系統(tǒng)基于容錯(cuò)式分布文件系 統(tǒng)來(lái)實(shí)現(xiàn),如Coda。
我們談到的LVS網(wǎng)絡(luò)服務(wù)的高可靠性主要體現(xiàn)在:
1.負(fù)載調(diào)度器上運(yùn)行了一個(gè)監(jiān)視進(jìn)程--mon,它負(fù)責(zé)監(jiān)控服務(wù)進(jìn)程和服務(wù)器集群中的各個(gè)服務(wù)器節(jié)點(diǎn)的狀況,通過(guò)配置fping 監(jiān)聽(tīng)器,每隔一定時(shí)間檢測(cè)各個(gè)服務(wù)器節(jié)點(diǎn)。通過(guò)配置相應(yīng)的服務(wù)監(jiān)聽(tīng)器來(lái)探查所有節(jié)點(diǎn)中不同的服務(wù)進(jìn)程,例如http monitor就用來(lái)探查http服務(wù),一旦出現(xiàn)失敗,監(jiān)視進(jìn)程就發(fā)出警報(bào)通知調(diào)度器將該節(jié)點(diǎn)從調(diào)度列表中刪除,使調(diào)度器可以自動(dòng)屏蔽服務(wù)器節(jié)點(diǎn)的失效。 當(dāng)此服務(wù)器節(jié)點(diǎn)恢復(fù)時(shí),調(diào)度器將此節(jié)點(diǎn)添加到調(diào)度列表中,從而總是保持對(duì)系統(tǒng)重置的正確,并且服務(wù)器集群中節(jié)點(diǎn)的數(shù)目是可變的,由于節(jié)點(diǎn)的失效被屏蔽,系 統(tǒng)管理員可以在任何時(shí)候加入或刪除一個(gè)或多個(gè)節(jié)點(diǎn)而不干擾對(duì)用戶提供的服務(wù)。這也就意味著LVS系統(tǒng)在超載時(shí),我們可以通過(guò)增加服務(wù)集群的節(jié)點(diǎn)數(shù)目來(lái)滿足 用戶的請(qǐng)求,當(dāng)服務(wù)器組中某臺(tái)實(shí)際服務(wù)器出現(xiàn)故障,可以刪除但不影響對(duì)用戶的服務(wù),從而實(shí)現(xiàn)高效可靠的服務(wù)。
2.在第一點(diǎn)的基礎(chǔ)上,現(xiàn)在調(diào)度器就成為了單一的失效點(diǎn),調(diào)度器的失效將導(dǎo)致整個(gè)系統(tǒng)的癱瘓。為了屏蔽主調(diào)度器可能出現(xiàn)的失效,需要建立一個(gè) 備份的從調(diào)度器。兩個(gè)心跳進(jìn)程分別在主、從調(diào)度器上運(yùn)行,定期互相匯報(bào)各自的健康狀況,一旦從調(diào)度器探測(cè)到主調(diào)度器失效,則激活fake程序接管 Virtual IP Address來(lái)提供負(fù)載平衡調(diào)度;當(dāng)從調(diào)度器探測(cè)到主調(diào)度器恢復(fù)時(shí),將釋放Virtual IP Address,由主調(diào)度器收回并提供負(fù)載調(diào)度服務(wù)。雖然,主調(diào)度器的失效和接管將導(dǎo)致調(diào)度信息的丟失,需要用戶重新發(fā)送請(qǐng)求。但是,這大大的提高了系統(tǒng) 的安全性和可靠性,使得一旦主調(diào)度器出現(xiàn)故障,系統(tǒng)可以在很短的時(shí)間內(nèi)恢復(fù)服務(wù)。
附件1
連接用戶的外部網(wǎng)為Internet/Intranet,服務(wù)器組由內(nèi)部網(wǎng)(通常是高速局域網(wǎng)或地理分布的廣域網(wǎng))連接。負(fù)載平衡器有兩個(gè)IP地 址,一個(gè)是外部網(wǎng)關(guān),一個(gè)是內(nèi)部網(wǎng)關(guān)。外部網(wǎng)的用戶發(fā)出請(qǐng)求,負(fù)載調(diào)度器負(fù)責(zé)將用戶要求的任務(wù),調(diào)度到服務(wù)器集群中的服務(wù)器上執(zhí)行,具體的調(diào)度策略現(xiàn)在主 要有四種調(diào)度算法:輪轉(zhuǎn)調(diào)度算法(Round-RobinScheduling)、加權(quán)輪轉(zhuǎn)調(diào)度算法(Weighted Round-RobinScheduling)、最小連接調(diào)度算法(Least-ConnectionScheduing)、加權(quán)最小連接算法 (Weighted Least- ConnectionScheduing)。LVS采用基于IP層負(fù)載平衡技術(shù),通過(guò)IPVS軟件實(shí)現(xiàn)了三種IP負(fù)載均衡技術(shù),在Linux操作系統(tǒng)下, 將IP層的TCP和UDP請(qǐng)求均衡地轉(zhuǎn)移到不同的服務(wù)器上。當(dāng)用戶請(qǐng)求到達(dá)時(shí),調(diào)度器從服務(wù)器組中選出一個(gè)服務(wù)器轉(zhuǎn)發(fā)該請(qǐng)求并由該服務(wù)器執(zhí)行,同時(shí)記錄此 調(diào)度。這一切都在操作系統(tǒng)核心空間內(nèi)完成,且調(diào)度開(kāi)銷(xiāo)很小,使得服務(wù)器集群中的節(jié)點(diǎn)數(shù)目可以達(dá)25甚至可以多達(dá)100。文件存儲(chǔ)系統(tǒng)基于容錯(cuò)式分布文件系 統(tǒng)來(lái)實(shí)現(xiàn),如Coda。
我們談到的LVS網(wǎng)絡(luò)服務(wù)的高可靠性主要體現(xiàn)在:
1.負(fù)載調(diào)度器上運(yùn)行了一個(gè)監(jiān)視進(jìn)程--mon,它負(fù)責(zé)監(jiān)控服務(wù)進(jìn)程和服務(wù)器集群中的各個(gè)服務(wù)器節(jié)點(diǎn)的狀況,通過(guò)配置fping 監(jiān)聽(tīng)器,每隔一定時(shí)間檢測(cè)各個(gè)服務(wù)器節(jié)點(diǎn)。通過(guò)配置相應(yīng)的服務(wù)監(jiān)聽(tīng)器來(lái)探查所有節(jié)點(diǎn)中不同的服務(wù)進(jìn)程,例如http monitor就用來(lái)探查http服務(wù),一旦出現(xiàn)失敗,監(jiān)視進(jìn)程就發(fā)出警報(bào)通知調(diào)度器將該節(jié)點(diǎn)從調(diào)度列表中刪除,使調(diào)度器可以自動(dòng)屏蔽服務(wù)器節(jié)點(diǎn)的失效。 當(dāng)此服務(wù)器節(jié)點(diǎn)恢復(fù)時(shí),調(diào)度器將此節(jié)點(diǎn)添加到調(diào)度列表中,從而總是保持對(duì)系統(tǒng)重置的正確,并且服務(wù)器集群中節(jié)點(diǎn)的數(shù)目是可變的,由于節(jié)點(diǎn)的失效被屏蔽,系 統(tǒng)管理員可以在任何時(shí)候加入或刪除一個(gè)或多個(gè)節(jié)點(diǎn)而不干擾對(duì)用戶提供的服務(wù)。這也就意味著LVS系統(tǒng)在超載時(shí),我們可以通過(guò)增加服務(wù)集群的節(jié)點(diǎn)數(shù)目來(lái)滿足 用戶的請(qǐng)求,當(dāng)服務(wù)器組中某臺(tái)實(shí)際服務(wù)器出現(xiàn)故障,可以刪除但不影響對(duì)用戶的服務(wù),從而實(shí)現(xiàn)高效可靠的服務(wù)。
2.在第一點(diǎn)的基礎(chǔ)上,現(xiàn)在調(diào)度器就成為了單一的失效點(diǎn),調(diào)度器的失效將導(dǎo)致整個(gè)系統(tǒng)的癱瘓。為了屏蔽主調(diào)度器可能出現(xiàn)的失效,需要建立一個(gè) 備份的從調(diào)度器。兩個(gè)心跳進(jìn)程分別在主、從調(diào)度器上運(yùn)行,定期互相匯報(bào)各自的健康狀況,一旦從調(diào)度器探測(cè)到主調(diào)度器失效,則激活fake程序接管 Virtual IP Address來(lái)提供負(fù)載平衡調(diào)度;當(dāng)從調(diào)度器探測(cè)到主調(diào)度器恢復(fù)時(shí),將釋放Virtual IP Address,由主調(diào)度器收回并提供負(fù)載調(diào)度服務(wù)。雖然,主調(diào)度器的失效和接管將導(dǎo)致調(diào)度信息的丟失,需要用戶重新發(fā)送請(qǐng)求。但是,這大大的提高了系統(tǒng) 的安全性和可靠性,使得一旦主調(diào)度器出現(xiàn)故障,系統(tǒng)可以在很短的時(shí)間內(nèi)恢復(fù)服務(wù)。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
