LVS(Linux Virtual Server)是一個高性能、可擴(kuò)展的負(fù)載均衡器,用于分發(fā)網(wǎng)絡(luò)流量到多個服務(wù)器上,提高系統(tǒng)的可用性、可靠性和性能。
LVS有三種工作模式:NAT模式、DR模式和TUN模式。
NAT模式:在這種模式下,LVS負(fù)載均衡器作為網(wǎng)絡(luò)流量的中間節(jié)點(diǎn),將客戶端請求的數(shù)據(jù)包修改源IP地址并轉(zhuǎn)發(fā)給后端真實(shí)服務(wù)器。后端服務(wù)器將響應(yīng)包發(fā)給LVS負(fù)載均衡器,然后再由負(fù)載均衡器轉(zhuǎn)發(fā)給客戶端。
DR模式:在這種模式下,LVS負(fù)載均衡器只作為數(shù)據(jù)包的轉(zhuǎn)發(fā)節(jié)點(diǎn),不修改數(shù)據(jù)包的源IP地址??蛻舳苏埱蟮臄?shù)據(jù)包直接發(fā)送給后端真實(shí)服務(wù)器,后端服務(wù)器將響應(yīng)包直接發(fā)送給客戶端。
TUN模式:在這種模式下,LVS負(fù)載均衡器通過在內(nèi)核中創(chuàng)建虛擬IP地址來接收客戶端請求,并將請求轉(zhuǎn)發(fā)給后端真實(shí)服務(wù)器。后端服務(wù)器將響應(yīng)包發(fā)給LVS負(fù)載均衡器,并由負(fù)載均衡器轉(zhuǎn)發(fā)給客戶端。
LVS提供了多種調(diào)度算法,用于決定將客戶端請求轉(zhuǎn)發(fā)給哪個后端服務(wù)器:
輪詢(Round Robin):按照服務(wù)器的順序依次轉(zhuǎn)發(fā)請求。
最少連接(Least Connection):選擇當(dāng)前連接數(shù)最少的服務(wù)器轉(zhuǎn)發(fā)請求。
加權(quán)輪詢(Weighted Round Robin):根據(jù)服務(wù)器的權(quán)重,按照一定比例轉(zhuǎn)發(fā)請求。
加權(quán)最少連接(Weighted Least Connection):根據(jù)服務(wù)器的權(quán)重和當(dāng)前連接數(shù),選擇連接數(shù)最少且權(quán)重最高的服務(wù)器轉(zhuǎn)發(fā)請求。
源IP哈希(Source IP Hash):根據(jù)客戶端的IP地址進(jìn)行哈希計算,將請求發(fā)送到同一臺服務(wù)器上。
源IP和端口哈希(Source IP and Port Hash):根據(jù)客戶端的IP地址和端口進(jìn)行哈希計算,將請求發(fā)送到同一臺服務(wù)器上。
目標(biāo)IP哈希(Destination IP Hash):根據(jù)目標(biāo)服務(wù)器的IP地址進(jìn)行哈希計算,將請求發(fā)送到同一臺服務(wù)器上。
目標(biāo)IP和端口哈希(Destination IP and Port Hash):根據(jù)目標(biāo)服務(wù)器的IP地址和端口進(jìn)行哈希計算,將請求發(fā)送到同一臺服務(wù)器上。
最短期望延遲(Shortest Expected Delay):根據(jù)服務(wù)器的響應(yīng)時間估計,選擇期望延遲最短的服務(wù)器轉(zhuǎn)發(fā)請求。
靜態(tài)(Static):手動指定將請求發(fā)送到哪臺服務(wù)器上。