歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux上的集群及其配置實例(1)

一集群和Linux上的集群解決方案集群系統(Cluster)主要解決下面幾個問題:高可靠性(HA)。利用集群管理軟件,當主服務器故障時,備份服務器能夠自動接管主服務器的工作,並及時切換過去,以實現對用戶的不間斷服務。 高性能計算(HP)。即充分利用集群中的每一台計算機的資源,實現復雜運算的並行處理,通常用於科學計算領域,比如基因分析,化學分析等。 負載平衡。即把負載壓力根據某種算法合理分配到集群中的每一台計算機上,以減輕主服務器的壓力,降低對主服務器的硬件和軟件要求。 在實際應用中,最常見的情況是利用集群解決負載平衡問題,比如用於提供WWW服務。在這裡主要展示如何使用LVS(Linux Virtial Server)來實現實用的WWW負載平衡集群系統。二 LVS簡介LVS是章文嵩博士發起和領導的優秀的集群解決方案,許多商業的集群產品,比如RedHat的Piranha,TurboLinux公司的Turbo Cluster等,都是基於LVS的核心代碼的。在現實的應用中,LVS得到了大量的部署,請參考http: //www.linuxvirtualserver.org/deployment.Html關於Linux LVS的工作原理和更詳細的信息,請參考http://www.linuxvirtualserver.org。三 LVS配置實例通過Linux LVS,實現WWW,Telnet服務的負載平衡。這裡實現Telnet集群服務僅為了測試上的方便。LVS有三種負載平衡方式,NAT(Network Address Translation),DR(Direct Routing),IP Tunneling。其中,最為常用的是DR方式,因此這裡只說明DR(Direct Routing)方式的LVS負載平衡。1。網絡拓撲結構。 (點擊查看原圖) 如圖1所示,為測試方便,4台機器處於同一網段內,通過一交換機或者集線器相連。實際的應用中,最好能夠將虛擬服務器vs1和真實服務器rs1, rs2置於於不同的網段上,即提高了性能,也加強了整個集群系統的安全性。2。服務器的軟硬件配置 首先說明,雖然本文的測試環境中用的是3台相同配置的服務器,但LVS並不要求集群中的服務器規格劃一,相反,可以根據服務器的不同配置和負載情況,調整負載分配策略,充分利用集群環境中的每一台服務器。這3台服務器中,vs1作為虛擬服務器(即負載平衡服務器),負責將用戶的訪問請求轉發到集群內部的rs1,rs2,然後由rs1,rs2分別處理。client為客戶端測試機器,可以為任意操作系統。4台服務器的操作系統和網絡配置分別為:vs1: RedHat 6.2, Kernel 2.2.19vs1: eth0 192.168.0.1vs1: eth0:101 192.168.0.101rs1: RedHat 6.2, Kernel 2.2.14rs1: eth0 192.168.0.3rs1: dummy0 192.168.0.101rs2: RedHat 6.2, Kernel 2.2.14rs2: eth0 192.168.0.4rs2: dummy0 192.168.0.101client: windows 2000client: eth0 192.168.0.200其中,192.168.0.101是允許用戶訪問的IP。虛擬服務器的集群配置 大部分的集群配置工作都在虛擬服務器vs1上面,需要下面的幾個步驟:重新編譯內核。 首先,下載最新的Linux內核,版本號為2.2.19,下載地址為:http://www.kernel.org/,解壓縮後置於/usr/src/linux目錄下。其次需要下載LVS的內核補丁,地址為:http://www.linuxvirtualserver.org/software/ipvs- 1.0.6-2.2.19.tar.gz。這裡注意,如果你用的Linux內核不是2.2.19版本的,請下載相應版本的LVS內核補丁。將ipvs- 1.0.6-2.2.19.tar.gz解壓縮後置於/usr/src/linux目錄下。然後,對內核打補丁,如下操作:[root@vs2 /root]# cd /usr/src/linux[root@vs2 linux]# patch -p1 < ipvs-1.0.6-2.2.19/ipvs-1.0.6-2.2.19.patch下面就是重新配置和編譯Linux的內核。特別注意以下選項:1 Code maturity level options--->*  [*]Prompt for development and/or incomplete code/drivers2 Networking部分: [*] Kernel/User netlink socket  [*] Routing messages  <*> Netlink device emulation* [*] Network firewalls  [*] Socket Filtering  <*> Unix domain sockets* [*] TCP/IP networking  [*] IP: multicasting  [*] IP: advanced router  [ ] IP: policy routing  [ ] IP: equal cost multipath  [ ] IP: use TOS value as routing key  [ ] IP: verbose route monitoring  [ ] IP: large routing tables  [ ] IP: kernel level autoconfiguration* [*] IP: firewalling  [ ] IP: firewall packet netlink device* [*] IP: transparent proxy support* [*] IP: masquerading  --- Protocol-specific masquerading support will be built as modules.* [*] IP: ICMP masquerading  --- Protocol-specific masquerading support will be built as modules.* [*] IP: masquerading special modules support*  IP: ipautofw masq support (EXPERIMENTAL)(NEW)*  IP: ipportfw masq support (EXPERIMENTAL)(NEW)*  IP: ip fwmark masq-forwarding support (EXPERIMENTAL)(NEW)* [*] IP: masquerading virtual server support (EXPERIMENTAL)(NEW)  [*] IP Virtual Server debugging (NEW) <--最好選擇此項,以便觀察LVS的調試信息* (12) IP masquerading VS table size (the Nth power of 2) (NEW)*  IPVS: round-robin scheduling (NEW)*  IPVS: weighted round-robin scheduling (NEW)*  IPVS: least-connection scheduling (NEW)*  IPVS: weighted least-connection scheduling (NEW)*  IPVS: locality-based least-connection scheduling (NEW)*  IPVS: locality-based least-connection with replication scheduling (NEW)* [*] IP: optimize as router not host*  IP: tunneling  IP: GRE tunnels over IP  [*] IP: broadcast GRE over IP  [*] IP: multicast routing  [*] IP: PIM-SM version 1 support  [*] IP: PIM-SM version 2 support* [*] IP: aliasing support  [ ] IP: ARP daemon support (EXPERIMENTAL)* [*] IP: TCP syncookie support (not enabled per default)  --- (it is safe to leave these untoUChed)  < > IP: Reverse ARP  [*] IP: Allow large windows (not recommended if <16Mb of memory)  < > The IPv6 protocol (EXPERIMENTAL)


一集群和Linux上的集群解決方案集群系統(Cluster)主要解決下面幾個問題:高可靠性(HA)。利用集群管理軟件,當主服務器故障時,備份服務器能夠自動接管主服務器的工作,並及時切換過去,以實現對用戶的不間斷服務。 高性能計算(HP)。即充分利用集群中的每一台計算機的資源,實現復雜運算的並行處理,通常用於科學計算領域,比如基因分析,化學分析等。 負載平衡。即把負載壓力根據某種算法合理分配到集群中的每一台計算機上,以減輕主服務器的壓力,降低對主服務器的硬件和軟件要求。 在實際應用中,最常見的情況是利用集群解決負載平衡問題,比如用於提供WWW服務。在這裡主要展示如何使用LVS(Linux Virtial Server)來實現實用的WWW負載平衡集群系統。二 LVS簡介LVS是章文嵩博士發起和領導的優秀的集群解決方案,許多商業的集群產品,比如RedHat的Piranha,TurboLinux公司的Turbo Cluster等,都是基於LVS的核心代碼的。在現實的應用中,LVS得到了大量的部署,請參考http: //www.linuxvirtualserver.org/deployment.html關於Linux LVS的工作原理和更詳細的信息,請參考http://www.linuxvirtualserver.org。三 LVS配置實例通過Linux LVS,實現WWW,Telnet服務的負載平衡。這裡實現Telnet集群服務僅為了測試上的方便。LVS有三種負載平衡方式,NAT(Network Address Translation),DR(Direct Routing),IP Tunneling。其中,最為常用的是DR方式,因此這裡只說明DR(Direct Routing)方式的LVS負載平衡。1。網絡拓撲結構。 (點擊查看原圖) 如圖1所示,為測試方便,4台機器處於同一網段內,通過一交換機或者集線器相連。實際的應用中,最好能夠將虛擬服務器vs1和真實服務器rs1, rs2置於於不同的網段上,即提高了性能,也加強了整個集群系統的安全性。2。服務器的軟硬件配置 首先說明,雖然本文的測試環境中用的是3台相同配置的服務器,但LVS並不要求集群中的服務器規格劃一,相反,可以根據服務器的不同配置和負載情況,調整負載分配策略,充分利用集群環境中的每一台服務器。這3台服務器中,vs1作為虛擬服務器(即負載平衡服務器),負責將用戶的訪問請求轉發到集群內部的rs1,rs2,然後由rs1,rs2分別處理。client為客戶端測試機器,可以為任意操作系統。4台服務器的操作系統和網絡配置分別為:vs1: RedHat 6.2, Kernel 2.2.19vs1: eth0 192.168.0.1vs1: eth0:101 192.168.0.101rs1: RedHat 6.2, Kernel 2.2.14rs1: eth0 192.168.0.3rs1: dummy0 192.168.0.101rs2: RedHat 6.2, Kernel 2.2.14rs2: eth0 192.168.0.4rs2: dummy0 192.168.0.101client: Windows 2000client: eth0 192.168.0.200其中,192.168.0.101是允許用戶訪問的IP。虛擬服務器的集群配置 大部分的集群配置工作都在虛擬服務器vs1上面,需要下面的幾個步驟:重新編譯內核。 首先,下載最新的Linux內核,版本號為2.2.19,下載地址為:http://www.kernel.org/,解壓縮後置於/usr/src/linux目錄下。其次需要下載LVS的內核補丁,地址為:http://www.linuxvirtualserver.org/software/ipvs- 1.0.6-2.2.19.tar.gz。這裡注意,如果你用的Linux內核不是2.2.19版本的,請下載相應版本的LVS內核補丁。將ipvs- 1.0.6-2.2.19.tar.gz解壓縮後置於/usr/src/linux目錄下。然後,對內核打補丁,如下操作:[root@vs2 /root]# cd /usr/src/linux[root@vs2 linux]# patch -p1 < ipvs-1.0.6-2.2.19/ipvs-1.0.6-2.2.19.patch下面就是重新配置和編譯Linux的內核。特別注意以下選項:1 Code maturity level options--->*  [*]Prompt for development and/or incomplete code/drivers2 Networking部分: [*] Kernel/User netlink socket  [*] Routing messages  <*> Netlink device emulation* [*] Network firewalls  [*] Socket Filtering  <*> Unix domain sockets* [*] TCP/IP networking  [*] IP: multicasting  [*] IP: advanced router  [ ] IP: policy routing  [ ] IP: equal cost multipath  [ ] IP: use TOS value as routing key  [ ] IP: verbose route monitoring  [ ] IP: large routing tables  [ ] IP: kernel level autoconfiguration* [*] IP: firewalling  [ ] IP: firewall packet netlink device* [*] IP: transparent proxy support* [*] IP: masquerading  --- Protocol-specific masquerading support will be built as modules.* [*] IP: ICMP masquerading  --- Protocol-specific masquerading support will be built as modules.* [*] IP: masquerading special modules support*  IP: ipautofw masq support (EXPERIMENTAL)(NEW)*  IP: ipportfw masq support (EXPERIMENTAL)(NEW)*  IP: ip fwmark masq-forwarding support (EXPERIMENTAL)(NEW)* [*] IP: masquerading virtual server support (EXPERIMENTAL)(NEW)  [*] IP Virtual Server debugging (NEW) <--最好選擇此項,以便觀察LVS的調試信息* (12) IP masquerading VS table size (the Nth power of 2) (NEW)*  IPVS: round-robin scheduling (NEW)*  IPVS: weighted round-robin scheduling (NEW)*  IPVS: least-connection scheduling (NEW)*  IPVS: weighted least-connection scheduling (NEW)*  IPVS: locality-based least-connection scheduling (NEW)*  IPVS: locality-based least-connection with replication scheduling (NEW)* [*] IP: optimize as router not host*  IP: tunneling  IP: GRE tunnels over IP  [*] IP: broadcast GRE over IP  [*] IP: multicast routing  [*] IP: PIM-SM version 1 support  [*] IP: PIM-SM version 2 support* [*] IP: aliasing support  [ ] IP: ARP daemon support (EXPERIMENTAL)* [*] IP: TCP syncookie support (not enabled per default)  --- (it is safe to leave these untouched)  < > IP: Reverse ARP  [*] IP: Allow large windows (not recommended if <16Mb of memory)  < > The IPv6 protocol (EXPERIMENTAL)



Copyright © Linux教程網 All Rights Reserved