&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 集群的概念容易和一些概念(SMP 、NUMA、MPP、分佈處理)相混淆,其主要區別在資源被共用和複製的級別不同。 它們是按SMP、NUMA、MPP、集群、分佈處理從最緊 密到最鬆散的排列。
由於目前現有網路的各個核心部分隨著業務量的提高,訪問量和資料流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的伺服器設備根本無法承擔。 在此情況下,如果扔掉現有設備去做大量的硬體升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬體升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量增長的需求。
針對此情況而衍生出來的一種廉價有效透明的方法以擴展現有網路設備和伺服器的頻寬、增加輸送量、加強網路資料處理能力、提高網路的來實現的,在DNS中為多個位址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個位址, 從而使得不同的客戶訪問不同的伺服器,達到負載均衡的目的。 DNS負載均衡是一種簡單而有效的方法,但是它不能區分伺服器的差異,也不能反映伺服器的當前運行狀態。
SMP(多處理系統):這種系統是在一台電腦裡有多個CPU,CPU之間的地位是平等的,它們共用記憶體空間和I/O設備。 其工作方法是由作業系統負責將任務分解成多個併發進程,然後讓其在不同的CPU上運行。
NUMA(非統一記憶體存取):這種系統可以讓多處理電腦的CPU比SMP更高效地共用本地記憶體,CPU可以更快速地存取單一的記憶體區域,不過如需要也可以用間接方式存取其他區域的記憶體, 這種方法是讓某些CPU在給定範圍的實體記憶體中有更大的優先使用權。
MPP(巨型並行處理):這種系統的節點都有自己的CPU,並有自己的專有資源。 此種結構相對獨立,但各個節點一般沒有完全存取I/O的能力。
集群:集群系統是由獨立的電腦群組成,但有控制管理工具統一管理。
分佈處理:它是比我們要構築的集群系統更鬆散的連接,一般是任務在不同的地方完成,沒有可以作為整體管理的單一實體。
以上的聚合方式有緊有疏,它們都有自己的適用範圍,這裡就不多說了,有興趣可自己找些資料看,這裡只是想讓大家瞭解它所處的位置。
實現負載均衡的方法
集群的目的是共用和高效地利用資源,提供大型運算,提供負載均衡分配請求壓力以及出現故障時能夠進行切換實現高可用性。
限於篇幅,本文只對負載均衡的實現做些介紹(針對TurboLinux Cluster Server)。 通過對相關軟體的分析,實現集群負載的功能是通過流量管理實現的,具體有這樣幾種實現方法:直接路由(Direct forwarding)、網路位址轉譯(NAT)、隧道技術(Tunneling)。
直接路由(Direct forwarding)
當參與集群的電腦和作為控制管理的電腦在同一個網段時可以用此法,控制管理的電腦接收到請求包時直接送到參與集群的節點。 優點是返回給客戶的流量不經過控制主機,速度快開銷少。
網路位址轉譯(NAT)
這種方法可能大家較熟悉,位址轉換器有能被外界訪問到的合法IP位址,它修改來自專有網路的流出包的位址,外界看起來包是來自位址轉換器本身,當外界包送到轉換器時,它能判斷出應該將包送到內部網的哪個節點。 優點是節省IP位址,能對內部進行偽裝;缺點是效率低,因為返回給請求方的流量經過轉換器。
隧道技術(Tunneling)
這種方式是在集群的節點不在同一個網段時可用的轉發機制,是將IP包封裝在其他網路流量中的方法,為了安全的考慮,應該使用隧道技術中的VPN,也可使用租用專線。
集群所能提供的服務是基於TCP/IP的Web服務、Mail服務、News服務、DNS服務、Proxy伺服器等等,下面我們將就具體的產品TurboLinux Cluster Server 來實現一個進行負載均衡集群系統, 用於提供Web和FTP的服務。