負載均衡集羣指使用多臺提供相同服務的服務器組成集羣系統,提高服務的併發處理能力。負載均衡集羣的前端使用一個調度器,將客戶端請求平均分配到後端的服務器中,同時調度器可能還具有後端服務器狀態檢測的功能,將故障的服務器自動下線,使得集羣具有一定的容錯能力。集羣擁有三種類型,負載均衡羣集、高可用集羣、高性能運算羣集。
在典型的負載均衡羣集中,包括三個層次的組件。
- 第一層,負載調度器:訪問整個羣集系統的唯一入口,對外使用所有的服務器共有的VIP(Virtual IP 虛擬IP)地址,也稱爲羣集IP地址。通常會配置主、備兩臺調度器實現熱備份,當主調度器失效以後平滑替換至備用調度器,確保高可用性。
- 第二層,服務器池:羣集所提供的應用服務由服務器池承擔,例如HTTP、FTP。其中每個節點具有獨立的RIP(Real IP,真實IP)地址,只處理調度器分發過來的客戶請求。當某個節點暫時失效時,負載調度器的容錯機制會將其隔離,等待錯誤排除以後再重新納入服務器池。
- 第三層,共享存儲:爲服務器池中的所有節點提供穩定、一致的穩點存儲服務,確保整個羣集的統一性。
關於羣集的負載調度技術,可以基於IP、端口、內容等進行分發,其中基於IP的負載調度是效率最高的。基於負載均衡模式中,常見的有地址轉換(NAT)、IP隧道(TUN)、直接路由(DR)三種工作模式。NAT方式只需要一個公網IP地址,從而成爲最易用的一種負載均衡模式,安全性也較好。
構建LVS負載均衡羣集,擁有兩種工作模式——LVS-NAT和LVS-DR。本篇主要講解LVS-NAT模式。
地址轉換模式(LVS-NAT)
環境準備
網卡模式爲僅主機模式,在centos7中,軟件的安裝方式多爲在線安裝,這裏我們可以事先將所需的軟件安裝好之後再更改網卡模式及IP地址。
主機 | 操作系統 | IP地址 | 主要軟件 |
---|---|---|---|
調度器,網關 | CentOS-7-x86_64 | 192.168.100.1/12.0.0.1 | ipvsadm |
Apache網站服務器 | CentOS-7-x86_64 | 192.168.100.110 | httpd |
Apache網站服務器 | CentOS-7-x86_64 | 192.168.100.120 | httpd |
NFS共享存儲服務 | CentOS-7-x86_64 | 192.168.100.130 | nfs-utils、rpcbind |
配置NFS
- 安裝兩個軟件包nfs-utils、rpcbind,在centos7系統中一般都默認安裝有,如果沒有使用yum安裝即可。
- 關閉防火牆及selinux防火牆
systemctl stop firewalld setenforce 0
- 開啓服務,編輯訪問規則(/etc/exports)
systemctl start nfs systemctl start rpcbind /usr/share *(ro,sync) /opt/benet 192.168.100.0/24(rw,sync) /opt/accp 192.168.100.0/24(rw,sync)
在創建完成站點目錄之後,文件夾的權限也要可讀寫 - 發佈共享
exportfs -rv
配置節點服務器
- 安裝httpd軟件,啓動服務
systemctl start httpd
- 查看共享存儲,並掛載到/var/www/html/下
- 創建測試網頁(/var/www/html/)
- 關閉防火牆及selinux防火牆
systemctl stop firewalld setenforce 0
節點2服務器的創建方式和節點1大同小異,區別在於掛載的共享存儲路徑,首頁網站內容也要有所區別,便於實驗分析。
配置負載調度器
- 配置雙網卡內網ens33:192.168.100.1 外網ens36:12.0.0.1
- 開啓路由轉發功能,在(/etc/sysctl.conf)配置文件中添加開啓路由轉發的命令
net.ipv4.ip_forward = 1 sysctl -p //加載,立即生效
- 配置SNAT轉發規則
在配置規則之前,首先清空防火牆規則,然後再添加新的規則iptables -t nat -F //清空nat表規則 iptables -F //清空轉發表規則 iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100/24 -j SNAT --to-source 12.0.0.1 //添加新的規則
由於是在防火牆內添加規則,所以防火牆不需要關閉,但是selinux防火牆仍需關閉
- 配置負載分配策略
- 加載LVS內核模塊
modprobe ip_vs cat /proc/net/ip_vs
- 安裝ipvsadm管理軟件,同時啓動服務,服務的啓動和以往的版本有所不同,在服務啓動前需將管理規則進行保存,然後再啓動服務
ipvsadm --save > /etc/sysconfig/ipvsadm systemctl start ipvsadm
3.編寫一個腳本文件(腳本可在任意目錄編寫),實現負載策略分配ipvsadm -C //清楚緩存 ipvsadm -A -t 12.0.0.1:80 -s rr //添加虛擬服務器 ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 -m ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.120:80 -m ipvsadm //啓用
測試LVS羣集
使用客戶機訪問http://12.0.0.1/,可以看到由真實服務器提供的網頁內容——如果個節點的網頁不同,則多次刷新的網頁也會不同。
- 加載LVS內核模塊