天天看點

Ubuntu LVS DR模式生産環境部署 推薦

系統版本:ubuntu14.04

LVS伺服器:14.17.64.3

真實伺服器:14.17.64.4-12

VIP:14.17.64.13

部署目的:使用者請求14.17.64.13的封包轉發至14.17.64.4-12上進行負載均衡。

由于LVS像iptables一樣是工作在核心層,是以隻需要安裝子產品ip_vs就可以了,并沒有背景程序在跑

#aptitude install ipvsadm

# ipvsadm -v

ipvsadm v1.26

# lsmod |grep ip_vs     #檢視核心子產品,有代表ipvsadm加載進核心當中,此時LVS安裝完畢

ip_vs                 136701  0

nf_conntrack           96976  1 ip_vs

libcrc32c              12644  3 xfs,btrfs,ip_vs

# ipvsadm -L -n       #檢視lvs規則

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

root@ubun

# ipvsadm -L -c   #檢視連接配接情況

-A是添加一條虛拟伺服器記錄,即VIP。此處配置要選擇算法。

#ipvsadm -A-t 14.17.64.13  -s wrr -p 300     #代理轉發所有去往該IP TCP的封包,-s指定算法wrr為權重輪詢算法,-p會話保持時間(預設值是300s)

#ipvsadm -A-t 14.17.64.13:80 -s wrr -p 20    #代理轉發去往該IP TCP80端口的封包

VIP維護:

使用-E修改VIP設定

例:ipvsadm -E -t 14.17.64.13 -s wrr -p 40 #可修改會話保持時間與算法。

使用-D删除VIP設定

  例:ipvsadm -D -t 14.17.64.13    #删除該條VIP

-a是添加VIP要對哪些真實伺服器IP(即RIP)進行負載(預設是DR模式即-g)。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.4 -g -w 1   #-r指定真實伺服器IP,-g為選擇DR模式(-m為NAT模式,-t為tunnel模式),-w選擇權重。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.5 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.6 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.7 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.8 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.9 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.10 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.11 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.12 -g -w 1

#如果隻對tcp 80端口進行負載,可使用如下指令

#ipvsadm -a-t14.17.64.13:80 -r 14.17.64.4:80 -g -w 1  

RIP維護:

使用-e修改RIP配置

    例:ipvsadm -e -t14.17.64.13 -r 14.17.64.6 -g -w 4    #修改這條RIP規則的權重。

使用-d删除RIP配置

    例:ipvsadm -d -t14.17.64.13 -r 14.17.64.6 -g -w 1   #删除該條RIP配置

在真實伺服器上都配置上VIP,即14.17.64.13位址。

#ifconfig lo:1314.17.64.13 netmask 255.255.255.255

關閉真實伺服器上loop口的arp回應,其它口的無須關閉。

預設arp_ignore和arp_announce的參數都是0,即回應所有目的IP是本機的arp請求。

在所有真實伺服器上進行如下操作:

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce      #對查詢目标使用最适當的本地位址。

#此處可以進行測試,在測抑制arp前,能ping通VIP位址。在抑制arp後,在前端交換機上清掉arp緩存,再ping VIP就不通了。但實體eth0網卡IP還是能通的。

接下來在lvs上配置VIP:

ifconfig lo:13 14.17.64.13 netmask255.255.255.255

在lvs上開啟核心轉發功能。

#echo  'net.ipv4.ip_forward=1'  >>/etc/sysctl.conf

#sysctl -p

由于真實伺服器上未搭建http服務,但我設定的lvs是轉發所有tcp連接配接,是以我通過ssh到VIP上進行測試。

#iptables -L -c  #檢視lvs轉發記錄,确定請求轉發成功。

TCP 14:59 ESTABLISHED 242.103.143.219.broad.bj.bj.dynamic.163data.com.cn:5197714.17.64.13:22  14.17.64.10:22

至此lvs搭建成功。

1、  自身無法對真實伺服器保活,如果出現伺服器down情況,還會向down的伺服器轉發請求。

         解決方法是keepalived或自已寫腳本來監測連通性再清除相應規則。

2、一台LVS伺服器會出現單點故障,需要有備份LVS伺服器

         解決方法是keepalived來進行LVS故障接管。