1. 程式人生 > >LVS負載均衡群集(LVS-NAT)

LVS負載均衡群集(LVS-NAT)

tfs http 文件系統 管理軟件 save 網絡文件系統 fda 調度器 Oz

群集技術概述

1. 群集的類型

  • 負載均衡群集(Load Balance Cluster):以提高應用系統的響應能力、盡可能處理更多的訪問請求、減少延遲為目標,獲得高並發、高負載(LB)的整體性能。例如,“DNS輪詢”“應用層交換”“方向代理”等都可用作負載均衡群集。LB的負載分配依賴於主節點的分流算法,將來自客戶機的訪問請求分擔給多個服務器節點,從而緩解整個系統的負載壓力。
  • 高可用群集(High Availability Cluster):以提高應用系統的可能性、盡可能地減少中斷時間為目標,確保服務的連續性,達到高可用(HA)的容錯效果。例如,“故障切換”“雙機熱備”“多機熱備”等都屬於高可用群集技術。HA的工作方式包括雙工和主從兩種模式。雙工即所有節點同時在線;主從則只有主節點在線,但當出現故障時從節點能自動切換為主節點。
  • 高性能運算群集(High Performance Computer Cluster):以提高應用系統的CPU運算速度、擴展硬件資源和分析能力為目標,獲得相當於大型、超級計算機的高性能運算(HPC)能力。例如,“雲計算”“網絡計算”也可視為高性能運算的一種。高性能運算群集的高性能依賴於“分布式運算”和“並行計算”,通過專用硬件和軟件將多個服務器的CPU、內存等資源整合在一起,實現只有大型、超級計算機才具備的計算能力。

    2. 負載均衡的分層結構

  • 第一層,負載調度器:這是訪問整個群集系統的唯一入口,對外使用所有服務器共有的VIP(Virtual IP,虛擬IP)地址,也稱為群集IP地址。通常會配置主、備兩臺調度器實現熱備份、當主調度器失效以後平滑替換至備用調度器,確保高可用性。
  • 第二層,服務器池:群集所提供的應用服務(如HTTP、FTP)由服務器池承擔,其中的每個節點具有獨立的RIP(Real IP,真實IP)地址,只處理調度器分發過來的客戶機請求。當某個節點暫時失效時,負載調度器的容錯機制會將其分離,等待錯誤排除以後再重新納入服務器池。
  • 第三層,共享存儲:為服務器池中的所有節點提供穩定、一致的文件存取服務,確保整個群集的統一性、在Linux/UNIX環境中,共享存儲可以使用NAS設備,或者提供NFS(Network File System,網絡文件系統)共享服務專用服務器。

    3. 負載均衡的工作模式

    關於群集負載調度技術,可以基於IP、端口、內容等進行分發,其中基於IP的負載調度是效率最高的。基於IP的負載均衡模式中,常見的有地址轉換、IP隧道和直接路由三種工作模式:

  • 地址轉換(Network Address Translation):簡稱NAT模式,類似於防火墻的私有網絡結構,負載調度器作為所有服務器節點的網關,即作為客戶機的訪問入口,也是各節點回應客戶機的訪問出口。服務器節點使用私有IP地址,與負載調度器位於同一個物理網絡,安全性要優於其他兩種方式。
  • IP隧道(IP Tunnel):簡稱TUN模式,采用開放式的網絡結構,負載調度器僅作為客戶機的訪問入口,各節點通過各自的Internet連接直接回應客戶機,而不再經過負載調度器。服務器節點分散在互聯網中的不同位置,具有獨立的公網IP地址,通過專用IP隧道與負載調度器相互通信。
  • 直接路由(Direct Routing): 簡稱DR模式,采用半開放式的網絡結構,與TUN模式的結構類似,但各節點並不是分散在各地,而是與調度器位於同一個物理網絡。負載調度器與各節點服務器通過本地網絡連接,不需要建立專用的IP隧道。

以上三種工作模式中,NAT方式只需要一個公網IP地址,從而成為最易用的一種負載均衡模式,安全性也比較好,許多硬件負載均衡設備就是采用這種方式;相比較而言,DR模式和TUN模式的負載能力更加強大、適用範圍更廣,但節點的安全性要稍差一些。

實驗環境:

服務主機 操作系統 IP地址
LVS負載調度 CentOS7 內:192.168.100.1外:12.0.0.1
節點服務器1 CentOS7 192.168.100.110
節點服務器2 CentOS7 192.168.100.120
共享存儲服務器 CentOS7 192.168.100.130
客戶機Client Window7 12.0.0.12

技術分享圖片

實驗部署:

一. 配置共享存儲服務器:

#rpm –q nfs-utils
#rpm –q rpcbind     //查看是否安裝NFS軟件,若沒有,用yum安裝
#systemctl start nfs.service
#systemctl start rpcbind.service
#mkdir /opt/benet /opt/accp //創建共享目錄
#chmod 777 benet accp       //放大權限保證正常讀寫
#vi /etc/exports
    /usr/share *(ro,sync)       //共享/usr/share目錄,只讀且同步
/opt/benet 192.168.100.0/24(rw,sync)    //共享空間給節點服務器做網絡站點
/opt/accp 192.168.100.0/24(rw,sync)     //權限為可讀寫,且同步
#exportfs –rv       //發布共享
#systemctl stop firewalld.service       //關閉防火墻
#setenforce 0

二. 配置節點服務器1

#yum install httpd –y       //安裝apache服務
#mount.nfs 192.168.100.130:/opt/benet /var/www/html     //將共享存儲服務器提供的空間掛載至節點服務器網絡站點下
#echo “this is benet web” > /var/www/html/index.html        //添加benet首頁
#systemctl stop firewalld.service       //關閉防火墻
#setenforce 0
#systemctl start httpd.service      //開啟apache服務

配置節點服務器2

#yum install httpd –y       //安裝apache服務
#mount.nfs 192.168.100.130:/opt/accp /var/www/html      //將共享存儲服務器提供的空間掛載至節點服務器網絡站點下
#echo “this is accp web” > /var/www/html/index.html     //添加accp首頁
#systemctl stop firewalld.service       //關閉防火墻
#setenforce 0
#systemctl start httpd.service      //開啟apache服務

三. 配置負載調度器

1. 配置雙網卡

配置內網ens33位內網網卡IP地址為192.168.100.1;外網網卡ens36IP地址為12.0.0.1

2. 配置負載管理軟件

#modprobe ip_vs         //加載LVS內核模塊
#cat /proc/net/ip_vs        //查看軟件信息
#yum install ipvsadm –y     //安裝ip_vs管理軟件
#ipvsadm –save > /etc/sysconfig/ipvsadm //保存任務
#systemctl start ipvsadm.service    //啟動服務

3. 配置調度腳本

#vim /opt/nat.sh
    #!/bin/bash
    ipvsadm –C          //清楚內核虛擬服務器表中的所有記錄
    ipvsadm -A -t 12.0.0.1:80 -s rr         //添加虛擬服務器,指定IP地址和端口,采用輪詢調度算法
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 –m      //指定調度地址池IP地址和端口,-m表示使用SNAT規則
    ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.120:80 -m
    ipvsadm                             //啟動ipvsadm服務
#source /opt/nat.sh

4. 配置SNAT

#vim /etc/sysctl.conf
    net.ipv4.ip_forward=1       //添加行,開啟路由轉發功能
#sysctl –p      //立即生效
#iptables –F        //清空防火墻原有策略
#iptables –t nat –F         //清空NAT表規則
#iptables –t nat –A POSTROUTING –o ens36 –s 192.168.100.0/24 –j SNAT --to-source 12.0.0.1

四. 測試

訪問外網端口12.0.0.1,多次刷新可發現實現負載均衡
技術分享圖片
技術分享圖片

LVS負載均衡群集(LVS-NAT)