LVS叢集搭建
阿新 • • 發佈:2018-11-11
LVS(Linux虛擬伺服器)全拼:Linux Virtual Server
是一個虛擬的伺服器集群系統
三種模式:
LVS-NAT:地址轉換,
原理簡述
客戶端向VIP發起請求連線,DS在經過排程之後選取RS,然後RS返還資料給DS,DS將資料返還客戶端,資料包來回都要經過NAT轉換,所以DS將成為系統瓶頸。NAT支援10-20臺伺服器。需要有兩個網絡卡。
=====================================================================
LVS-TUN:隧道
原理簡述
客戶端向VIP傳送請求時,DS經過排程輪詢後選擇一個RS後使用隧道技術再次封裝後向RS傳送,RS通過隧道收到請求後拆開資料後得到目的IP,找到資料後將資料直接通過公網返還給客戶端,可以跨網段。速度快。
=====================================================================
LVS-DR: 路由模式
原理簡述
直接路由,此種方式是最常用的方式,當客戶端向VIP發起請求時,資料包通過路由器傳送到DS。然後DS不修改其源IP目的iP。經過排程後將目的MAC改為RS的MAC,然後RS找到資料後直接通過公網返回給客戶端。
速度快,所有的DS和RS都在同一個物理網路中(交換機)並且都只有一塊網絡卡。
=====================================================================
排程常用演算法:
手動:
1. 輪叫排程 rr
2. 加權輪叫 wrr
自動:
3. 最少連結 lc
4. 加權最少連結 wlc
步驟:
所需環境,一臺DS,兩臺RS,一臺客戶機,在一個網段中,全部關閉防火牆。操作過程中不可重啟。
DS:
1.
#yum -y install ipvsadm #下載ipvsadm命令
引數:
-C:–clear 清除核心虛擬伺服器表中的所有記錄。
-A:增加一臺新的虛擬伺服器,也就是VIP
-a:在虛擬伺服器中增加一臺新的真實伺服器
-t:–tcp 說明虛擬伺服器提供的是tcp 的服務
-r:後跟真實的伺服器ip
-s:指定排程演算法
-g:指定LVS 的工作模式為直接路由模式
2.
#ipvsadm -C
#ipvsadm -A -t 192.168.29.250:80 -s rr
#ipvsadm -a -t 192.168.29.250:80 -r 192.168.29.138:80 -g
#ipvsadm -a -t 192.168.29.250:80 -r 192.168.29.139:80 -g
#ifconfig ens33:0 192.168.29.250 broadcast 192.168.29.250 netmask 255.255.255.255 up
給ens33網絡卡新增一塊子網絡卡,IP地址設為250,並且設定為廣播地址
#route add -host 192.168.29.250 dev ens33:0
訪問192.168.29.250的時候指定一條路由,走子網絡卡,
RS:
1.
# ifconfig lo:0 192.168.29.250 broadcast 192.168.29.250 netmask 255.255.255.255 up
給LOOPBACK新增子網絡卡,設定IP為250,並設定為廣播地址
# route add -host 192.168.29.250 dev lo:0
訪問250指定路由是從裝置LOOPBACK走
2.
配置核心引數檔案
arp_ignore: 定義接收到ARP請求時的響應級別
0:預設,只有本地配置的有相應的地址才給與迴應
1:僅僅在目標地址是本地地址,並是配置在請求進來的介面上的時候才給予響應
arp_announce:定義將自己的地址向外通告時的級別
0:預設,表示使用配置在任何介面的任何地址向外通告
1:儘量僅向目標網路通過餘其網路匹配地址
2:僅向與本地介面上地址匹配的網路進行通告
# 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
該配置檔案重啟失效,是寫在記憶體中的。
如果要永久生效,要把引數寫在/etc/sysctl.conf中
3.
給RS和DS端都安裝httpd服務
在RS1,RS2端/var/www/html目錄下建立index.html檔案
編輯:<h1>this is 138 host</h1>
<h1>this is 139 host</h1>
啟動httpd服務
4.
測試:
自己做實驗時DS端的子IP不在了,所以不成功,記得檢查一下!!!
在客戶機執行 curl 192.168.29.250,或者在瀏覽器輸入網址
在DS上檢視ipvsadm的
ipvsadm -Ln --stats
-L:顯示核心虛擬伺服器表
-n:輸出IP地址和埠的數字形式
ipvsadm --zero :清空流量
為防止服務重啟失敗
cd /etc/sysconfig
touch ipvsadm檔案
擴充套件:
tun隧道模式
DS端配置:
ifconfig tunl0 192.168.254.250 broadcast 192.168.254.250 netmask 255.255.255.0 up
route add -host 192.168.254.250 dev tunl0
ipvsadm -A -t 192.168.254.250:80 -s rr
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.18 -i
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.19 -i
# tunl0是隧道網絡卡的名字,可以隨意起名字
RS端的配置
ifconfig tunl0 192.168.254.250 netmask 255.255.255.255 broadcast 192.168.254.250 up
route add -host 192.168.254.250 dev tunl0
echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
0:不開啟源地址校驗。
1:開啟嚴格的反向路徑校驗。對每個進來的資料包,校驗其反向路徑是否是最佳路徑。
如果反向路徑不是最佳路徑,則直接丟棄該資料包。
2:開啟鬆散的反向路徑校驗。對每個進來的資料包,校驗其源地址是否可達,即反向路徑是否能通(通過任意網口),
如果反向路徑不同,則直接丟棄該資料包。