Cluster 集羣 ,羣集
http://zwfang09.blog.sohu.com/entry/
Cluster 集羣 ,羣集
--- 負載均衡 LB ,load-balance
--- 高可用集羣 HA ,High Availability
--- 高性能集羣 HP High Performancing
負載均衡—解決多用戶併發連接請求
LVS---即Linux Virtual Server 是一個服務集羣,又成爲Director
什麼時候會用到LVS: 高吞吐量 For higher throughput
冗餘 for redundancy
添加:for adaptability
LVS IP: Virtual IP address 即 VIP 虛擬IP
Real IP address 即RIP 真實IP
Director‘s IP address 即 DIP 與LVS通信的IP
Client computer‘s IP Address 即 CIP 客戶端
集羣類型:根據轉發方式分爲:
Network address translation LVS-NAT 地址轉換所有真實服務器必須在同一網絡
NAT所有入站和出站都經過Drector
Direct routing LVS-TOU 直接路由
IP tunling LVS-TUN 隧道 與Director在同一物理網段,Rip不能是私有IP
LVS的十種輪叫算法:
靜態調度算法:
1、Rr 輪叫算法
2、Wrr 加強輪叫算法
3、Destination hashing 只要是來源同一個IP地址的,就會發送到同一臺服務器
4、Source hashing 只要是同某個防火牆進來的,還要從這個防火牆出去
動態調度算法:
5、Least-connection LC 當一個新的請求連接發進來時,Director 會查看活動連接和非活動連接數來決定哪一個集羣node 接受這個請求, 值最小的會接受,如果值大小一樣,會從iptables表中從上到下選擇
6、Weighted Least-connection WLC 加權最少連接,指定權重,是集羣的默認算法
7、Shorted Expectd Delay SED 權重+1
8、Nerver Queen NQ 永遠不排隊
9、Locality-Based Least-Connection LBLC 基於本地的最少連接
10、Locality-Based Least-Connection Replication Scheduling LBLCR 基於本地的帶複製的最少連接
Ipvsadm參數選項:
-A 定義哪一種服務爲集羣使用
-E 修改集羣 -D 刪除 -E 修改 -C 清空
-a 爲某一個虛擬服務添加服務
-e 編輯服務 -d 刪除服務 -L或-l 列表顯示
-s 保存至某一文件 -R 恢復 -Z 清空計數器
--set 設定tcp默認超時時間
-t 指定tcp服務 -u 指定udp服務 –f 防火牆標記
-s 指定調度算法 -p persisent LVS的持久使用
-r 指定 real Server 的IP
-g 指定 DR類型 (默認) -i tun 類型 -
-m 指定NAT類型 -w 指定權重
構建:LVS-NAT
網絡環境:Director兩個網卡:外網:192.168.0.150 內網:192.168.10.10
內網服務器:Server1:IP 192.168.10.2 網關:192.168.10.10
Server2:IP 192.168.10.3 網關:192.168.10.10
外網服務器:IP 192.168.0.157 網關:192.168.0.150
Director服務器要開啓路由功能;內網服務器Server1,Server2,開啓httpd服務
配置:Director:要先裝上ipvsadm工具
#yum install ipvsadm
使用輪叫算法rr
外網測試:輪叫算法,依次顯示Server1和Server2的www頁面
加強輪叫算法:wrr ,將Server1—192.168.10.2的權重設置爲3
外網測試:結果顯示3次Server1的www頁面,再顯示1次Server2的www頁面
dh 算法:來源於同一個IP地址的,就會發送到同一臺服務器
測試結果,一直顯示Server1的www頁面,(Server1,Server2是隨機顯示的)
LVS-DR:
arp_announce 直接向別人宣稱自己的別名地址,而不是主地址
0 ----使用主地址
1----儘量避免使用和請求ip不在同一網段的ip
2----使用最合適的ip
arp_ignore 怎樣相應別人
0----使用本地主ip
1----從哪塊網卡進來,就從哪塊網卡迴應
2----從哪塊網卡進來,就從哪塊網卡迴應,並使用在同一網段的ip
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
DR模式構建:
三臺主機都在同一網段:
Drector:192.168.0.150
Server1:192.168.0.151
Server2:192.168.0.152
做IP隱藏:Server1
爲lo添加IP 192.168.0.156,並作路由
server2:
Drector:添加IP 192.168.0.156,並作路由
添加ipsadm規則:
測試:兩次出現server2的www頁面,一次出現server1的www頁面
防火牆標記:
LVS-persistence 用於SSL,密鑰交換
持久連接默認時間360s ,-p N 設置連接時間
持久連接類型:
Persisent client connections –PCC
Persisent port connections –PPC
Persisent Netfilter Marked Packet persistence
FTP connections
Expired persistence
首先要在real server1和real server2上實現證書服務:
Server1:
1、#yum install mod_ssl
生成密鑰:cakey.pem
2、做自簽證書:
3、將自簽證書的權限修改爲600
4、將證書的路徑 修改爲 /etc/pki/CA
5、在/etc/pki/CA目錄下新建目錄newcerts ,新建文件index.txt和serial 並echo 00 到serial中
6、在/etc/httpd目錄下做證書
頒發證書:
7、編輯/etc/httpd/conf.d/ssl.conf文件,將路徑修改爲如下:/etc/httpd/ssl/httpd.conf
8、本機https測試:需要認證
9、Real server2:由於Real server1主機上已經申請了證書服務,所以只在server2上生成密鑰和請求,讓server1給server2頒發證書:
在/etc/httpd/目錄下生成證書請求;
10、將生成的請求複製到Real server1
11、Server1給server2頒發證書:
12、將生成的證書在拷貝到server2上
13、編輯/etc/httpd/conf.d/ssl.conf文件,將路徑修改爲如下:/etc/httpd/ssl/httpd.conf
14、server2本機測試需要認證:
15、添加ipvsadm規則:控制443端口
CIP客戶機測試:
16、清空上面規則,重新添加
測試:持久連接server2
17、添加防火牆標記
測試:即可使用http訪問,也可使用https訪問,並且server1頁面顯示1次,server2頁面顯示2次
http訪問:
https測試: