LVS負載均衡群集(LVS-NAT)
阿新 • • 發佈:2018-06-21
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)