Linux集羣簡介以及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集羣的工作簡圖:


05a03598fcd4190e79f0c01168df1f93.png

    


    客戶端發送一個請求報文於調度服務器上,此時源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地址:

ba6ca55ef4c84162d5f994f9f81d66a4.png-wh_

d53c14491d0b20d0672d7065bad17381.png-wh_

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

d02e4a620083716c587d57fa94433333.png-wh_

a4fb664afd171e3783ee70ef5e3b9654.png-wh_

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

79662a5325907e4427b5f1769046cff2.png-wh_

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

53e69b27cc9a439955dd5ccf57407ea0.png

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

    0ab0502d645995462dc7596c7691bb5f.pngdfc32b779d71d793dbbd9722cccc955f.png

    此時已經完成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算法:

    128913778f9284a6e6aed33374f42cbd.png


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