LVS (Linux Virtual Server) - 負載均衡叢集
今天稍微瞭解了LVS 的原理和使用,在網路上找到不少好文章,稍微加以處理並在這裡備份:
原理介紹:Linux Virtual Server
一.檢查核心是否支援LVS
備註:2.4.23以後版本的核心已經支援LVS,只需要直接使用,不需要進行核心的下載和更新工作。
二.檢查核心是否支援lvs的ipvs模組
[[email protected] ~]# modprobe -l|grep ipvs
modprobe: invalid option -- 'l'
備註:引數l無效,查了很多資料。好像現在沒有這個引數了,可以改用下面這個命令檢視核心是否支援lvs的ipvs模組
[[email protected] ~]# find /lib/modules/$(uname -r)/ -iname "**.ko*" | cut -d/ -f5-
....................前面省略...................
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
....................後面省略...................
看到有輸出以上內容,說明核心支援lvs了,無需再編譯核心了。
當然也可以進入資料夾列出:
三.檢視ipvsadm 程式是否被安裝
[[email protected] ~]# ipvsadm
-bash: ipvsadm: command not found
輸出以上資訊表明未安裝ipvsadm程式。下面通過yum的方式安裝ipvsadm程式,不用考慮軟體之間的依懶性。
[[email protected] ~]# yum -y install ipvsadm
[[email protected] ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
安裝完ipvsadm之後輸出的資訊。說明ipvsadm安裝成功。
我們簡要檢視ipvsadm的資訊,可以獲取到更多有意思的事情:
可以發現,它確實已經加入到核心之中了,並一直有新的版本釋出。https://kernel.org/pub/linux/utils/kernel/ipvsadm/
四.配置 IPVS (資源來源自網路未驗證,只供參考)
1.開啟IP轉發功能
[[email protected] /]#echo 1 >/proc/sys/net/ipv4/ip_forward
預設是0,關閉ip轉發;這裡需要開啟,所以設定值為1。
2.配置重定向
[[email protected] /]#echo "0" >/proc/sys/net/ipv4/ip_forward
[[email protected] /]#echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
[[email protected] /]#echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
[[email protected] /]#echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
3.清除ipvsadm表
[[email protected] /]#ipvsadm -C
4.使用ipvsadm安裝LVS服務例項:
ipvsadm -A -t vip:埠號 -s rr
5.增加二臺內部web伺服器
ipvsadm -a -t vip:埠號 -r web1伺服器IP:埠號 -m -w 1
ipvsadm -a -t vip:埠號 -r web2伺服器IP:埠號 -m -w 1
ipvsadm使用指南
1.名詞解釋
virtual-service-address(VIP):虛擬伺服器的 ip 地址
real-service-address(RIP):是指真實伺服器的 ip 地址
scheduler:排程方法
2.ipvsadm的用法和格式如下
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p[timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm --set tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h
3.命令選項
-A --add-service
在核心的虛擬伺服器表中新增一條新的虛擬伺服器記錄。也就是增加一臺新的虛擬伺服器。
-E --edit-service
編輯核心虛擬伺服器表中的一條虛擬伺服器記錄。
-D --delete-service
刪除核心虛擬伺服器表中的一條虛擬伺服器記錄。
-C --clear
清除核心虛擬伺服器表中的所有記錄。
-R --restore
恢復虛擬伺服器規則
-S --save
儲存虛擬伺服器規則,輸出為-R選項可讀的格式
-a --add-server
在核心虛擬伺服器表的一條記錄裡新增一條新的真實伺服器記錄。也就是在一個虛擬伺服器中增加一臺新的真實伺服器
-e --edit-server
編輯一條虛擬伺服器記錄中的某條真實伺服器記錄
-d --delete-server
刪除一條虛擬伺服器記錄中的某條真實伺服器記錄
-L|-l --list
顯示核心虛擬伺服器表,輸出對應檔案/proc/net/ip_vs
-Z --zero
虛擬服務表計數器清零(清空當前的連線數量等)
--set tcp tcpfin udp
設定連線超時值
--start-daemon
啟動同步守護程序。他後面可以是 master 或 backup,用來說明 LVS Router是master或是backup。在這個功能上也可以採用keepalived的 VRRP 功能。
--stop-daemon
停止同步守護程序
-h --help
顯示幫助資訊
其他的選項::
-t --tcp-service service-address
說明虛擬伺服器提供的是tcp的服務[vip:port] or [real-server-ip:port]
-u --udp-service service-address
說明虛擬伺服器提供的是udp的服務[vip:port] or [real-server-ip:port]
-f --fwmark-service fwmark
說明是經過iptables標記過的服務型別。
-s --scheduler scheduler
使用的排程演算法,有這樣幾個選項 rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq。預設的排程演算法是:wlc.
-p --persistent [timeout]
持久穩固的服務。這個選項的意思是來自同一個客戶的多次請求,將被同一臺真實的伺服器處理,timeout的預設值為300秒。
-r --real-server server-address
真實的伺服器[Real-Server:port]
-g --gatewaying
指定LVS的工作模式為直接路由模式(也是LVS預設的模式)
-i --ipip
指定LVS的工作模式為隧道模式
-m --masquerading
指定LVS的工作模式為NAT模式
-w --weight weight
真實伺服器的權值
--mcast-interface interface
指定組播的同步介面
-c --connection
顯示LVS目前的連線。如:ipvsadm -L –,輸出對應檔案/proc/net/ip_conn
--timeout
顯示tcp tcpfin udp的timeout值。如:ipvsadm -L --timeout
--daemon
顯示同步守護程序狀態
--stats
顯示統計資訊,輸出對應檔案/proc/net/ip_vs_stats
--rate
顯示速率資訊輸出對應檔案/proc/net/ip_vs_stats
--sort
對虛擬伺服器和真實伺服器排序輸出
--numeric -n
輸出IP地址和埠的數字形式
原文連結:http://blog.51cto.com/wjb10000/1789332
擴充套件參考連結:https://www.cnblogs.com/liwei0526vip/p/6370103.html
保持更新,資源來源自網路。內容加以修改,轉載請註明出處。https://www.cnblogs.com/xuyaowen/p/lvs-help.html