preface
在明白LVS-DR模式的部署之后,我們看看LVS的幾個重要參數:
如有問題,請聯系我18500777133@sina.cn
[root@localhost ~]# ls /proc/sys/net/ipv4/vs/ -lrt
'''
-rw-r--r-- 1 root root 0 Nov 19 19:43 sync_threshold
-rw-r--r-- 1 root root 0 Nov 19 19:43 expire_quiescent_template
-rw-r--r-- 1 root root 0 Nov 19 19:43 expire_nodest_conn
'''
expire_quiescent_template和expire_nodest_conn
這兩個參數對LVS轉發行為有重要的作用
- expire_nodest_conn
這個值有2種:0 表示禁用,非0表示啟用。默認值是0,在負載均衡器發現目標后端服務器不可用時邊丟包。舉個例子,某個后端服務器閃斷之后,馬上恢復了與LV的S連接,如果這個是值為0,那么表示這個閃斷后的服務器連接還可以和LVS繼續連接,如果啟用了這個特性,那么LVS會立即使這個連接過期,然后client也會等到通知連接已經關閉。 - expire_quiescent_template
這個值也是有2種,0為禁用,非0為啟用。如果是啟用狀態,那么負載均衡器當發現調度的后端服務器處於靜止期(權重為0)會立即使持久連接過期,並被發送到新的服務器上。
LVS-DR模式的核心提示與優化
- LVS-DR模式,因為后端服務器上同樣配置了VIP,如果客戶端進行ARP請求的時候,后端服務器以自身的MAC地址進行回復,則起不到負載均衡的效果,此時客戶端直接連接到了后端某台real-server上了。
- 后端服務器的虛擬IP必須綁定到lo:0上,同事子網掩碼是255.255.255.255,否則APR禁用會出現異常。
- 持久連接(Persistence)的問題。持久連接使一個客戶端在超時時間內(ipvsadmin -p參數指定,keepalived的配置文件persistence_timeout指令)會持續連接到同一台后端服務器,這個是4層上的持久連接,來自客戶端的每個新的連接會被重置該超時時間。
- keepalived對后端服務器的健康檢查,推薦使用應用層檢測方式,另外可以配置自定義監控監控,通過vrrp_script參數指定.
- keepalived通過vrrp協議通信,那么lvs之間建議關閉防火牆,如果需要開啟防火,請放行該協議。
- LVS服務器推薦使用16GB以及以上的內存,同時采用多隊列網卡來提高網卡的吞吐量,減少延遲。
- LVS后端服務器根據業務傾向的不同,根據IO密集型和CPU密集型2類,可以使用raid5以及多核高頻處理器。
多組LVS設定的注意事項。
- 虛擬路由器的ID(keepalived配置文件的router_id參數),這個在相同組的LVS集群里面,必須設置為一致,不同組LVS集群里面必須不同。
- 是優先級,master的priority必須比backup的值更高。
- 虛擬IP地址,不同組的LVS集群不同。
- 同一組LVS里面認證的密鑰,同一組必須相同。不同組建議采用不同的值。
性能采集與監控
對於LVS的性能采集,可以查看proc的文件:
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP C0A801C8:0050 wrr
-> C0A80104:0050 Route 1 0 0
-> C0A80106:0050 Route 1 0 0
[root@localhost ~]# cat /proc/net/ip_vs_stats
Total Incoming Outgoing Incoming Outgoing
Conns Packets Packets Bytes Bytes
66 18EA39B 0 4EC6436F 0
Conns/s Pkts/s Pkts/s Bytes/s Bytes/s
0 0 0 0 0
zabbix監控可以參考這個資料:https://share.zabbix.com/cat-app/high-availability-ha/linux-virtual-server-statictics