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...