關(guān)于負(fù)載均衡器的提問與回答
前面我們對服務(wù)器負(fù)載均衡做了介紹,大家也看出來了,當(dāng)中負(fù)載均衡器起到?jīng)Q定性的作用。那么本文針對負(fù)載均衡器以及網(wǎng)絡(luò)的4、7兩個(gè)層面的交換內(nèi)容進(jìn)行了問答形式的介紹。希望大家能對這方面內(nèi)容有所掌握。
Q:請簡單介紹F5 L4/L7 層交換機(jī)對服務(wù)器負(fù)載均衡的工作過程。
A:F5 L4/L7 層交換機(jī)對服務(wù)器負(fù)載均衡時(shí)主要包括以下幾個(gè)過程:
◆截獲和檢查分析流量:保證只有合適的數(shù)據(jù)包才能通過
◆服務(wù)器監(jiān)控和健康檢查:隨時(shí)了解服務(wù)器群的可用性狀態(tài)
◆負(fù)載均衡和應(yīng)用交換功能:通過各種策略或負(fù)載均衡算法將訪問請求導(dǎo)向到合適的服務(wù)器,這一過程包括目標(biāo)服務(wù)器的選擇及地址轉(zhuǎn)換(NAT)過程。
◆會話的保持(Persistence):通過會話保持,保證一系列相關(guān)連的會話不會被負(fù)載均衡到不同的服務(wù)器上。
Q:F5 L4/L7 層交換機(jī)對服務(wù)器負(fù)載均衡時(shí)是怎樣做地址轉(zhuǎn)換的(NAT)。
A:F5 L4/L7 層交換機(jī)對服務(wù)器負(fù)載均衡是采用基于網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的負(fù)載均衡技術(shù) 。一個(gè)典型的F5 L4/L7 層交換機(jī)對服務(wù)器負(fù)載均衡的網(wǎng)絡(luò)拓?fù)?負(fù)載均衡器后面的一組服務(wù)器10.1.1.4:80、10.1.1.5:80、10.1.1.6:80 對外構(gòu)成一臺虛擬的服務(wù)器(Virtual Server)192.168.101.1:80,對外提供服務(wù)。當(dāng)一個(gè)訪問虛擬服務(wù)器192.168.101.1:80 的請求到達(dá)負(fù)載均衡器以后,負(fù)載均衡器根據(jù)預(yù)先設(shè)定的負(fù)載均衡算法從服務(wù)器pool(WEB_POOL)中挑選一臺服務(wù)器來服務(wù)該請求,例如選定的是10.1.1.4:80;然后通過網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)將訪問請求包的目的地址與端口轉(zhuǎn)換成10.1.1.4:80,并將數(shù)據(jù)包發(fā)給10.1.1.4。服務(wù)器10.1.1.4 處理訪問請求,并作出回應(yīng)。回應(yīng)的包必須返回到負(fù)載均衡器上,由負(fù)載均衡器將回應(yīng)包的源地址與端口轉(zhuǎn)換回虛擬服務(wù)器的地址與端口,并返回給客戶。這樣完成一次訪問過程。
Q:什么叫會話保持(Persistence)?
A: 會話保持(persistence)是負(fù)載均衡中一個(gè)特定而重要的概念。一個(gè)客戶與服務(wù)器經(jīng)常經(jīng)過好幾次的交互過程才能完成一筆交易。由于這幾次交互過
程是密切相關(guān)的,服務(wù)器在進(jìn)行這些交互過程的某一個(gè)交互步驟時(shí),往往需要了解上一次交互過程的處理結(jié)果,這就要求所有這些相關(guān)的交互過程都由一臺服務(wù)器完成,而不能被負(fù)載均衡器分散到不同的服務(wù)器上。而這一系列的相關(guān)的交互過程可能是由客戶到服務(wù)器的一個(gè)連接的多次會話完成,也可能是在客戶與服務(wù)器之間的多個(gè)不同連接里的多次會話完成。不同連接的多次會話,最典型的例子就是基于http 的訪問,一個(gè)客戶完成一筆交易可能需多次點(diǎn)擊,而一個(gè)新的點(diǎn)擊產(chǎn)生的請求,可能會重用上一次點(diǎn)擊建立起來的連接,也可能是一個(gè)新建的連接。會話保持就是指在負(fù)載均衡器上有這么一種機(jī)制,可以識別做客戶與服務(wù)器之間交互過程的關(guān)連性,在作負(fù)載均衡的同時(shí),還保證一系列相關(guān)連的訪問請求會保持分配到一臺服務(wù)器上。
Q:基于Layer 4 的負(fù)載均衡與基于Layer 7 的負(fù)載均衡有什么區(qū)別?
A:基于Layer 4 的負(fù)載均衡在截取數(shù)據(jù)流以后,對數(shù)據(jù)包要檢查與分析的部份僅僅限于IP 報(bào)頭及TCP/UDP 報(bào)頭,而不關(guān)心TCP 或UDP 包內(nèi)部信息。而基于Layer7 的負(fù)載均衡,則要求負(fù)載均衡器除了支持Layer4 負(fù)載均衡以外,還要理解數(shù)據(jù)包中4 層以上的信息,也即應(yīng)用層的信息。例如,可以理解分析http 協(xié)議,從數(shù)據(jù)包中提取出http uri 或cookie 信息。基于Layer4 與基于Layer7 負(fù)載均衡或交換對數(shù)據(jù)包檢查的深度不一樣,基于Layer4 的交換偏重的是網(wǎng)絡(luò)層,而Layer7 偏重的是應(yīng)用層,與應(yīng)用結(jié)合很緊密。負(fù)載均衡器在作這兩種方式的負(fù)載均衡時(shí)的性能也不一樣。
Q:為什么需要基于Layer7 的負(fù)載均衡?
A:簡單來說,之所以需要基于Layer7 的負(fù)載均衡,有以下原因:
會話保持(Persistence)的需要:在很多應(yīng)用中,單靠Layer4 層的信息,也即IP 地址與端口的信息,是不足以分辨出會話的相關(guān)性。這樣要實(shí)現(xiàn)會話保持,就必須依靠于Layer7 交換。
應(yīng)用安全的需要:要做到應(yīng)用級的安全,負(fù)載均衡器必須能檢查、分析應(yīng)用層的信息,并以此作為流量分發(fā)、訪問控制的依據(jù)。
服務(wù)器、應(yīng)用健康檢查的需求:如前面所述,負(fù)載均衡器還有一個(gè)重要任務(wù)就是要及時(shí)發(fā)現(xiàn)服務(wù)器上的異常情況,這種異常情況不僅僅限于網(wǎng)絡(luò)故障,還包括服務(wù)或應(yīng)用能不能對訪問請求作出正確的響應(yīng)。這也是要通過對數(shù)據(jù)包的應(yīng)用層進(jìn)行分析才能實(shí)現(xiàn)。
Q:對Lay4-7 層交換機(jī)或應(yīng)用交換機(jī)一般要關(guān)注、了解哪些方面?
A:一般來說,對Lay4-7 層交換機(jī)或應(yīng)用交換機(jī),一般會提到以下幾個(gè)因素:
支持的負(fù)載均衡算法
支持的服務(wù)器健康檢查的方法
如何保持客戶端和服務(wù)器的會話
速度/性能指標(biāo)
安全性與可靠性
端口數(shù)量