1. 程式人生 > >Linux集群簡介以及lvs-nat部署(一)

Linux集群簡介以及lvs-nat部署(一)

lvs集群;lvs-nat

隨著一個公司的不斷發展,用戶量隨之增多,對服務器的負載能力要求也逐漸增高,可采取換購高性能服務器解決負載能力問題,這叫做向上擴展。但擴展硬件終究會達到一個極限,此時便無法滿足負載要求。而且換購高性能服務器投入的資金與提高負載能力的水平並不劃算,可能投入大筆資金換來的只是20%左右負載能力的提高。所以有了集群(Cluster)的概念,也就是計算機的集合,多臺服務器通過前端調度器的調度為用戶提供服務,也就是向外擴展。
Linux Cluster分為幾個類型:LB、HA、HP、DS,LB就是負載均衡,多臺服務器同時提供服務,這樣的集群中存在一個調度器,這是負載均衡集群中的核心所在也是會出問題的一個點,一旦調度器出現問題,便會出現單點故障,所以調度器會成為性能瓶頸;HA被稱為高可用集群,這裏有MTBF(平均無故障時間)和MTTR(平均故障修復時間)以及Availability=MTBF/(MTBF+MTTR)的概念,一旦我們使MTTR的時間趨向於0,集群的高可用性便會很好,對於不同的業務,可用性要求也不同,一般會采用降低MTTR來提高可用性;HP被稱為高性能集群,集中多臺服務器的計算能力完成某些計算操作;DS被稱為分布式系統,分布式存儲和分布式處理較多使用這種服務。

lvs集群分為四種類型:lvs-nat,lvs-dr,lvs-tunnal,lvs-fullnat,前三種類型是章文嵩先生研究所得,lvs-fullnat是後來開發來的一種集群類型,一般較多使用lvs-nat和lvs-dr這兩種類型的集群完成集群服務的部署,下面是lvs-nat集群的工作簡圖:


技術分享


客戶端發送一個請求報文於調度服務器上,此時源IP地址和目的IP地址分別為CIP和VIP,調度服務器的VIP網卡接受到報文,傳給input鏈,在鏈上匹配規則,如果匹配到是對應服務,則通過DIP網卡傳送至後端RS提供服務,此時報文源IP地址和目的IP地址分別為CIP和RIP,後端RS接受到報文請求便提供服務。這裏註意後端RS服務器為了防止外網用戶直接訪問,IP地址應為私有IP地址,只能通過VS調度至RS服務器。所以在RS中需要配置跳轉至DIP的網關。由於這種集群類型的請求報文和響應報文都需要經過調度器轉發,請求報文只有幾十字節,而響應報文遠遠不止幾十字節這麽簡單,因此調度器也便成了整個集群性能的瓶頸可能會引發單點故障。

下面配置一個lvs-nat集群並進行測試:

計劃兩臺RS所在192.168.100.0/24網段,VS中172.16.0.0/16網段接收報文,192.168.100.0/24網段與RS交流。

首先配置兩臺RS的IP地址:

技術分享

技術分享

在兩臺RS上搭建Apache/HTTPD服務,RS1監聽8080端口,RS2監聽80端口:

技術分享

技術分享

註意:每臺RS還需要一個網關以回應報文:

技術分享

這時配置VS,首先也是先配置VS中兩塊網卡IP:

技術分享

接下來配置VS的集群服務:

技術分享技術分享

此時已經完成lvs-nat集群的搭建,但是可能172.16.0.0/16網段並不能訪問後端服務器RS,VS明明已經接收報文,但是沒有轉發出去,這時需要開啟Linux內核的ip_forward模塊。有兩種開啟方式:臨時開啟是將此/proc/sys/net/ipv4/ip_forward文件中保存的值置1,永久開啟則是將/etc/sysctl.conf中net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1。

接下來測試搭建lvs-nat集群時使用的rr算法:

技術分享


Linux集群簡介以及lvs-nat部署(一)