歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux文化

Linux系統下負載均衡器LVS簡單設置


簡單術語:

Director:前端負載均衡器,運行lvs,目前只能為Linux,針對FreeBSD剛剛出來,性能不知道如何。可以針對web、ftp、cache、mms甚至mysql等服務做loadbalance。

RealServer:後段需要負載均衡的服務器,可以為各類系統,Linux、Solaris、Aix、BSD、Windows都可,甚至Director本身也可以作為RealServer使用。

lvs Linux Virtual Server,Linux下的負載均衡器,不多作介紹了,跟DNS輪詢以及一些商業產品的比較等不做論述,具體看看LVS網站,支持LVS-NAT、 LVS-DR、LVS-TUNL三種不同的方式,nat用的不是很多,這裡簡單介紹一下DR、TUNL方式。

DR方式適合所有的RealServer同一網段下,即接在同一個交換機上。TUNL方式就RealServer可以任意了,完全可以跨地域、空間,只要系統支持Tunnel就成(Win2k3好像已經不支持了)。

方便以後擴充的話直接Tunl方式即可;

Director系統為RHEL3+ClusterSuite;

RealServer系統為Rhel3+noarp補丁。

Director設置:

需要在Director設置的就是/etc/sysconfig/ha/lvs.cf,以及安裝ClusterSuite後啟動pulse服務(Redhat的lvs服務,當然也可以手動),下面是一個簡單的lvs設置(沒有設置director HA),man lvs.cf看看詳細設置,RHEL3裡已經有了詳細的手冊。

     203.x.x.a為Director公網ip地址      203.x.x.b為需要Loadbance的域名的Ip地址      203.x.x.c 為第一個RealServer      203.x.x.d為第二個RealServer      #cat /etc/sysconfig/ha/lvs.cf      serial_no = 45      primary = 203.x.x.a      service = lvs      rsh_command = ssh      backup_active = 0      backup = 0.0.0.0      heartbeat = 1      heartbeat_port = 539      keepalive = 10      deadtime = 20      network = direct(Tunl方式改為tunnel)      nat_nmask = 255.255.255.255      reservation_conflict_action = preempt      debug_level = NONE      virtual www.test.com {      active = 1      address = 203.x.x.b eth0:0      vip_nmask = 255.255.255.255      port = 80      send = "GET / HTTP/1.0\r\n\r\n"      expect = "HTTP"      load_monitor = uptime      scheduler = wlc      protocol = tcp      timeout = 10      reentry = 15      quiesce_server = 0      server r1 {      address = 203.x.x.c      active = 1      weight = 1      }      server r2 {      address = 203.x.x.d      active = 1      weight = 1      }      }  

  上面的設置是對某個域名的web訪問進行負載均衡,Director使用ssh定時收集RealServer上的負載,然後決定Loadbalance的分配,分配方式為WLC方式,然後啟動pulse服務,看看/var/log/message裡有沒有什麼配置錯誤,RHEL3裡設置已經非常方便、簡單。

RealServer配置:

RS系統為Rhel3,針對DR、Tunl需要不同的設置,但關鍵的是arp問題,這裡使用的noarp module,當然Rhel3裡也提供了arptables來配合lvs(效果可能不是很好),這裡介紹一下noarp。

noarp編譯不做介紹了,configure install後,insmod noarp把noarp加入內核,然後需要執行:

 

    noarpctl add 203.x.x.b 203.x.x.a  

  這是把所有對203.x.x.b的arp請求轉向203.x.x.a(Director),然後建立虛擬ip以完成路由,DR的話需要建立網卡,放在eth0或者lo都行:

 

    ifconfig eth0:1 203.x.x.b netmask 255.255.255.255 up

   Tunl方式的話需要啟動tunl虛擬網卡:

 

    ifconfig tunl0 203.x.x.b netmask 255.255.255.255 up

   同樣在RealServer2上同樣的設置,在兩個RealServer上啟動apache,Director上檢測一下連接:

     ipvsadm -Ln

   看看當前的負載分配,lvs的穩定性不用置疑,Rhas2.1、Rhel3裡的LVS在我這裡4年使用裡極其穩定,訪問量從當時的幾百人在線到現在的接近10K,只需要根據負載增加後段的RealServer即可,但Rhas2.1的LVS對Tunl支持的不好,建議使用Rhel3進行tunl方式的 Loadbalance。

幾句題外話:

lvs這兩年裡已經很穩定了,應用也已經很多了,maillist已經很活躍了,一些問題完全可以在maillist裡找到答案。

上面只是lvs一個簡單的應用,其它的復雜應用完全可以到lvs主頁、maillist等查找。


Copyright © Linux教程網 All Rights Reserved