歡迎來到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使用    過完春節一直忙的稀裡糊塗,腦袋一直轉的太快,下午暫時有點空閒,正好最近N多朋友要做web 方式下的負載均衡,簡單描述一下lvs的設置(不涉及HA、Mult-homing),當做大腦休息好了:p    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(偶是懶人,懶得打kernel patch了:p)    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裡找到答案,不用象偶當時完全是瞎子摸象:p。    上面只是lvs一個簡單的應用,其它的復雜應用完全可以到lvs主頁、maillist等查找。




Copyright © Linux教程網 All Rights Reserved