Centos 7基於NAT(地址轉換)模式的負載均衡配置詳解

關於LVS負載均衡羣集技術的相關概念,能夠參考博文:LVS負載均衡羣集詳解html

這篇博文以配置爲主,配置過程當中相關命令的解釋已經在上面連接中的博文寫了出來,環境以下:linux

Centos 7基於NAT(地址轉換)模式的負載均衡配置詳解

最終結果以下:web

  • 使用NAT模式的羣集技術,LVS負載調度器是全部節點訪問Internet的網關服務器,其200.0.0.1也做爲整個羣集的VIP地址。算法

  • 使用輪詢(rr)的調度算法。vim

  • web1和web2先搭建web服務,分別準備不一樣的網頁文件,供客戶端訪問,以此來肯定client訪問LVS服務器的200.0.0.1,能夠訪問到兩臺wbe服務器。bash

  • 待client測試成功後,web1和web2即可以掛載NFS服務器提供的共享目錄,以此來爲client提供相同的網頁文件。

1、準備工做:服務器

  1. 將網絡配置無誤,同一網段的能夠互通;網絡

  2. 準備系統映像和相關的軟件包,以便搭建httpd服務,和安裝相關工具。這裏爲了方便,便直接使用系統映像中的安裝包來搭建httpd服務。負載均衡

  3. 防火牆放行相關流量,我這裏直接關閉了防火牆和selinux 。

2、配置負載均衡調度器:ide

一、開啓路由轉發規則:

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

二、配置負載分配策略,並導出備份(若需知道下面配置的含義,請參考博文開頭的連接。):

[root@localhost ~]# modprobe ip_vs               #加載ip-vs模塊
[root@localhost ~]# yum -y install ipvsadm        #安裝ipvsadm管理工具
[root@localhost ~]# ipvsadm -C
[root@localhost ~]# ipvsadm -A -t 200.0.0.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.2:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.3:80 -m -w 1
[root@localhost ~]# hostname LVS    #更改主機名,防止在備份時將VIP地址轉爲127.0.0.1
[root@localhost ~]# bash             
[root@LVS ~]# ipvsadm-save                #保存策略
-A -t LVS:http -s rr
-a -t LVS:http -r 192.168.1.2:http -m -w 1
-a -t LVS:http -r 192.168.1.3:http -m -w 1
[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm.bak          #導出策略做爲備份
[root@LVS ~]# cat /etc/sysconfig/ipvsadm.bak         #查看備份策略
-A -t LVS:http -s rr
-a -t LVS:http -r 192.168.1.2:http -m -w 1
-a -t LVS:http -r 192.168.1.3:http -m -w 1

三、配置節點web服務器:

web1配置以下:

[root@web1 ~]# yum -y install httpd               #安裝httpd服務
[root@web1 ~]# echo "web  server  1" > /var/www/html/index.html      #準備網頁文件
[root@web1 ~]# systemctl start httpd             #啓動httpd服務
[root@localhost ~]# systemctl enable httpd         #設置開機自啓動

web2配置以下:

[root@web1 ~]# yum -y install httpd               #安裝httpd服務
[root@web1 ~]# echo "web  server  2" > /var/www/html/index.html      #準備網頁文件
[root@web1 ~]# systemctl start httpd             #啓動httpd服務
[root@localhost ~]# systemctl enable httpd         #設置開機自啓動

四、測試LVS負載均衡服務器是否工做正常(client屢次訪問200.0.0.1,能夠獲得兩個不一樣的頁面):

Centos 7基於NAT(地址轉換)模式的負載均衡配置詳解

Centos 7基於NAT(地址轉換)模式的負載均衡配置詳解

若訪問到的是同一頁面,在排除配置上錯誤的狀況下,能夠打開多個網頁,或者稍等一會再刷新,由於它可能有一個保持鏈接的時間,因此會存在延遲。

獲得以上效果後,就能夠搭建NFS服務器,兩臺web服務器共同掛載同一個NFS服務器共享的目錄,以此來提供相同的網頁文件:

五、配置NFS共享存儲服務器:

[root@NFS /]# yum -y install nfs-utils rpcbind                   #安裝相關軟件包
[root@NFS /]# systemctl enable nfs               #設置爲開機自啓動
[root@NFS /]# systemctl enable rpcbind          #設置爲開機自啓動
[root@NFS /]# mkdir -p /opt/wwwroot               #準備共享目錄
[root@NFS /]# echo www.baidu.com > /opt/wwwroot/index.html              #新建網頁文件
[root@NFS /]# vim /etc/exports                         #設置共享目錄(該文件內容默認爲空)
/opt/wwwroot   192.168.2.0/24(rw,sync,no_root_squash)           #寫入該行
[root@NFS /]# systemctl restart rpcbind                  #重啓相關服務,需注意服務啓動的前後順序
[root@NFS /]# systemctl restart nfs
[root@NFS /]# showmount -e               #查看本機共享的目錄
Export list for NFS:
/opt/wwwroot 192.168.2.0

六、在兩臺web服務器分別查看NFS服務器的共享目錄,掛載並設置開機自動掛載:

① 配置web2服務器

[root@web2 ~]# yum -y install rpcbind nfs-utils  
#安裝相關軟件包,才能夠訪問及查詢NFS的共享目錄
[root@web2 ~]# systemctl enable rpcbind             #設置爲開機自啓
[root@web2 ~]# systemctl start rpcbind                 #啓動該服務
[root@web2 ~]# showmount -e 192.168.2.1          #查詢NFS主機共享的目錄
Export list for 192.168.2.1:
/opt/wwwroot 192.168.2.0
[root@web2 ~]# mount 192.168.2.1:/opt/wwwroot /var/www/html/             #掛載共享目錄
[root@web2 ~]# df -hT /var/www/html/          #查看是否掛載成功
文件系統                 類型  容量  已用  可用 已用% 掛載點
192.168.2.1:/opt/wwwroot nfs4   39G  4.3G   35G   12% /var/www/html
[root@web2 ~]# vim /etc/fstab               #設置自動掛載 
                   .........................
192.168.2.1:/opt/wwwroot  /var/www/html   nfs   defaults,_netdev 0 0
#寫入上面內容

至此,web2服務器即配置完成了,如今將上面的配置在web1服務器上自行配置一下便可 。
若此時再進行訪問測試,看到的頁面不是NFS共享存儲提供的頁面,那麼須要檢測一下web節點的selinux是否關閉,若處於開啓狀態,那麼頗有可能httpd這個進程沒法讀取到共享存儲的首頁文件。

至此,無論怎樣刷新訪問,都將是看到同一個網頁。最終的LVS負載均衡效果也就實現了。

當LVS服務器重啓後,LVS規則將會丟失,這就用到了備份,須要注意的是,備份時的主機名和恢復時的主機名必須一致,而且須要注意網卡優先的問題,不然在恢復後,會發現VIP(羣集的虛擬IP)變成了LVS服務器的另外一個IP地址

[root@localhost ~]# ipvsadm -ln          #查看策略
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm-restore < /etc/sysconfig/ipvsadm.bak              #恢復策略
[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  200.0.0.1:80 rr                         #須要注意這裏是否仍是原來的VIP
  -> 192.168.1.2:80               Masq    1      0          0         
  -> 192.168.1.3:80               Masq    1      0          0

OK。。。。。。。。。。。。。。。。

相關文章
相關標籤/搜索