linux叢集 負載平衡實驗筆記
一、網路拓撲圖:
二、虛擬機器設定
在一台物理電腦上建立三台虛擬機器,本機為Windows作業系統,配192.168.1.0網段的地址,三台虛擬機器的作業系統都裝的CentOS5.4。其中一台做負載平衡器,這台虛擬機器需要配兩張網卡。另外兩台只要一張網卡,同時裝上httpd。
a) 負載平衡器的配置
第一張網卡配置:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:0C:29:57:28:8e
IPADDR=192.168.1.12
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
ONBOOT=yes
第二張網卡配置:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.11.255
HWADDR=00:0C:29:57:28:89
IPADDR=192.168.11.1
NETMASK=255.255.255.0
NETWORK=192.168.11.0
ONBOOT=yes
b) 實施伺服器配置
第一台web網卡配置:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:0C:29:57:28:82
IPADDR=192.168.11.2
NETMASK=255.255.255.0
NETWORK=192.168.11.0
GATEWAY=192.168.11.1
ONBOOT=yes
第二台web網卡配置:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:0C:29:57:28:84
IPADDR=192.168.11.3
NETMASK=255.255.255.0
NETWORK=192.168.11.0
GATEWAY=192.168.11.1
ONBOOT=yes
這裡需要說明下:每個mac不同。根據實際情況填寫。如果虛擬機器的網卡啟動有問題參考:http://hi.baidu.com/wxlccsu/blog/item/f58b4acf2c09b5400eb34561.html
三、實施配置
1、在負載平衡器上
#yum –y install ipvsadm (如果有問題檢查網路或yum源)
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
addons | 951 B 00:00
base | 2.1 kB 00:00
extras | 2.1 kB 00:00
mod-pagespeed | 951 B 00:00
update | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package ipvsadm.i386 0:1.24-10 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ipvsadm i386 1.24-10 base 31 k
Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 31 k
Downloading Packages:
ipvsadm-1.24-10.i386.rpm | 31 kB 00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : ipvsadm 1/1
Installed:
ipvsadm.i386 0:1.24-10
Complete!
# sysctl -w net.ipv4.ip_forward=1開啟路由功能
#ipvsadm -C 清除原來的叢集策略
#ipvsadm -A -t 192.168.1.12:80 -s rr //-A 增加一個叢集,-t tcp協議,-s 演算法
#ipvsadm -L n // 查看叢集成員
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.10:80 rr
#ipvsadm -a -t 192.168.1.12:80
//-a 增加一個realserver -t tcp協議的ip -m 地址偽裝叫用次數
# ipvsadm -a -t 192.168.1.12:80 -r 192.168.11.3:80 -m -w 1
#ipvsadm -L n // 再次查看叢集成員
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.10:80 rr
-> 192.168.11.3:80 Masq 1 0 0
-> 192.168.11.2:80 Masq 1 0 0
或者直接設定檔
#vi/etc/sysconfig/ipvsadm
添加如下內容
-A -t 192.168.1.12:80 -s rr
-a -t 192.168.1.12:80 -r 192.168.11.2:80 -m -w 1
-a -t 192.168.1.12:80 -r 192.168.11.3:80 -m -w 1
第一條為VIP的地址以及負載平衡的演算法
-s參數為選擇負載平衡演算法
*輪叫調度(Round-RobinScheduling)RR
*加權輪叫調度(WeightedRound-RobinScheduling)WRR
*最小串連調度(Least-ConnectionScheduling)LCS
*加權最小串連調度(WeightedLeast-ConnectionScheduling)WLC
*基於局部性的最少連結(Locality-BasedLeastConnectionsScheduling)LLCS
*帶複製的基於局部性最少連結(Locality-BasedLeastConnectionswithReplicationScheduling)LLCRS
*目標地址散列調度(DestinationHashingScheduling)DHS
*源地址散列調度(SourceHashingScheduling)SHS
後面為增加各個節點
-w參數為每個節點的權值
啟動ipvsadm
#/etc/init.d/ipvsadmrestart
2、在兩台web伺服器上同時啟動httpd服務
#/etc/init.d/httpd start
在第一台
# cd /var/www/html/
#echo “this is realserv 1” > index.html
在第二台
# cd /var/www/html/
#echo “this is realserv 2” > index.html
四、測試
在Windows客戶機的瀏覽器中輸入192.168.1.12 可以看到瀏覽器先顯示” this is realserv 1”,再重新整理後顯示“this is realserv 2”
註:如果ipvsadm 是源碼的話,那就要考慮到系統核心的版本。要找到與核心版本匹配的源碼安裝包。:http://www.linuxvirtualserver.org/software/ipvs.html