(中國計算機報-趙建軍)
說到負載均衡,先得從集群講起,集群就是一組連在一起的計算機,從外部看它是一個系統,各節點可以是不同的操作系統或不同硬件構成的計算機。例如一個提供Web服務的集群,對外界來看是一個大Web服務器。不過集群的節點也可以單獨提供服務。
集群的概念容易和一些概念(SMP 、NUMA、MPP、分布處理)相混淆,其主要區別在資源被共享和復制的級別不同。它們是按SMP、NUMA、MPP、集群、分布處理從最緊密到最松散的排列。
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的服務。
四台服務器的負載均衡實例
所提供的服務:Web、FTP。
系統的實現目的:做一個較完善負載均衡的系統,以便能用到其中的較多的功能。
采用設備狀況:使用四台服務器,其中3台裝TurboLinux Cluster Server,1台安裝Windows 2000 Sever。
·系統安裝
1.在兩台服務器上安裝TurboLinux, apache和wu-ftpd也要安裝,因為集群要提供這種服務,安裝完後重啟,掛接光驅在目錄/mnt/cdrom下,執 行./TLCS-install,然後按提示完全安裝。
2.在一台服務器上安裝Windows 2000 Server,要安裝Internet Information Server 5.0。
·系統配置
1.設置各台服務器的IP地址、子網掩碼、路由等,調通網絡,將一台TurboLinux服務器設置 成DNS服務器,使其能夠正向解析和反向解析。服務器名此例為 pc1,域為test.com。
2.配置Cluster Server。執行Turbolinux clusteradmin,設置情況如下(注:箭頭連接的是選單選項,箭頭所指為下級選單,最後冒號後為設置情況)。
ClusterServer Configuration→Cluster Services→Application Stability Agents:
(1)http為默認的服務,不用設置
(2)ftp----/usr/lib/ftpAgent
ClusterServer Configuration→Cluster Services→Service Settings:
(1)http,80:TCP,sticky
(2)ftp,21:TCP,ftp
ClusterServer Configuration→Servers Configuration:
(1) pc1 (pc1.test.com),direct,ping
(2) pc2 (pc2.test.com),direct,ping
(3) pc3 (pc3.test.com),direct,ping
(4) pc4 (pc4.test.com),direct,ping
ClusterServer Configuration→Advance Traffic Managers:
(1)Advance Traffic Manager System: pc1.test.com
(2)Advance Traffic Manager Setting: 默認值
ClusterServer Configuration→Virtual Severs:
(1)主機為:pc1.test.com
(2)sendmail:[email protected]
(3)Server pool name: ServerGroup1
ClusterServer Configuration→Globle Settings:
網絡設置:netmask 255.255.255.0
·配置集群各接點
因為TurboLinux Cluster Server 本身能被工具自動同步,所以只需配置Windows 2000 Server:
開始→設置→控制面板→添加新硬件→下一步→添加/排除設備故障→添加新設備→否,我想從列表選擇硬件→其他設備→Microsoft:Microsoft Loopback Adapter→完成。
桌面上右鍵單擊“網上鄰居”→屬性→TCP/IP→設置IP地址、缺省網關,子網掩碼(注:先設成:255.255.255.0)。
開始→運行→regedit→找到注冊表中跟Microsoft Loopback Adapter相關的項,將子網掩碼改成:255.255.255.255。
配置系統以便運行合適的服務、並配置適合控制管理器管理的配置,以便可在控制管理器中使用。
·在管理選單中執行內容同步
選tlcs_content_sync,輸入密碼,將復制控制管理計算機中的服務內容。
·在管理選單中執行設置同步
選tlcs_config_sync,輸入密碼,將復制控制管理計算機中的設置。
現在已經可以進入運行狀態,可將客戶端連接在服務器的交換機上,客戶端可以請求Web和FTP服務,需要查看運行情況可以用控制台從https://pc1.test.com:910管理。
在計算機技術中集群負載平衡是自成體系的,目前它是一個熱門技術也是一個高端應用,Internet/Intranet中使用集群負載平衡方案的地方十分廣泛,尤其是大中型網站都難脫離這種技術,直接路由(Direct forwarding)、網絡地址轉換(NAT)、隧道技術(Tunneling)都會因需要而被采用。它在網絡中的作用和被人們重視程度都是很高的,如果你也感興趣的話,不妨也來試試。
(責任編輯 尤北 [email protected])