LVS負載均衡羣集之構建NAT模式

一、案例概述

LVS負載均衡模式—NAT模式:NAT用法本來是因爲網絡IP地址不足而把內部保留IP地址通過映射轉換成公網地址的一種上網方式(源地址NAT)。如果把NAT的過程稍微變化,就可以 成爲負載均衡的一種方式。原理其實就是把從客戶端發來的IP包的IP頭目的地址在DIR上換成其中一臺Web節點服務器的IP地址併發至此Web節點服務器,而Web節點服務器則在處理完成後把數據經過DIR主機發回給客戶端,DIR在這個時候再把數據包的源IP地址改爲DIR接口上的IP地址即可。期間,無論是進來的流量,還是出去的流量,都必須經過DIR。

LVS負載均衡模式—NAT模式:
優點:實現方便簡單,也容易理解;
缺點:LVS負載均衡調度器會稱爲一個優化的瓶頸,所有的報文都要經過LVS負載均衡調度器,因此,負載後端Web節點服務器的臺數在10-20臺左右,服務器性能而定,如果LVS負載均衡調度器壞掉,後果很嚴重,不支持異地容災;

二、案例環境

由於實驗環境,沒有必要弄那麼大型的拓補圖,2個Web節點服務跟10個Web節點服務器意思是一樣的,而且配置方法是一樣的,所以實驗環境就部署兩臺Web節點服務器。實驗拓補圖如下:

LVS負載均衡羣集之構建NAT模式,可跟做!!!

LVS負載均衡模式—NAT模式特點:

  1. Web節點服務器和LVS負載均衡調度器屬於同一IP網絡中網卡應該使用私網地址,且Web節點服務器的網關要指向LVS負載均衡調度器;
  2. 請求和響應報文都要經由LVS負載均衡調度器轉發;極高負載的場景中,LVS負載均衡調度器可能會成爲系統瓶頸;
  3. 支持端口映射;
  4. LVS負載均衡調度器可以使用任意操作系統(OS);
  5. LVS負載均衡調度器需要兩塊網卡(屬於典型的lan/wan)Web節點服務器和LVS負載均衡調度器必須有一塊網卡在同一IP網絡;
  6. VIP需要配置在LVS負載均衡調度器接受客戶端請求網卡上,且直接對外提供服務。

三、案例實施

案例實例原理

  1. client發送request到LVS調度服務器的VIP上,LVS調度服務器根據負載算法選擇一個Web節點服務器,並記錄連接信息到hash表中,然後修改client的request的目的IP地址爲Web節點的地址,將請求發給Web節點服務器r;
  2. Web節點服務器收到request包後,發現目的IP是自己的IP,於是處理請求,然後發送reply給LVS;
  3. LVS收到reply包後,修改reply包的的源地址爲VIP,發送給client;

1.配置負載調度器

1)開啓路由轉發功能

[root@localhost ~]# vim /etc/sysctl.conf
                 …………               //省略部分內容
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

2)配置負載分配策略

[root@localhost ~]# yum -y install ipvsadm
//默認沒有ipvsadm工具,需要手動安裝
[root@localhost ~]# ipvsadm -C
//清空原有策略
[root@localhost ~]# ipvsadm -A -t 192.168.1.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.2:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.3:80 -m -w 1
[root@localhost ~]# ipvsadm-save 
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.2.2:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.2.3:http -m -w 1
//確認VIP、添加Web節點服務器

關於這些命令的詳細解釋也可以參考博文:LVS負載均衡羣集詳解

2.配置Web節點服務器

所有的Web節點服務器均使用相同的配置,包括httpd服務端口、網站文檔內容。實際上各節點的網站文檔可存放在共享存儲設備中,從而免去同步的過程。但在本次實驗調試過程中可以爲各節點採用不同的網頁,以便測試負載均衡效果。

第一臺Web節點服務器

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "qqqqqqqq" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd

第二臺Web節點服務器

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "oooooo" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd

關於防火牆的相關配置可以參考博文:保證Linux系統安全之firewalld防火牆入門詳解本次實驗就把防火牆、SELinux關閉。

客戶機訪問(訪問192.168.1.1)時,多次刷新就會出現不一樣的頁面!在實際生產環境中,不可能讓頁面一直有變化,所以需要搭建——NFS共享存儲服務器。

3.搭建NFS共享存儲服務器

[root@localhost ~]# mkdir -p /var/www/html
[root@localhost ~]# echo "welcome to beijing" > /var/www/html/index.html
[root@localhost ~]# vim /etc/exports
/var/www/html   192.168.2.0/24(rw,sync,no_root_squash)
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind

Web節點服務器需要掛載一下:

[root@localhost ~]# mount 192.168.2.4:/var/www/html /var/www/html

客戶端再次訪問(192.168.1.1)LVS調度器查看效果:

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.1:80 rr
  -> 192.168.1.2:80               Route   1      1          0         
  -> 192.168.1.3:80               Route   1      1          0 

效果實現,實驗完成!!!

 

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