LVS

什麼是集羣
一組通過高速網絡互聯的計算機組,並以單一系統模式加以管理
將很多服務器集中起來提供同一種服務,客戶端看來像只有一個服務器
在較低成本情況下獲得較高 的性能 可靠性 靈活性

任務調度 是集羣系統的 核心技術

集羣目的
提高性能 降低成本 提高可擴展性 增強可靠性(多節點)

集羣分類
HPC 高性能計算集羣(航天,航空,勘探) 專業領域
LB 負載均衡集羣(平衡負載) LVS HAproxy
HA 高可用集羣(熱備份) keepalived RHCS(銀行)


LVS 集羣
組成
前端 負載均衡(一或多調度器)
中間 服務器羣組(一組服務器)
底端 數據共享儲存層

LVS術語
Director Server 調度服務器
Real Server 真實服務器
VIP 公佈給用戶訪問的虛擬IP
RIP 集羣節點上的IP地址
DIP 調度器連接節點IP地址

LVS負載均衡模式
NAT 網絡地址轉換模式 -m
通過地址轉換實現,數據流量都通過調度器有瓶頸
DR 直連路由模式 -g (默認)
使用路由技術實現 節點服務器需要配置VIP 注意MAC地址廣播
TUN 隧道模式 -i (用的少略過)
通過隧道實現

LVS負載均衡調度算法 (10種)
#man ipvsadm
常用的4種 :
RR 輪詢 Round Robin 平均分法
WRR 加權輪詢 Weighted Round Robin 權重值輪詢
LC 最少鏈接 Least Connections 選連接數最少的
WLC 加權最小鏈接 Weighted Least Connections 權重選則最少連接


LVS的IP負載均衡通過IPVS模塊實現

使用LVS配置負載均衡集羣
配置LVS/NAT模式負載均衡集羣
配置LVS/DR模式負載均衡集羣

rhel6基本操作
#chkconfig iptables off #取消開機自起
#service iptables stop #關閉防火牆
#setenforce 0 #關閉selinux

環境準備
配置192.168.4.50(調度器):
開啓內核路由轉發功能,使其能夠收發來自不同網段的ip包
#vim /etc/sysctl.conf 開啓內核路由
net.ipv4.ip_forward = 1
#sysctl -p

168.4.51/52(真實服務器):
運行網站服務並編寫網頁文件
設置網關地址 ( DIP)
#route add default gw 192.168.4.50
#文件中寫 GATEWAY=192.168.4.50 永久保存
#ifdown eth1
#ifup eth1

168.2.253(客戶機):
設置網關地址 ( 調度器和公網相連的地址)

一、配置LVS/NAT模式負載均衡集羣 (50)
安裝軟件包 ipvsadm
#rpm -ivh ipvsadm-1.26-4.el6.x86_64.rpm
#ipvsadmin -v

添加虛擬服務
#ipvsadm -A -t 192.168.2.50:80 -s rr
-A 添加虛擬服務器
-t 設置集羣地址(Virtual IP)
-s 指定負載調度算法 rr wrr lc wlc

添加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
-a 添加真實服務器
-d 刪除真實服務器
-r 指定真實服務器 Real Server
-w 爲節點服務器設置權重 默認爲1
-m NAT模式
-g DR模式
-i TUN模式

查看服務
#ipvsadm -Ln
-n以數字(端口號)顯示服務
--stats 詳細信息

保存策略
#ipvsadm-save > /etc/sysconfig/ipvsadm 或者
#service ipvsadm save

客戶端測試 192.168.2.253
#yum -y install elinks
#elinks --dump http://192.168.2.50/test.html


#ipvsadm  -d   -t  192.168.2.50:80  -r  192.168.4.52:80 
#ipvsadm  -a   -t  192.168.2.50:80  -r  192.168.4.52:80  -m

#ipvsadm  -E   -t  192.168.2.50:80  -s  wrr
#ipvsadm  -e   -t  192.168.2.50:80  -r  192.168.4.52:80 -w 3 -m
-E  調度算法
-e  修改權重值
#service  ipvsadm  save
#ipvsadm  -Ln
50
*/5   *   *   *   *   /root/check_web.sh

刪除虛擬服務裏的realserver
ipvsadm -d -t x.x.2.253:80 -r x.x.4.44:80 -m
修改調度算法(加權輪詢)

#ipvsadm -E -t x.x.x.x:80 -s wrr
修改realserver的權重值
#ipvsadm -e -t x.x.2.253:80 -r x.x.4.55 -w 3 -m
修改realserver的權重值
#ipvsadm -e -t x.x.2.253:80 -r x.x.4.55 -w 3 -m
刪除虛擬服務(集羣)
#ipvsadm -D -t x.x.2.253:80
添加虛擬服務
#ipvsadm -A -t x.x.2.253:80 -s wrr
添加realserver 端口 指權重值
#ipvsadm -A -t x.x.2.253:80 -r x.x.4.44 -w 2 -m
查看虛擬服務
#ipvsadm -Ln
保存
#/etc/init.d/ipvsadm save
查看狀態
#/etc/init.d/ipvsadm status
清除虛擬服務
#ipvsadm -C 清除還要保存一下
#service ipvsadm save
-C 清空設置(內存中)


二、配置LVS/DR模式負載均衡集羣
刪除LVS/NAT模式集羣的配置

#ipvsadm -C
#service ipvsadm save
#sed  -i  '$d'  /etc/sysctl.conf

52:
#route del default gw 192.168.4.50

#route del default gw 192.168.4.50

52/253:
#ifdown eth0
#eth0 192.168.4.50/51/253

LVS/DR模式工作分析:
realserver主機的IP地址必須和vip地址在同一網段
一臺主機發送的廣播包能夠被所在網絡的所有主機接收到。
主機只接收目標主機給自己回的Ip包。

配置LVS/DR模式集羣環境
1 給realserver(51/52) 綁定vip地址,並設置網絡接口幫兄弟接口收發ip包,且忽略arp廣播包。
#ifconfig lo:1 192.168.4.252/32
#ifconfig lo:1
#ls /proc/sys/net/ipv4/conf/
lo:
#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore #忽略ARP請求包
0默認 迴應所有本地地址ARP廣播,本地地址可以配置在任意網絡接口
1 值迴應配置在入站網卡接口上的任意IP地址的ARP廣播
#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
0默認 使用配置在任意網卡接口上的本地IP地址
2 看文檔補充
eth0:
#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

2 給分發器綁定vip地址 50:
#ifconfig eth0:1 192.168.4.252/32
#ifconfig eth0:1
#ifconfig eth0

添加虛擬服務50:
#rpm -q ipvsadm
#ipvsadm -Ln
#ipvsadm -A -t 192.168.4.252:80 -s rr

添加realserver 51/52
#ipvsadm -a -t 192.168.4.60:80 -r 192.168.4.51:80 -g
#ipvsadm -a -t 192.168.4.60:80 -r 192.168.4.52:80

保存策略
#ipvsadm -Ln
#service ipvsadm save

客戶端測試 192.168.4.253
#arping 192.168.4.252 #
#ping 192.168.4.252
#elinks --dump http://192.168.4.252/test.html

測試結果:分發器上只有進來的ip包 沒有從分發器上出去的包
#ipvsadm -Ln --stats

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章