lvs叢集簡介
叢集的種類 主要分為:
1、HA:高可用叢集,又叫雙機熱備。
(a)原理
2臺機器A,B,正常是A提供服務,B待命閒置,當A宕機或服務宕掉,會切換至B繼續提供服務
(b)常用的高可用開源軟體:heartbeat和keepalived(可以做負載均衡)
2、LB:負載均衡叢集
3、HPC:高效能運算叢集
LVS是Linux Virtual Server的簡寫,意思是Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。
lvs專案的目標
虛擬伺服器的結構
LVS叢集使用三層架構
第一層:負載均衡層(Load Balancer)
位於整個集群系統的最前端,由一臺或多臺負載排程器(Director Server,以下簡稱dir)組成。
dir的作用類似一個路由器,它含有為完成LVS功能所設定的路由表,通過這些路由表把使用者的請求分發給伺服器群組層的應用伺服器(Real Server)
ps:客戶認為服務是來自一個虛擬IP地址上
第二層:伺服器群組層(Server Arrary)
由一組實際執行應用服務的機器組成。Real Server(以下簡稱rs)可以是Web伺服器、Mail伺服器、FTP伺服器、DNS伺服器等
第三層:共享儲存層(Shared Storage)
是為所有rs提供共享儲存空間和內容一致性的儲存區域,一般由磁碟陣列裝置組成。
一般可以通過NFS網路檔案系統共享資料(在繁忙的業務系統中,效能並不太好),此時可以用叢集檔案系統,如 Red Hat 的 GFS 檔案系統,Oracle 提供的 OCFS2 檔案系統等
LVS分3種模式
-
Virtual Server via Network Address Translation(VS/NAT):網路地址對映
通過網路地址轉換,排程器重寫請求報文的目標地址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源地址被重寫,再返回給客戶,完成整個負載排程過程。 -
Virtual Server via IP Tunneling(VS/TUN):IP隧道模式
採用NAT技術時,由於請求和響應報文都必須經過排程器地址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。為了解決這個問題,排程器把請求報 文通過IP隧道轉發至真實伺服器,而真實伺服器將響應直接返回給客戶,所以排程器只處理請求報文。由於一般網路服務應答比請求報文大許多,採用 VS/TUN技術後,集群系統的最大吞吐量可以提高10倍。 -
Virtual Server via Direct Routing(VS/DR):直接路由模式
VS/DR通過改寫請求報文的MAC地址,將請求傳送到真實伺服器,而真實伺服器將響應直接返回給客戶。同VS/TUN技術一樣,VS/DR技術可極大地 提高集群系統的伸縮性。這種方法沒有IP隧道的開銷,對叢集中的真實伺服器也沒有必須支援IP隧道協議的要求,但是要求排程器與真實伺服器都有一塊網絡卡連 在同一物理網段上。
ps:還有第 4 種模式 FULLNAT
VS/NAT模式:客戶機-->請求分發伺服器-->Real Server-->請求分發伺服器--->客戶機。
VS/DR模式:客戶機-->請求分發伺服器-->Real Server-->客戶機。
VS/TUN模式:客戶機-->請求分發伺服器-->Real Server-->客戶機。
LVS叢集的特點
-
功能
有實現三種IP負載均衡技術和八種連線排程演算法的IPVS軟體。在IPVS內部實現上,採用了高效的Hash函式和垃圾回收機制,能正確處理所排程報文相 關的ICMP訊息(有些商品化的系統反而不能)。虛擬服務的設定數目沒有限制,每個虛擬服務有自己的伺服器集。它支援持久的虛擬服務(如HTTP Cookie和HTTPS等需要該功能的支援),並提供詳盡的統計資料,如連線的處理速率和報文的流量等。針對大規模拒絕服務(Deny of Service)攻擊,實現了三種防衛策略。
有基於內容請求分發的應用層交換軟體KTCPVS,它也是在Linux核心中實現。有相關的叢集管理軟體對資源進行監測,能及時將故障遮蔽,實現系統的高可用性。主、從排程器能週期性地進行狀態同步,從而實現更高的可用性。 -
適用性
後端伺服器可執行任何支援TCP/IP的作業系統,包括Linux,各種Unix(如FreeBSD、Sun Solaris、HP Unix等),Mac/OS和Windows NT/2000等。
負載排程器能夠支援絕大多數的TCP和UDP協議:協議 內 容 TCP HTTP,FTP,PROXY,SMTP,POP3,IMAP4,DNS,LDAP,HTTPS,SSMTP等 UDP DNS,NTP,ICP,視訊、音訊流播放協議等
-
效能
LVS伺服器集群系統具有良好的伸縮性,可支援幾百萬個併發連線。配置100M網絡卡,採用VS/TUN或VS/DR排程技術,集群系統的吞吐量可高達1Gbits/s;如配置千兆網絡卡,則系統的最大吞吐量可接近10Gbits/s。 -
可靠性
LVS伺服器叢集軟體已經在很多大型的、關鍵性的站點得到很好的應用,所以它的可靠性在真實應用得到很好的證實。有很多排程器執行一年多,未作一次重啟動。 -
軟體許可證
LVS叢集軟體是按GPL(GNU Public License)許可證發行的自由軟體,這意味著你可以得到軟體的原始碼,有權對其進行修改,但必須保證你的修改也是以GPL方式發行。
lvs叢集的應用
LVS專案從成立到現在為止,受到不少關注,LVS集群系統已被應用於很多重負載的站點,就我所知該系統已在美、英、德、澳等國的幾十個站點上正式使用。
我們沒有上百臺機器和高速的網路來實際測試LVS的終極效能,所以舉LVS的應用例項來說明LVS的高效能和穩定性。我們所知的一些大型LVS應用例項如下:
-
英國國家JANET Cache Service(wwwcache.ja.net)是為英國150所以上的大學提供Web Cache服務。他們用28個結點的LVS叢集代替了原有現50多臺相互獨立的Cache伺服器,用他們的話說現在速度就跟夏天一樣,因為夏天是放假期間沒有很多人使用網路。
-
Linux的門戶站點(www.linux.com)用LVS將很多臺VA Linux SMP伺服器組成高效能的WEB服務,已使用將近一年。
-
SourceForge(sourceforge.net)是在全球範圍內為開發原始碼專案提供WEB、FTP、Mailing List和CVS等服務,他們也使用LVS將負載排程到十幾臺機器上。
-
世界上最大的PC製造商之一採用了兩個LVS集群系統,一個在美洲,一個在歐洲,用於網上直銷系統。
-
以RealPlayer提供音訊視訊服務而聞名的Real公司(www.real.com)使用由20臺伺服器組成的LVS叢集,為其全球使用者提供音訊視訊服務。在2000年3月時,整個集群系統已收到平均每秒20,000個連線的請求流。
-
NetWalk(www.netwalk.com)用多臺伺服器構造LVS系統,提供1024個虛擬服務,其中本專案的一個美國映象站點(www.us.linuxvirtualserver.org)。
-
RedHat(www.redhat.com)從其6.1發行版起已包含LVS程式碼,他們開發了一個LVS叢集管理工具叫Piranha,用於控制LVS叢集,並提供了一個圖形化的配置介面。
-
VA Linux(www.valinux.com)向客戶提供基於LVS的伺服器集群系統,並且提供相關的服務和支援。
-
TurboLinux的"世界一流Linux叢集產品"TurboCluster實際上是基於LVS的想法和程式碼的,只是他們在新聞釋出和產品演示時忘了致謝 。
-
紅旗Linux和中軟都提供基於LVS的叢集解決方案,並在2000年9月召開的Linux World China 2000上展示。