LVS負載均衡羣集 ---- NAT模式

LVS負載均衡羣集 ---- NAT模式

一:羣集的含義

1、由多臺主機構成,但對外只表現爲一個整體

2、在互聯網應用中,隨着站點對硬件性能、響應速度、服務穩定性、數據可靠性等要求越來越高,單臺服務器力不從心

  • 解決方法:

  • 使用價格昂貴的小型機、大型機

  • 使用普通服務器構建服務羣集

二:羣集的分類

  • #### 根據羣集所針對的目標差異,分爲三類:

  • 負載均衡羣集

以提高應用系統的響應能力、儘可能處理更多的訪問請求、減少延遲爲目標,獲得高併發、高負載(LB) 的整體性能;
LB的負載分配依賴於主節點的分流算法 。

  • 高可用羣集

以提高應用系統的可靠性、儘可能地減少中斷時間爲目標,確保服務的連續性,達到高可用(HA) 的容錯效果;
HA的工作方式包括雙工和主從兩種模式 。

  • 高性能運算羣集

以提高應用系統的CPU運算速度、擴展硬件資源和分析能力爲目標,獲得相當於大型、超級計算機的高性能運算(HPC) 能力 ;
高性能運算羣集的高性能依賴於"分佈式運算”、"並行計算” ,通過
專用硬件和軟件將多個服務器的CPU、內存等資源整合在一起,實現只有大型、超級計算機才具備的計算能力 。

三:負載均衡羣集工作模式

  • 負載均衡羣集是目前企業用的最多的羣集類型

  • 羣集的負載調度技術的三種模式

  • 地址轉換 ( NAT 模式)

  • IP隧道 (TUN 模式)

  • 直接路由 (DR 模式)

四:負載均衡羣集結構

第一層:負載調度器

  • 只負責響應客戶端的請求,並將請求通過負載調度算法分發給服務器池中的服務器,是訪問整個羣集的唯一入口,對外使用公有的vip (Virtual IP,虛擬IP) 地址,也稱爲羣集IP地址

第二層:服務器池

  • 用於爲客戶端提供實際的應用服務,每個真實服務器(服務器池中的服務器稱爲真實服務器或節點服務器)具有獨立的RIP (真實IP) ,只處理調度器分發過來的客戶請求

第三層:共享存儲

  • 爲服務器池中的所有節點提供穩定、一致的文件存取服務,用於保證羣集文件的一致性(就是使即使訪問的不是同一個節點服務器但看到的內容是一樣的

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XgnJ376i-1579160184709)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579075553939.png)]

五:LVS的負載調度算法

  • ##### 輪詢 (Round Robin )

  • 將收到的訪問請求按照順序輪流分配給羣集中的各節點(真實服務器),均等地對待每一臺服務器,而不管服務器實際的連接數和系統負載

  • ##### 加權輪詢(Weighted Round Robin)

  • 根據真實服務器的處理能力輪流分配收到的訪問請求,調度器可以自動查詢各節點的負載情況,並動態調整其權重

  • 保證處理能力強的服務器承擔更多的訪問流量

  • ##### 最少連接 (Least Connections)

  • 根據真實服務器已建立的連接數進行分配,將收到的訪問請求優先分
    配給連接數最少的節點

  • ##### 加權最少連接(Weighted Least Connections)

  • 在服務器節點的性能差異較大的情況下,可以爲真實服務器自動調整權重

  • 權重較高的節點將承擔更大比例的活動連接負載

六:LVS負載均衡機制

  • LVS 是四層負載均衡,即建立在 OSI 模型的第四層(傳輸層之上),傳輸層上有TCP/UDP,LVS 支持 TCP/UDP 的負載均衡。
  • 因爲 LVS 是四層負載均衡,因此它相對於其它高層負載均衡的解決辦法,比如 DNS 域名輪流解析、應用層負載的調度、客戶端的調度等,它的效率是非常高的。

七:實驗案例

1、實驗拓撲圖

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AYc4ipy4-1579160184711)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579077521386.png)]

2、實驗環境

1臺centos7作爲LVS 網關 (添加一塊網卡)

2臺centos7作爲web服務器 (web1 、web2)

1臺centos7作爲NFS 共享存儲服務 (添加2塊硬盤)

1臺win7作爲客戶端

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EVTQfwHu-1579160184711)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579080015800.png)]

3、實驗目的

win7 客戶機訪問12.0.0.1 網址,通過nat地址轉換,輪詢的訪問web1 和web2 主機 ;

搭建出NFS網絡文件存儲服務 。

4、實驗過程

  • (在NFS存儲服務器上配置)

(1)在 NFS存儲服務器中需加入兩塊硬盤,添加好後需重啓 。 可輸入命令 ls /dev/ 查看是否添加成功

對兩塊硬盤進行分區 、格式化 :
[root@nfs ~]# fdisk /dev/sdb     ‘對磁盤sdb的分區’
[root@nfs ~]# mkfs.xfs /dev/sdb1     ‘格式化’
[root@nfs ~]# fdisk /dev/sdc     ‘對磁盤sdc的分區’
[root@nfs ~]# mkfs.xfs /dev/sdc1

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-eXopdap4-1579160184712)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579081068737.png)]

(2)創建目錄作爲掛載點 ,並掛載
[root@nfs ~]# mkdir /opt/kg /opt/ac
[root@nfs ~]# vim /etc/fstab     ‘添加自動掛載的設置’
‘添加2行內容’
/dev/sdb1       /opt/kg         xfs     defaults        0 0
/dev/sdc1       /opt/ac         xfs     defaults        0 0

[root@nfs ~]# mount -a
[root@nfs ~]# df -hT

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Y6dtJRy2-1579160184712)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579084764151.png)]

(3)關閉防火牆,查看NFS相關軟件是否存在
[root@nfs ~]# systemctl stop firewalld.service 
[root@nfs ~]# setenforce 0
[root@nfs ~]# rpm -q nfs-utils     ‘已安裝nfs組件’
nfs-utils-1.3.0-0.48.el7.x86_64
[root@nfs ~]# rpm -q rpcbind 
rpcbind-0.2.0-42.el7.x86_64      ‘已安裝遠端過程調用組件’
(4)設置規則,編輯共享配置文件
[root@nfs ~]# vim /etc/exports
‘192.168.100.0 共享可訪問的地址’
/opt/kg         192.168.100.0/24(rw,sync,no_root_squash)
/opt/ac         192.168.100.0/24(rw,sync,no_root_squash)
(5)開啓服務,並查看nfs共享配置文件
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl start rpcbind
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/ac 192.168.100.0/24
/opt/kg 192.168.100.0/24
(6)把網卡改爲僅主機模式,修改IP地址

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MqSxNqmQ-1579160184713)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579085751876.png)]

[root@nfs ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33     ‘修改IP地址’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-AzoqMT5J-1579160184714)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579085954545.png)]

[root@nfs ~]# service network restart      ‘重啓網絡服務’
Restarting network (via systemctl):                        [  確定  ]
[root@nfs ~]# ifconfig     ‘查看IP地址’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-owtYKEni-1579160184714)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579086156523.png)]

  • (在 web1 、web2 服務器上配置)

(兩臺服務器配置相同)

(1)安裝apache服務 ,關閉防火牆
[root@web1 ~]# yum install httpd -y
[root@web1 ~]# systemctl stop firewalld.service 
[root@web1 ~]# setenforce 0
(2)設置網卡爲僅主機模式,並修改IP地址
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@web1 ~]# service network restart 

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ghtZRKPm-1579160184715)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579086885469.png)]

[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

[root@web2 ~]# service network restart 

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-89bcburk-1579160184715)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579087086154.png)]

(3)驗證NFS服務沒有問題
[root@web1 ~]# showmount -e 192.168.100.120
Export list for 192.168.100.120:
/opt/ac 192.168.100.0/24
/opt/kg 192.168.100.0/24          ‘兩臺服務器都需驗證’

(4)自動掛載NFS共享目錄到本地
[root@web1 ~]# vim /etc/fstab
‘末尾添加掛載設置’
192.168.100.120:/opt/kg         /var/www/html   nfs     defaults,_netdev        0 0

[root@web2 ~]# vim /etc/fstab 
192.168.100.120:/opt/ac         /var/www/html   nfs     defaults,_netdev        0 0
 
[root@web1 ~]# mount -a        '使掛載文件生效'
[root@web1 ~]# df -hT      ‘查看掛載’

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-T9CYeZsZ-1579160184716)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579088291113.png)]

(5)進首頁,分別給兩個web服務器 寫首頁文件
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# vim index.html
‘添加web1首頁內容’
<h1>this is kg web</h1>

[root@web1 html]# systemctl start httpd       ‘開啓服務’
[root@web1 html]# netstat -ntap | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      6765/httpd 

[root@web2 ~]# cd /var/www/html/
[root@web2 html]# vim index.html
‘添加web2首頁內容’
<h1>this is ac web</h1>

[root@web2 html]# systemctl start httpd       ‘開啓服務’
[root@web2 html]# netstat -ntap | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      4815/httpd 
  • (在LVS 服務器上配置)

配置LVS負載均衡

(1)安裝ipvsadm 服務
[root@lvs ~]# yum install ipvsadm -y
(2)添加1塊網卡,都設置成主機模式

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CMi82xqD-1579160184717)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579089318747.png)]

(3)修改IP地址
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36     ‘複製一份作爲另一個網卡ens36’
[root@lvs network-scripts]# ls
ifcfg-ens33   ifdown-post       ifup-eth     ifup-sit
ifcfg-ens36    ......
[root@lvs network-scripts]# vim ifcfg-ens33

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wJQxlgZo-1579160184718)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579089756203.png)]

[root@lvs network-scripts]# vim ifcfg-ens36

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-CYAnZ4eE-1579160184718)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579159255324.png)]

[root@lvs network-scripts]# service network restart

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MaaoyCTL-1579160184719)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579089972917.png)]

(4)在web服務器中驗證

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-zWPa4hBg-1579160184719)(C:\Users\xumin\AppData\Roaming\Typora\typora-user-images\1579090051488.png)]

(5)開啓路由轉發功能,設置防火牆規則
[root@lvs network-scripts]# vim /etc/sysctl.conf
‘添加到末尾’
net.ipv4.ip_forward=1      ‘啓動路由轉化功能’
[root@lvs ~]# sysctl -p     ‘啓動’

[root@lvs network-scripts]# iptables -F    ‘情況轉發表’
[root@lvs network-scripts]# iptables -t nat -F     ‘清空nat地址轉換表’
[root@lvs network-scripts]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1       ‘添加地址轉換規則’

(6)加載模塊,開啓ipvsadm 服務
[root@lvs ~]# cd /etc/sysconfig/network-scripts/
[root@lvs network-scripts]# modprobe ip_vs     ‘加載’
[root@lvs network-scripts]# ipvsadm --save > /etc/sysconfig/ipvsadm
[root@lvs network-scripts]# systemctl start ipvsadm
(7)添加腳本設置LVS規則,加權限執行
[root@lvs network-scripts]# cd /opt/
[root@lvs opt]# vim nat.sh
‘添加腳本 ,採用輪詢算法訪問兩個網站’
#! /bin/bash
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr     ‘輪詢’
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.111:80 -m   ‘映射web兩臺服務器’
ipvsadm

[root@lvs opt]# chmod +x nat.sh      ‘給nat.sh腳本權限’
[root@lvs opt]# ./nat.sh     ‘執行腳本’
(8)在win10 中驗證

外網客戶機通過訪問外網的網關直接映射到內網的web界面,內網的web採用輪詢的方式顯示出來,即一次顯示web1界面,一次顯示web2界面,可以有效的緩解web服務器的壓力 。(訪問期間若沒有變動,可清空緩存)
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章