LVS群集
群集的類型:
負載均衡群集:提高應用程式的響應能力,以減少延遲為目标,獲得高并發,高負載的整體性能。
高可用群集:提高應用系統的可靠性,盡可能的減少中斷為目标,確定服務的連續性,達到高可用的容錯效果。
高性能運算群集:提高應用系統的CPU運算速度,獲得相當于大型,超級計算的高性能運算能力。
負載均衡群集的分層結構:負載排程器,伺服器池,共享存儲。
負載均衡的工作模式:
位址轉換模式:NAT,負載排程器作為所有伺服器節點的網關,即作為客戶機的通路入口,也是各個節點回應客戶機的通路出口,伺服器節點使用私有IP位址,與負載均衡器位于同一個實體網絡。
直接路由模式:DR,采用半開式的網絡結構,伺服器與排程器位于同一個實體網絡。
IP隧道模式:TUN,采用開放式的網絡結構,負載排程器僅作為客戶機的通路入口,各節點通過各自的internet連接配接直接會用客戶機,而不再進過負載均衡排程器。
LVS虛拟伺服器是針對Linux核心開發的一個負載均衡的項目,LVS是linux系統核心的一部分,預設編譯為ip_vs子產品,使用管理ipvsadm管理工具。
LVS的負載排程算法:
輪詢:将收到的通路請求按順序來配置設定給群集中的各個節點。
權重輪詢:根據真實伺服器的處理能力輪流配置設定給群集中的各個節點。
最少連接配接:根據真是伺服器已建立的連接配接數進行配置設定。
權重最少連接配接:為真是伺服器自動調整權重,權重較高的節點承擔更大比例的活動連接配接。
直接路由LVS-DR部署:
v 配置排程伺服器:
#iptables -F 關閉防火牆
#setenfoece 0
#modprobe ip_vs 加載IP_vs子產品
#yum -y install ipvsadm 安裝ipvs管理工具
#ifconfig eth0:0 1.1.1.100/32 建立環回虛IP
#route add -host 1.1.1.100 dev eth0:0 建立虛IP路由
#service ipvsadm stop 清楚ipvsadm政策
#ipvsadm -A -t 1.1.1.100:80 -s rr 建立虛拟伺服器
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -g -w 1 建立ipvsadm政策
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.2:80 -g -w 1
#service ipvsadm save 儲存政策
v 配置節點伺服器:
#iptables -F
#setenforce 0 關閉防火牆
#ifconfig lo:0 1.1.1.100/32 建立虛IP
#route add -host 1.1.1.100 dev lo:0 建立虛IP路由
#vim /etc/sysctl.conf 關閉ARP解析
修改内容:
Net.ipv4.conf.all.arp_ignore = 1
Net.ipv4.conf.all.arp_announce = 2
Net.ipv4.conf.default.arp_ignore = 1
Net.ipv4.conf.default.arp_announce = 2
Net.ipv4.conf.lo.arp_ignore = 1
Net.ipv4.conf.lo.arp_announce = 2
#sysctl -p
#service httpd restart
#iptables -F 關閉防火牆
#setenforce 0
#ifconfig lo:0 1.1.1.100/32 建立虛IP
#route add -host 1.1.1.100 dev lo:0 建立虛IP路由
#vim /etc/sysctl.conf 關閉ARP解析
位址轉換LVS-NAT部署:
v 配置負載排程器:
#vim /etc/sysctl.conf
Net.ipv4.ip_forword = 1 打開路由開關
#iptables -t nat -A POSTROUTING -s 1.1.1.0/24 -o eth0 -j SNAT --to-source 1.1.1.100 NAT轉換
#service ipvsadm stop 清除ipvsadm政策
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -m -w 1 建立ipvsadm政策
#ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.2:80 -m -w 1
#service ipvsadm save
v 節點伺服器隻需要開啟web服務即可:
ipvsadm指令選項總彙
-A
表示添加虛拟伺服器
-t
表示使用TCP協定
-s
表示指定負載排程的算法:輪詢(rr),權重輪詢(wrr),最少連接配接(lc),權重最少連接配接(wlc)
-a
表示添加伺服器節點
-r
表示真實伺服器位址
-m
表示使用NAT群集模式
-g
表示使用DR群集模式
-i
表示用TUN群集模式
-w
表示權重
-ln
檢視ipvsadm節點狀态
-C
表示清楚ipvsadm政策
-d
表示删除伺服器節點
建立虛拟伺服器指令格式:
Ipvsadm -A -t 虛拟位址:端口 -s 排程算法
例:ipvsadm -A -t 1.1.1.100:80 -s rr
建立ipvsadm政策:
Ipvsadm -a -t 虛拟位址:端口 -r 真實位址:端口 群集模式 -w 權重值
例:ipvsadm -a -t 1.1.1.100:80 -r 1.1.1.1:80 -m -w 1
注:
永久修改虛IP:
vim /etc/sysconfig/netwrok-scripts/ifcfg-lo:0
内容如下:
DEVICE=lo:0
ONBOOT=yes
IPADDR=1.1.1.1
NETMASK=255.255.255.255
永久修改路由方法一:
Vim /etc/rc.local
添加内容:
/sbin/route add -host 1.1.1.1 dev lo:0
永久修改路由方法二:
Vim /etc/sysconfig/networking/static-route
Any -host 1.1.1.1 dev lo:0
思考:
為什麼節點伺服器要使用lo環回口做虛IP?
答:節點伺服器隻用于發送web資料的源位址,并不需要監聽客戶機的通路請求,為了将虛IP的資料限制在本地,以免通信紊亂。
為什麼要節點伺服器關閉ARP解析?
答:當排程伺服器和節點伺服器使用同一個IP時,通路者發送ARP請求,那麼如果是節點伺服器響應,那麼通路就不會通過排程伺服器。
本文轉自 觸動的風 51CTO部落格,原文連結:
http://blog.51cto.com/10978134/1945768