LVS系列之三 部署LVS的DR模式

2021-09-11 04:13:40 字數 3835 閱讀 1088

virtual server via ip tunneling(vs/tun)

採用nat技術時,由於請求和響應報文都必須經過排程器位址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。為了解決這個問題,排程器把請求報 文通過ip隧道**至真實伺服器,而真實伺服器將響應直接返回給客戶,所以排程器只處理請求報文。由於一般網路服務應答比請求報文大許多,採用 vs/tun技術後,集群系統的最大吞吐量可以提高10倍。

[root@centos181001 ~]# cat /etc/centos-release

centos linux release 7.6.1810 (core)

準備3臺伺服器

director節點: (ens34 11.11.11.61 vip ens34:0 11.11.11.60)

real server1: (ens34 11.11.11.62 vip lo:0 11.11.11.60)

real server2: (ens34 11.11.11.63 vip lo:0 11.11.11.60)

# 關閉防火牆

setenforce 0

sed -i -r "/^selinux=/c selinux=disabled" /etc/selinux/config

which systemctl && systemctl stop firewalld

which systemctl && systemctl disable firewalld

which systemctl && systemctl stop iptables || service iptables stop

which systemctl && systemctl disable iptables || chkconfig iptables off

# 配置本地yum

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

cat [local]

name=local

baseurl=file:///mnt/cdrom

gpgcheck=0

enabled=1

eofyum clean all #清理本地快取

yum clean plugins #清理外掛程式快取

yum makecache #構建快取

在lvs方案中,虛擬ip位址與普通網路介面大大不同,這點需要特別注意。虛擬ip位址的廣播位址是它本身,子網掩碼是255.255.255.255。為什麼要這樣呢?因為有若干機器要使用同乙個ip位址,用本身做廣播位址和把子網掩碼設成4個255就不會造成ip位址衝突了,否則lvs將不能正常**訪問請求。

1. 安裝ipvsadm

yum install -y ipvsadm
2.配置指令碼並執行
cat #!/bin/bash

# 啟用ip**功能

echo 1 > /proc/sys/net/ipv4/ip_forward

# 定義vip

vip=11.11.11.60

# 定義兩台真實伺服器ip位址

rs1=11.11.11.62

rs2=11.11.11.63

# 將vip繫結到ens34

ip address add \$vip/32 dev ens34

# 新增主機路由

ip route add 11.11.11.60 dev ens34

# 清空ipvs**列表

/usr/sbin/ipvsadm -c

# 新增乙個虛擬服務

/usr/sbin/ipvsadm -a -t \$vip:80 -s wrr

# 以直接路由的方式把請求**到lvs後面的真實伺服器,權重分別是3和1

/usr/sbin/ipvsadm -a -t \$vip:80 -r \$rs1:80 -g -w 3

/usr/sbin/ipvsadm -a -t \$vip:80 -r \$rs2:80 -g -w 1

eofcat /usr/local/sbin/lvs_dr.sh

chmod +x /usr/local/sbin/lvs_dr.sh

/usr/local/sbin/lvs_dr.sh

注意:在 dr 模式下,2臺 rs 節點的 gateway 不需要設定成 dir 節點的 ip 。
1.real server節點1:
yum install -y httpd

echo "1111111111" > /var/www/html/index.html

2.real server節點2:
yum install -y httpd

echo "2222222222" > /var/www/html/index.html

3.兩個real server節點配置指令碼並執行
# 如果你的rs的外部網路介面是eth0,那麼

# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

# 其實真正要執行的是:

# echo "1">/proc/sys/net/ipv4/conf/eth0/arp_ignore

# echo "2">/proc/sys/net/ipv4/conf/eth0/arp_announce

# 所以我個人建議把上面兩條也加到你的指令碼裡去,因為萬一系統裡上面兩條預設的值不是0,那有可能是會出問題滴。

cat #!/bin/bash

vip=11.11.11.60

# 關閉arp響應

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

ip route add \$vip dev lo

ip address add \$vip/32 dev lo

eofchmod +x /usr/local/sbin/lvs_dr_rs.sh

/usr/local/sbin/lvs_dr_rs.sh

因為在上邊我們設定了節點1的權重是3,節點2的權重是1,所以這裡結果每4次訪問裡有3次請求到節點1,一次訪問請求到節點2

[root@rehl6801 ~]# curl 

1111111111

[root@rehl6801 ~]# curl

1111111111

[root@rehl6801 ~]# curl

1111111111

[root@rehl6801 ~]# curl

2222222222

[root@rehl6801 ~]# curl

1111111111

[root@rehl6801 ~]# curl

1111111111

[root@rehl6801 ~]# curl

1111111111

[root@rehl6801 ~]# curl

2222222222

centos6 3部署配置LVS主從

lvs是linux virtual server的簡寫,即linux虛擬伺服器,是乙個虛擬的伺服器集群系統。這個專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。它的 是 現在 lvs 已經是 linux 核心標準的一部分。使用 lvs 可以達到的技術目標是 通過 lvs ...

三 高併發 LVS的DR模型

網絡卡上有ip和mac位址,網絡卡一加電就會將自己公布出去,別的機器只能知道ip位址邏輯的會走arp協議請求mac位址。linux系統下 proc 是虛擬目錄,開機之後才會有的目錄,裡面放的核心及所有啟動的程序,把裡面的變數及引數抽象成檔案,修改檔案的值相當於改了核心變數引數的值,目錄中的檔案的引數...

自學linux筆記(三)部署專案

一 準備乙個專案的war 三 我把準備好的專案上傳到linux桌面 然後filezilla又 再見 可以關閉了。跳到桌面並檢視是否上傳成功,設定tomcat埠一般都是8080的,所以要去開防火牆 輸入 vi etc sysconfig iptables 按i進入編輯 輸入 a input p tcp...