1. 程式人生 > >lvs叢集簡介

lvs叢集簡介

叢集的種類 主要分為:

1、HA:高可用叢集,又叫雙機熱備。

  (a)原理

     2臺機器A,B,正常是A提供服務,B待命閒置,當A宕機或服務宕掉,會切換至B繼續提供服務

  (b)常用的高可用開源軟體:heartbeat和keepalived(可以做負載均衡)

2、LB:負載均衡叢集

3、HPC:高效能運算叢集

LVSLinux Virtual Server的簡寫,意思是Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。

lvs專案的目標

:使用叢集技術和Linux作業系統實現一個高效能、高可用的伺服器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability)。

                                                       

     

                                                                                         虛擬伺服器的結構

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種模式

 

  1. Virtual Server via Network Address Translation(VS/NAT):網路地址對映
    通過網路地址轉換,排程器重寫請求報文的目標地址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源地址被重寫,再返回給客戶,完成整個負載排程過程。

  2. Virtual Server via IP Tunneling(VS/TUN):IP隧道模式
    採用NAT技術時,由於請求和響應報文都必須經過排程器地址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。為了解決這個問題,排程器把請求報 文通過IP隧道轉發至真實伺服器,而真實伺服器將響應直接返回給客戶,所以排程器只處理請求報文。由於一般網路服務應答比請求報文大許多,採用 VS/TUN技術後,集群系統的最大吞吐量可以提高10倍。

  3. 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叢集的特點

  1. 功能
    有實現三種IP負載均衡技術和八種連線排程演算法的IPVS軟體。在IPVS內部實現上,採用了高效的Hash函式和垃圾回收機制,能正確處理所排程報文相 關的ICMP訊息(有些商品化的系統反而不能)。虛擬服務的設定數目沒有限制,每個虛擬服務有自己的伺服器集。它支援持久的虛擬服務(如HTTP Cookie和HTTPS等需要該功能的支援),並提供詳盡的統計資料,如連線的處理速率和報文的流量等。針對大規模拒絕服務(Deny of Service)攻擊,實現了三種防衛策略。
    有基於內容請求分發的應用層交換軟體KTCPVS,它也是在Linux核心中實現。有相關的叢集管理軟體對資源進行監測,能及時將故障遮蔽,實現系統的高可用性。主、從排程器能週期性地進行狀態同步,從而實現更高的可用性。

  2. 適用性
    後端伺服器可執行任何支援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,視訊、音訊流播放協議等
    無需對客戶機和伺服器作任何修改,可適用大多數Internet服務。
     
  3. 效能
    LVS伺服器集群系統具有良好的伸縮性,可支援幾百萬個併發連線。配置100M網絡卡,採用VS/TUN或VS/DR排程技術,集群系統的吞吐量可高達1Gbits/s;如配置千兆網絡卡,則系統的最大吞吐量可接近10Gbits/s。

  4. 可靠性
    LVS伺服器叢集軟體已經在很多大型的、關鍵性的站點得到很好的應用,所以它的可靠性在真實應用得到很好的證實。有很多排程器執行一年多,未作一次重啟動。

  5. 軟體許可證
    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上展示。