一、LVS/DR 模式簡介
- DR模式是通過改寫請求報文的目標MAC地址,將請求發給真實伺服器的,而真實伺服器響應後的處理結果直接返回給客戶端使用者。同TUN模式一樣,DR模式可以極大的提高叢集系統的伸縮性。而且DR模式沒有IP隧道的開銷,對叢集中的真實伺服器也沒有必要必須支援IP隧道協議的要求。但是要求排程器LB與真實伺服器RS都有一塊網路卡連線到同一物理網段上,必須在同一個區域網環境。DR模式是網際網路使用比較多的一種模式。
- 特點總結
- 叢集節點處於同一個廣播域中
- 真是伺服器將閘道器指向真是路由器
- 負載排程器只負責處理入站請求,壓力最小
- 不支援埠對映
二、LVS/DR 實驗搭建
網路環境說明:
伺服器型別 | IP | 說明 |
---|---|---|
lvs_vip | 192.168.137.10 | VIP |
lvs_dip | 192.168.137.100 | DIP |
real_service_1 | 192.168.137.101 | nginx 伺服器 |
real_service_2 | 192.168.137.102 | nginx 伺服器 |
&:三臺伺服器均關閉防火牆和selinux
1、負載排程器配置
-
1.1 拷貝 eth0 網路卡子介面,充當叢集入口介面
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
-
1.2 配置網路卡子介面 IP 地址為虛擬IP (VIP)
vi ifcfg-eth0:0
-
1.3 開啟 eth0:0網路卡
ifup eth0:0
-
1.4 安裝LVS管理工具 ipvsadm
yum install -y ipvsadm
-
1.5 配置 ipvs 規則
ipvsadm -A -t VIP:80 -s rr (此處採用輪詢演算法)
ipvsadm -a -t VIP:80 -r RIP1 -g
ipvsadm -a -t VIP:80 -r RIP2 -g
service ipvsadm save // 儲存規則
chkconfig ipvsadm on // 設定開機啟動
- 1.6 配置vip路由
route add -host 192.168.137.10 dev eth0:0
2、真實伺服器配置 (以 real-service-1 為例)
-
2.1 安裝 web 伺服器 (此處採用 nginx,需要提前下載好Nginx的安裝包)
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel (安裝必要依賴)
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
進入 nginx 原始碼包解壓目錄
./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --user=nginx --group=nginx --without-http_rewrite_module
-
2.2 隨便寫點內容到伺服器預設頁面,為了可以看出區別,兩臺真實伺服器的內容不一樣
echo "This is Real Service 1" >> index.html
-
2.3 拷貝迴環網路卡子介面
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
-
2.4 配置 迴環網路卡子介面 IP地址為虛擬IP
vi ifcfg-lo:0
-
2.5 啟動網路卡
ifup lo:0
-
2.6 設定 arp 廣播抑制
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
-
2.7 讓優化的核心引數立即生效
sysctl -p
-
2.8 新增路由記錄,當訪問 VIP 時,交給 lo:0 網路卡接受
route -add host 192.168.137.10 (VIP) dev 1o:0
本作品採用《CC 協議》,轉載必須註明作者和本文連結