今天稍微了解了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