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

LVS-NAT負載均衡群集

nas type 關閉防火墻 添加 0.12 失效 util exp conf

群集的類型
  • 負載均衡群集:以提高應用系統的相應能力、盡可能處理更多的訪問請求、減少延遲為目標,獲得高並發、高負載的整體性能。
  • 高可用群集:以提高應用系統的可靠性。盡可能的減少中斷時間為目標,確保服務的連續性,達到高可用的容錯效果。
  • 高性能運算群集:以提高應用系統的CPU運算速度、擴展硬件資源和分析能力為目標,獲得相當於大型、超級計算機的高性能運算能力。

    負載均衡的分層結構

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

    負載均衡的三種工作模式

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

    實驗環境

  • centos7系統
  • 調度服務器(網關):內網192.168.100.1 外網12.0.0.1
  • web服務器節點1:192.168.100.101
  • web服務器節點2:192.168.100.102
  • NFS共享存儲服務器:192.168.100.103
  • win客戶機(測試):12.0.0.12

環境部署

一、NFS服務器

1.查詢有沒有安裝軟件包,默認是安裝的.

rpm -q nfs-utils rpcbind

如果沒有安裝用yum安裝即可

yum install -y nfs-utils rpcbind

2.啟動服務

systemctl start rpcbind.service
systemctl restart nfs.service

3.創建共享目錄並修改用戶權限

mkdir -p /data/web1 /data/web2
chmod 777 /data/web1 /data/web2

4.編輯配置文件

vim /etc/exports
/data/web1 192.168.100.0/24(rw,sync) #192.168.100.0/24網段可以讀寫、自動同步
/data/web2 192.168.100.0/24(rw,sync) #192.168.100.0/24網段可以讀寫、自動同步

5.發布共享

exportfs -rv

6.關閉防火墻

setenforce 0
systemctl stop firewalld.service

web1服務器

1.安裝apache

yum install -y httpd

2.客戶端查看共享儲存,並掛載到/var/www/html/

showmount -e 192.168.100.103
mount.nfs 192.168.100.103:/data/web1 /var/www/html

3.創建默認首頁文件

echo "<h1>this is web1 server</h1>" > /var/www/html/index.html

4.啟動服務

systemctl enable httpd.service
systemctl start httpd.service

5.關閉防火墻

systemctl stop firewalld.service
setenforce 0

web2服務器

1.安裝apache

yum install -y httpd

2.客戶端查看共享儲存,並掛載到/var/www/html/

showmount -e 192.168.100.103
mount.nfs 192.168.100.103:/data/web2 /var/www/html

3.創建默認首頁文件

echo "<h1>this is web2 server</h1>" > /var/www/html/index.html

4.啟動服務

systemctl enable httpd.service
systemctl start httpd.service

5.關閉防火墻

systemctl stop firewalld.service
setenforce 0

負載調度器(網關)

1.開啟路由轉發功能

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

2.使轉發功能生效

sysctl -p

3.清空防火墻及設置snat地址轉換

iptables -t nat -F
iptable -F
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1

4.加載LVS內核模塊,並查看ip_vs模塊版本

modprobe ip_vs
cat /proc/net/ip_vs

技術分享圖片

5.安裝管理軟件

rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

6.啟動服務,服務的啟動和以往的版本有所不同,在服務啟動前需將管理規則進行保存,然後再啟動服務,否則會報錯

ipvsadm-save  > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
  1. 創建虛擬服務器
ipvsadm -C    #清除緩存
ipvsadm -A -t 12.0.0.1:80 -s rr           #添加虛擬服務器采用rr(輪詢)的負載均衡算法   
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.101:80 -m       #添加真實服務器節點,為web1服務器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.102:80 -m            #添加真實服務器節點,為web2服務器  
ipvsadm       #啟用

技術分享圖片
8.關閉selinux防火墻,由於是在防火墻內添加規則,所以防火墻不需要關閉。

setenforce 0

win7客戶機測試

技術分享圖片

客戶機對調度服務器進行訪問,已實現了輪詢訪問
技術分享圖片
技術分享圖片

LVS-NAT負載均衡群集