keepalived+LVS/DR的搭建
阿新 • • 發佈:2018-08-17
需要 參數 localhost 默認 glob 關閉防火墻 wal 客戶端訪問 enc
集群
1 高性能計算機集群HPC
通過以集群開發的並行應用程序,解決復雜的科學問題
2 負載均衡(LB)集群
客戶端負載在計算機集群中盡可能平均分攤
3 高可用(HA)集群
避免單點故障,當一個系統發生故障時,可以快速遷移
LVS集群(LB)
前端:負載均衡層
由一臺或多臺負載調度器構成
中間:服務器群組層
由一組實際運行應用服務的服務器組成
底端:數據共享存儲層
提供共享存儲空間的存儲區域
Driector Server:調度服務器
將負載分發到Real Server的服務器
Real Server:真實服務器
真正提供應用服務的服務器
VIP:虛擬IP地址
公布給用戶訪問的虛擬IP地址
RIP:真實IP地址
集群節點上使用的IP地址
DIP:調度器連接點服務器的IP地址
工作模式:
LVS/NAT:通過網絡地址轉換實現的虛擬服務器
缺點:大並發訪問時,調度器的性能成為瓶頸
LVS/DR:直接使用路由技術實現虛擬服務器
節點服務器需要配置VIP,註意MAC地址廣播
LVS/TUN:通過隧道方式實現虛擬服務器
負載均衡調度算法:
(Round Robin)rr輪詢:將客戶端請求平均分發到Real Server
(Weighted Round Robin)wrr加權輪詢:根據Real Server權重值進行輪詢調度
(Least Connections)lc最少連接:選擇連接數最少的服務器
(Weighted Least Connections)wlc加權最少連接:根據Real Server權重值,選擇連接數最少的服務器
(Source Hashing)sh源地值散列:根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器
LVS/NAT
service iptables stop 關閉防火墻
chkconfig iptables off
chkconfig httpd on
echo 192.168.4.51 > /var/www/html/test.html
service httpd start 起服務
chkconfig httpd on 開機自起
yum -y install elinks
elinks --dump http://192.168.4.51/test.html
配置分發器50:
1 開啟內核路由功能
2 裝包
3 添加虛擬服務
4 添加realserver
5 啟動服務
6 測試
1 開啟內核路由功能
vim /etc/sysctl.conf
7 net.ipv4.ip_forward = 1 開啟路由功能
service network restart 重起網卡
網絡服務51/52
1.1 指定網關地址
臨時:
route -n
Flags:UG
route add default gw 192.168.4.50
del
vim /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=192.168.4.50
客戶端2.253
1.2 指定網關地址
臨時:
route -n
Flags:UG
route add default gw 192.168.2.50
del
vim /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=192.168.4.50
2 裝包 ipvsadm
wget ftp://192.168.4.254/xixi/LoadBalancer/ipvsadm-1.26-4.el6.x86_64.rpm
rpm -ivh ipvsadm-1.26-4.el6.x86_64.rpm
ipvsadm 用法
-A 添加虛擬服務
-t 設置集群地址(VIP,Vitual IP)
-s 指定負載調度算法
-a 添加真實服務器
-d 刪除真實服務器
-r 指定真實服務器(Real Server)的地址
-m 使用NAT模式
-g 使用DR模式
-i 使用TUN模式
-w 為節點服務器設置權重,默認為1
-Ln 查看
-E 修改負載均衡調度算法
3 添加虛擬服務
ipvsadm -A -t 192.168.2.50:80 -s rr
4 添加realserver
ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.51:80 -m
ipvsadm -a -t 192.168.2.50:80 -r 192.168.4.52:80 -m
service ipvsadm save 保存
chkconfig ipvsadm on
刪除realserver
ipvsadm -d -t 192.168.2.50:80 -r 192.168.4.52:80 -m
修改算法
ipvsadm -E -t 192.168.2.50:80 -r 192.168.4.52:80 -wrr
修改權重
ipvsadm -e -t 192.168.2.50:80 -r 192.168.4.52:80 -w 3 -m
ipvsadm -C 清空所有
service ipvsadm save
5 啟動服務
service ipvsadm start
service ipvsadm startus
ipvsadm -Ln
ipvsadm -Ln --stats
curl http://192.168.2.50/test.html
====================================================================
====================================================================
LVS/DR
DR用虛擬VIP地址來解決調度器的瓶頸,
實現後端服務器直接給客戶端回包。
配置LVS/DR模式的LB集群
1 配置網站服務器51/52
1.1 配置VIP地址
1.2 修改網絡接口運行參數
1.3 運行網站服務並網頁文件
2 配置分發器
2.1 裝包ipvsadm
2.2 配置VIP地址
2.3 創建虛擬服務
2.4 添加realserver
2.5 保存配置,查看配置
3 客戶端訪問
3.1 訪問
1 配置網站服務器51/52
ifconfig lo:1 192.168.4.252/32
ifconfig lo:1
cd /proc/sys/net/ipv4/conf
cat lo/arp_ignore
echo 1 > lo/arp_ignore 只接收本地接口的廣播包
echo 2 > lo/arp_announce 幫lo口接收包
cat all/arp_ignore eth0配置
echo 1 > all/arp_ignore
echo 2 > all/arp_announce
cat /etc/rc.local 開機中最後讀取的文件
2 配置分發器
2.1 裝包ipvsadm
2.2 配置VIP地址
ifconfig eth0:1 192.168.4.252/32
ifconfig eth0:1
2.3 創建虛擬服務
ipvsadm -A -t 192.168.4.252:80 -s rr
2.4 添加realserver
ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.51:80 -g
ipvsadm -a -t 192.168.4.252:80 -r 192.168.4.52:80 -g
2.5 保存配置,查看配置
service ipvsadm save 保存
chkconfig ipvsadm on
ipvsadm -Ln --stats
Prot LocalAddress:Port Conns InPkts OutPkts InBytes(進包數) OutBytes(出包數)
-> RemoteAddress:Port
TCP 192.168.4.252:80 10 53 0 4666 0
-> 192.168.4.51:80 5 27 0 2359 0
-> 192.168.4.52:80 5 26 0 2307 0
ipvsadm -Ln
-> RemoteAddress:Port Forward Weight(權重) ActiveConn InActConn
TCP 192.168.4.252:80 rr
-> 192.168.4.51:80 Route(DR模式) 1 0 0
-> 192.168.4.52:80 Route(DR模式) 1 0 0
3 客戶端訪問
arping -c2 192.168.4.252 (回包MAC地址是分發器的MAC地址)
curl http://192.168.4.252/test.html
解綁IP地址: ifdwon lo:1 ,ifconfig lo:1
或service network restart(重起網卡服務)
keepalived+LVS/DR
配置LVS/DR
配置後端網站服務器
ifconfig lo:1 192.168.4.252/32 (後端服務器配置VIP)
ifconfig lo:1
cd /proc/sys/net/ipv4/conf
cat lo/arp_ignore
echo 1 > lo/arp_ignore 只接收本地接口的廣播包
echo 2 > lo/arp_announce 幫lo口接收包
cat all/arp_ignore eth0配置
echo 1 > all/arp_ignore
echo 2 > all/arp_announce
調度器配置
yum -y install ipvsadm
service ipvsadm start
yum -y install keepalived
service keepalived start
主:
vim /etc/kepalived/kepalived.conf
global_defs {
notification_email {
abc@localhost 設置報警郵件人郵箱
}
notification_email_from [email protected] 設置發件人
smtp_server 192.168.200.1 定義郵件服務器
smtp_connect_timeout 30
router_id LVS_DEVEL 設置路由ID號
}
vrrp_instance webha {
state MASTER 主服務器為MASTER,輔助為SLAVE或BACKUP
interface eth0 定義網卡接口
virtual_router_id 51 主輔VRID號必須一致
priority 150 服務器優先級,越大優先級越高
advert_int 1
authentication {
auth_type PASS
auth_pass 123456 主輔服務器密碼必須一致
}
virtual_ipaddress { 設置VIP
192.168.4.252 可用多個
}
}
virtual_server 192.168.4.252 80 { 設置VIP
delay_loop 6
lb_algo rr 設置LVS調度算法為rr
lb_kind DR 設置LVS的模式為DR
nat_mask 255.255.255.0
persistence_timeout 50 同一客戶端訪問服務器超過50秒才改變服務器
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.51 80 { 後端服務器ip地址
weight 1
}
real_server 192.168.4.52 80 {
weight 1
}
}
輔:
vim /etc/kepalived/kepalived.conf
global_defs {
notification_email {
abc@localhost 設置報警郵件人郵箱
}
notification_email_from [email protected] 設置發件人
smtp_server 192.168.200.1 定義郵件服務器
smtp_connect_timeout 30
router_id LVS_DEVEL 設置路由ID號
}
vrrp_instance webha {
state BACKUP 主服務器為MASTER,輔助為SLAVE或BACKUP
interface eth0 定義網卡接口
virtual_router_id 51 主輔VRID號必須一致
priority 100 服務器優先級,越大優先級越高
advert_int 1
authentication {
auth_type PASS
auth_pass 123456 主輔服務器密碼必須一致
}
virtual_ipaddress { 設置VIP
192.168.4.252 可用多個
}
}
virtual_server 192.168.4.252 80 { 設置VIP
delay_loop 6
lb_algo rr 設置LVS調度算法為rr
lb_kind DR 設置LVS的模式為DR
nat_mask 255.255.255.0
persistence_timeout 50 同一客戶端訪問服務器超過50秒才改變服務器
protocol TCP
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
real_server 192.168.4.51 80 { 後端服務器ip地址
weight 1
}
real_server 192.168.4.52 80 {
weight 1
}
}
重啟服務:
service keepalived restart
測試:
curl http://192.168.4.252/
keepalived+LVS/DR的搭建