認識負載均衡架設平臺LVS的三種機制
在Linux下設置集群是通過Linux virtual severr來完成的,當然,負載平衡的建設前提也是在此之上的。那么,我們想要學會其中的設置過程,首先要了解它的基本構成原理,那么現在我們要對其中的基本概念進行一個介紹。希望對大家有所幫助。
LVS可稱為Linux虛擬服務器,它具備高可用性、可擴充性和科學性的數學運算,而這些也就是集群系統 (Cluster System)的應用。
高可用性High-Availability (HA) 不允許有服務中斷的情形發生時。由兩臺以上的計算機通過一定方式互相監聽,當主要服務器主機出現問題而無預警的停止服務時,備份服務器能夠自動立即接替工作,使客戶端感覺不出有異。可擴充性 (Scalability) 應用在web 、ftp server上為多。當用戶連結一個地址,但實際上是有若干臺服務器在提供服務。而當服務請求達到飽和時,還可以很容易地再添加新的節點而不用停掉整個 cluster,實現所謂的"熱插拔",這也就是Cluster中的一個概念-Scalability (易擴展性)。而且,cluster還會查詢真實節點的情況,當某臺真實節點沒有響應時,就不再把任務分配到那里,直到這臺節點恢復正常。科學的數學運算 (Scientific) 用于效能、圖像處理等計算。Cluster已經發展多年,也比較成熟了。之前需要專業的軟/硬設備才能實現。所以只有少數公司才有能力用的起。現在Linux上的LVS就可以讓你在PC上架設Cluster的解決方案,使更多的人有機會構建自己的cluster。LVS提供了三種轉發機制(Traffic Forward Mechanism)、四種分配方法(Load-balancing Methods),以下詳述
三轉發機制(Traffic Forward Mechanism)
三種不同的轉發機制分別將LVS主機建構成
NAT虛擬主機 Virtual Server via Network Address Translation
IP Tunneling虛擬主機 Virtual Server via IP Tunneling
Direct Routing虛擬主機 Virtual Server via Direct Routing
負載平衡主機可稱為Virtual Server ( 虛擬主機 )、Load Balancer (負載平衡器)、Linux Director (導引主機),以下簡稱為LVS主機
NAT虛擬主機 Virtual Server via Network Address Translation ( VS/NAT )
由于IPv4中IP地址空間的日益不足和安全方面的原因,很多網絡使用Internet上未被分配的私有IP地址(10.0.0.0/255.0.0.0、 172.16.0.0/255.128.0.0 和192.168.0.0/255.255.0.0)。當內部網絡中的主機要連結Internet或被Internet連結時,就需要采用網絡地址轉換(Network Address Translation, 以下簡稱NAT),可以用NAT方法將不同IP地址的并行網絡服務變成在一個IP 地址上的一個虛擬服務。
在一組服務器前有一個LVS主機,用戶通過Virtual IP Address(即LVS主機的外部地址)連結服務時,請求到達LVS主機,LVS主機以負載平衡方法從一組真實服務器選出一個,將目標地址 Virtual IP Address重新指向內部實際提供服務服務器的地址。同時,LVS主機記錄這個連接,當這個連接的真實服務器的響應經過LVS主機時,LVS主機將來源地址和來源端口改?Virtual IP Address和相應的埠,再把響應發給用戶。當連接終止或逾時,LVS主機將這個連接從紀錄中刪除。這樣,用戶所看到的只是在Virtual IP Address 上提供的服務。
IP Tunneling 虛擬主機 Virtual Server via IP Tunneling (VS/TUN)
在VS/NAT 的集群系統中,請求和應答的封包都需要通過LVS主機,當實際服務器的數量超過20時,LVS主機將成為集群系統的新瓶頸。利用IP隧道技術將請求封包封裝轉發給后端服務器,響應封包能從后端服務器直接返回給客戶。但在這里,后端服務器有一組而非一個,所以我們不可能靜態地建立一一對應的隧道,而是動態地選擇一臺服務器,將請求封包封裝和轉發給選出的服務器。這樣,我們可以利用IP隧道的原理將一組服務器上的網絡服務組成在一個IP地址上的虛擬網絡服務。
各個服務器將 VIP地址配置在自己的IP隧道設備上。
VS/TUN 的連接分配和管理與VS/NAT中的一樣,只是它的封包轉發方法不同。負載平衡主機根據各個服務器的負載情況,動態地選擇一臺服務器,將請求封包封裝在另一個IP封包中,再將封裝后的IP封包轉發給選出的服務器;那臺服務器收到封包后,先將封包解封獲得原來目標地址為VIP的封包,服務器發現VIP地址被配置在本地的IP隧道設備上,所以就處理這個請求,然后根據路由表將響應封包直接返回給客戶。
Direct Routing 虛擬主機 Virtual Server via Direct Routing (VS/DR)
這種IP層負載平衡方法與IBM的NetDispatcher中的方法類似。
LVS 主機和服務器組都必須在同一網絡區域中,如通過交換機或者高速的HUB相連。VIP地址為LVS主機和服務器組共享,LVS主機配置的VIP地址是對外可連結的,用于接收虛擬服務的請求封包;所有的服務器把VIP地址配置在各自的Non-ARP網絡設備上,它對外面是不可見的,只是用于處理目標地址? VIP的網絡請求。
VS/DR的連接分配和管理與VS/NAT和VS/TUN中的一樣,它的封包轉發方法又有不同,將封包直接路由給目標服務器。在VS/DR中,LVS主機根據各個服務器的負載情況,動態地選擇一臺服務器,不修改也不封裝IP封包,而是將資料封包的MAC地址改為選出服務器的MAC地址,再將修改后的資料封包在與服務器組的局域網上發送;因為資料封包的MAC地址是選出的服務器,所以服務器肯定可以收到該封包,發現VIP 地址被配置在本地的網絡設備上,所以就處理這個請求,然后根據路由表將響應封包直接返回給客戶。