LVS負載均衡群集
cluster,群集,集群
由多臺主機構成,但對外只表現為一個整體
群集的類型
負載均衡群集(Load Balance Cluster):以提高應用系統的響應能力,盡可能處理更多的訪問請求,減少延遲為目標,獲得高並發、高負載(LB)的整體性能。
高可用群集(High Availability Cluster):以提高應用系統的可靠性、盡可能地減少中斷時間為目標,確保服務的連續性、達到高可用(HA)的容錯效果。
高性能運算群集(High Performance Computer Cluster):以提高應用系統的CPU運算速度、擴展硬件資源和分析能力為目標,獲得相當於大型、超級計算機的高性能運算(HPC)能力。
負載均衡的分層結構
負載均衡的工作模式
1)地址轉換,簡稱nat模式,負載均衡調度器作為網關,服務器和負載調度器在同一個私有網絡,安全性較好。
2)Ip隧道,簡稱tun模式,負載調度器僅作為客戶機的訪問入口,各節點通過各自的internet連接直接回應客戶機,不在經過負載調度器,服務器的節點分散在互聯網的不同位置,具有獨立的共有ip地址,通過專用的ip隧道與負載調度器相互通信。
3)直接路由,簡稱DR模式,與TUN模式類似,但各節點不是分散在各地,而是與調度器位於同一個物理網絡,負載調度器與各節點服務器通過本地網絡連接,不需要建立專用的ip隧道。
以上三種工作模式中,NAT方式只需要一個公網IP地址,從而成為最易用的一種負載均衡模式,安全性也比較好,許多硬件負載均衡設備就是采用這種方式;相比較而言,DR模式和TUN模式的負載能力強大,適用範圍更廣,但節點的安全性要稍差一些。
LVS虛擬服務器(Linux Virtual Server)
針對Linux內核開發的一個負載均衡項目,由我國的章文嵩博士在1988年5月創建,官方站點位於htttp://www.linuxvirtualserver.org/。
LVS現在已成為Linux內核的一部分,默認編譯為ip_vs模塊,必要時能夠自動調用。
LVS的負載調度算法
1)輪詢:將受到的訪問請求按順序輪流分配給群集中的各節點,不管服務器的連接數和系統負載。
2)加權輪詢:也是輪流分配,但是可以調整權重,讓處理性能強的服務器承擔更多的訪問流量。
3)最少連接:根據連接數分配,分配給連接數少的節點。
4)加權最少連接:權重高的節點將承擔更大比例的負載。
使用ipvsadm管理工具
ipvsadm是在負載調度器上使用的LVS群集管理工具,通過調用ip_vs模塊來添加、刪除服務器節點,以及查看群集的運行狀態。需要手動安裝
ipvsadm命令選項參數
選項 | 含義 | 舉例 |
-A | 添加虛擬服務器 | ipvsadm -A -t 172.16.16.172:80 -s rr |
-t | 指定VIP(虛擬IP)地址及TCP端口 | |
-s | 指定負載調度算法,輪詢(rr)、加權輪詢(wrr)、最少連接(lc)、加權最少連接(wlc) | |
-p | 保持連接時間(秒) | |
-a | 添加真實服務器 | ipvsadm -a -t 172.16.16.172:80 -r 192.168.1.10:80 -m -w 1 |
-r | 指定RIP(真實IP)地址及TCP端口 | |
-m | 使用NAT群集模式 | |
-g | 使用DR模式 | |
-i | 使用TUN模式 | |
-w | 設置權重(權重為0時表示暫停節點) | |
-l | 可以列表查看LVS虛擬服務器 | ipvsadm -ln |
-n | 以數字形式顯示地址、端口等信息, | |
-d | 刪除服務器池中某一個節點,執行刪除操作必須指定目標對象,包括節點地址、虛擬IP地址。 | ipvsadm -d -r 192.168.1.10:80 -t 172.16.16.172:80 |
-D | 刪除整個虛擬機服務器,只需指定虛擬IP地址即可 | ipvsadm -D -t 172.16.16.172:80 |
ipvsadm-save | 保存LVS策略 | ipvsadm-save > /etc/sysconfig/ipvsadm |
ipvsadm-restore | 恢復LVS策略 | ipvsadm-save < /etc/sysconfig/ipvsadm |
NFS共享存儲服務
NFS是一種基於TCP/IP傳輸的網絡文件系統協議,最初有SUN公司開發。
使用NFS發布共享資源
NFS服務的實現依賴於RPC(Remote Process Call,遠程過程調用)機制,以完成遠程到本地的映射過程。
(1)安裝支持軟件
(2)設置共享目錄
NFS的配置文件為/etc/exports,文件內容默認為空。
當需要將同一個目錄共享給不同的客戶機,且分配不同的權限是,只需以空格分隔即可。
(3)啟動NFS服務程序
(4)查看NFS服務程序
(5)設置iptables,允許客戶機訪問
2.在客戶機中訪問NFS共享資源
訪問時使用mount命令來進行掛載,對應的文件系統類型為nfs。既可以手動掛載,也可以加入fstab配置文件來實現開機自動掛載。
(1)安裝rpcbind、nfs-utils軟件包
(2)查看共享目錄
(3)手動掛載NFS共享目錄
完成掛載以後,訪問客戶機的/var/www/html文件夾,實際上就相當於訪問NFS服務器中的/opt/wwwroot文件夾,其中的網絡映射過程對於用戶程序來說是透明的。
(4)fstab自動掛載設置
構建LVS負載均衡群集
一、構建地址轉換模式(LVS-NAT)
實驗環境
配置負載調度器
(1)安裝ipvsdm工具
(2)配置SNAT轉發規則
(3)配置負載轉發策略
2.搭建NFS服務器(方法同上)
3.配置節點服務器
所有的節點服務器均使用相同的配置,包括httpd服務端口、網站文檔內容。實際上各節點的網站文檔可存放在共享存儲設備中,從而免去同步的過程。但在案例調試階段可以為各節點采用不同的網頁,以便測試負載均衡效果。
設置iptables規則
4.測試LVS群集
安排多臺測試,從Internet中直接訪問 http://172.16.16.172/ ,將能夠看到由真實服務器提供的網頁內容,如果各節點網頁不同,則不同客戶機看到的網頁可能也不一樣(可以多刷新幾次)
在LVS負載均衡調度器中,通過查看節點狀態可以觀察當前的負載分配情況,對於輪詢算法來說,每個節點所獲得的連接負載應大致相當。
二、構建直接路由模式(LVS-DR)
實驗環境
配置負載調度器
(1)配置虛擬IP地址(VIP)
采用虛接口的方式(eth0:0),為網卡eth0綁定VIP地址,以便響應群集訪問。
(2)調整/proc響應參數
對於DR群集模式來說,由於LVS負載調度器和各節點需要共用VIP地址,應該關閉Linux內核的重定向參數響應
vim /etc/sysctl.conf
執行 sysctl -p ,立即生效
(3)配置負載分配策略
2.配置NFS服務器(方法同上)
3.配置節點服務器
(1)配置虛擬IP地址(VIP)
添加VIP本地訪問路由
永久
臨時
(2)調整/proc響應參數
vim /etc/sysctl.conf
執行 sysctl -p ,立即生效
(3)搭建測試網站(方法同上),並啟用httpd服務程序
4.測試LVS群集
LVS負載均衡群集