1. 程式人生 > >LVS (Linux Virtual Server) - 負載均衡叢集

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