今天稍微瞭解了LVS 的原理和使用,在網路上找到不少好文章,稍微加以處理併在這裡備份: 原理介紹:Linux Virtual Server 關於:http://www.linuxvirtualserver.org/about.html The mission of the Linux Virtual ...
今天稍微瞭解了LVS 的原理和使用,在網路上找到不少好文章,稍微加以處理併在這裡備份:
原理介紹:Linux Virtual Server
關於:http://www.linuxvirtualserver.org/about.html
The mission of the Linux Virtual Server project is to build a high-performance and highly available server for Linux using clustering technology, which provides good scalability, reliability and serviceability.
Currently, the major work of the LVS project is to develop advanced IP load balancing software (IPVS), application-level load balancing software (KTCPVS), cluster management components. These components make the LVS framework illustrated in the following figure.
- IPVS: is an advanced IP load balancing software implemented inside the Linux kernel. The IPVS code was already included into the standard Linux kernel 2.4 and 2.6.
- KTCPVS: implements application-level load balancing inside the Linux kernel, currently under development.
一.檢查內核是否支持LVS
備註:2.4.23以後版本的內核已經支持LVS,只需要直接使用,不需要進行內核的下載和更新工作。
二.檢查內核是否支持lvs的ipvs模塊
[root@wjb10000 ~]# modprobe -l|grep ipvs
modprobe: invalid option -- 'l'
備註:參數l無效,查了很多資料。好像現在沒有這個參數了,可以改用下麵這個命令查看內核是否支持lvs的ipvs模塊
[root@wjb10000 ~]# 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 程式是否被安裝
[root@wjb10000 ~]# ipvsadm
-bash: ipvsadm: command not found
輸出以上信息表明未安裝ipvsadm程式。下麵通過yum的方式安裝ipvsadm程式,不用考慮軟體之間的依懶性。
[root@wjb10000 ~]# yum -y install ipvsadm
[root@wjb10000 ~]# 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轉發功能
[root@wjb10000 /]#echo 1 >/proc/sys/net/ipv4/ip_forward
預設是0,關閉ip轉發;這裡需要開啟,所以設置值為1。
2.配置重定向
[root@wjb10000 /]#echo "0" >/proc/sys/net/ipv4/ip_forward
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
[root@wjb10000 /]#echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
3.清除ipvsadm表
[root@wjb10000 /]#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
擴展鏈接2:https://www.cnblogs.com/bananaaa/p/7929796.html
KeepAlived介紹:http://m.elecfans.com/article/700023.html
保持更新,資源來源自網路。內容加以修改,轉載請註明出處。https://www.cnblogs.com/xuyaowen/p/lvs-help.html