負載均衡軟件實現與硬件實現方案_第1頁
負載均衡軟件實現與硬件實現方案_第2頁
負載均衡軟件實現與硬件實現方案_第3頁
負載均衡軟件實現與硬件實現方案_第4頁
負載均衡軟件實現與硬件實現方案_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

該文檔是word2003—word2007兼容版軟件、硬件負載均衡部署方案目錄TOC\o"1-5"\h\z\o"CurrentDocument"1、硬件負載均衡之F5部署方案 2\o"CurrentDocument"1.1網絡拓撲結構 3\o"CurrentDocument"1.2反向代理部署方式 4\o"CurrentDocument"2軟件負載均衡方案 5\o"CurrentDocument"2.1負載均衡軟件實現方式之一-URL重定向方式 5\o"CurrentDocument"2.2負載均衡軟件實現方式之二 -基于DNS 7\o"CurrentDocument"2.3負載均衡軟件實現方式之三 -LVS 9\o"CurrentDocument"2.4負載均衡軟件實現方式之四-專業負載均衡軟件 20總結: 21..…1、硬件負載均衡之F5部署方案對于所有的對外服務的服務器,均可以在BIG-IP上配置VirtualServer實現負載均衡,同時BIG-IP可持續檢查服務器的健康狀態,一旦發現故障服務器,則將其從負載均衡組中摘除。BIG-IP利用虛擬IP地址(VIP由IP地址和TCP/UDP應用的端口組成,它是一個地址)來為用戶的一個或多個目標服務器(稱為節點:目標服務器的 IP地址和TCP/UDP應用的端口組成,它可以是internet的私網地址)提供服務。因此,它能夠為大量的基于TCP/IP的網絡應用提供服務器負載均衡服務。根據服務類型不同分別定義服務器群組,可以根據不同服務端口將流量導向到相應的服務器。BIG-IP連續地對目標服務器進行L4到L7合理性檢查,當用戶通過VIP請求目標服務器服務時,BIG-IP根椐目標服務器之間性能和網絡健康情況,選擇性能最

佳的服務器響應用戶的請求。如果能夠充分利用所有的服務器資源,將所有流量均衡的分配到各個服務器,我們就可以有效地避免“不平衡”現象的發生。利用UlE+iRules可以將TCP/UDP數據包打開,并搜索其中的特征數據,之后根據搜索到的特征數據作相應的規則處理。因此可以根據用戶訪問內容的不同將流量導向到相應的服務器,例如:根據用戶訪問請求的URL將流量導向到相應的服務器。1.1網絡拓撲結構網絡拓撲結構如圖所示:ClientIntranetFirewallIntranetFirewallBIG-IP2400BIG-IP2400■■Scrver3SenCoreSwitchBIG-IP2400網絡拓撲結構1.2反向代理部署方式下圖為集群服務器的硬件負載均衡詳細架構圖,由一臺 F5虛擬機分別對多臺服務器進行負載分配。19二曲』川町:=njbs匱U1^Ihi)壯M■育Ef卜19二曲』川町:=njbs匱U1^Ihi)壯M■育Ef卜rsey]JPWEBW豊扎VMigpZ|IJJ汀L2N口ARtMMlL.gHpaEclt1ftwlAjvdicJdftuHhl廉打壓番曙:wani'"77i"nr=務由:I..上嚴丨IffflSlWriF^.L.IFHT利駅聞I1riiWLAMiEN^md>n<Fiflrrri>n.ii用VI.AN-1^xhriu|)何1郵ImHHf*IJA IHJMdtaptflSE.MLMS21S丸W科走瞬刖雲詢幗互林料?開誹為覺曄如圖,假設域名被解析到F5的外網/公網虛擬IP:(vs_squid),該虛擬IP下有一個服務器池(pool_squid),該服務器池下包含兩臺真實的Squid服務器(1和2)。、如果Squid緩存未命中,則會請求 F5的內網虛擬IP:(vs_apache),該虛擬IP下有一個默認服務器池(pool_apache_default),該服務器池下包含兩臺真實的Apache服務器(1和2),當該虛擬IP匹配iRules規則時,則會訪問另外一個服務器池(pool_apache_irules),該服務器池下同樣包含兩臺真實的 Apache服務器(3和4)。、另外,所有真實服務器的默認網關指向 F5的自身內網IP,即。、所有的真實服務器通過SNATIP地址訪問互聯網2軟件負載均衡方案2.1負載均衡軟件實現方式之一 -URL重定向方式有一種用軟件實現負載均衡的方式,是基于"URL重定向"的.先看看什么是URL重定向:"簡單的說,如果一個網站有正規的 URL和別名URL,對別名URL進行重定向到正規URL,訪問同一個網址,或者網站改換成了新的域名則把舊的域名重定向到新的域名,都叫URL重定向"(/service/hostfaq.php)"很多網絡協議都支持“重定向”功能,例如在HTTP協議中支持Location指令,接收到這個指令的瀏覽器將自動重定向到 Location指明的另一個URL上。"(http://sysapp./art/200604/25388.htm)這種方式,對于簡單的網站,如果網站是自己開發的,也在一定程度上可行.但是它存在著較多的冋題1、“例如一臺服務器如何能保證它重定向過的服務器是比較空閑的,并且不會再次發送Location指令,Location指令和瀏覽器都沒有這方面的支持能力,這樣很容易在瀏覽器上形成一種死循環。”2、 在哪里放LOCATION,也是一個問題。很有可能用戶會訪問系統的很多個不同URL,這個時候做起來會非常麻煩。并且,對URL的訪問,有的時候是直接過來的,可以被重定向,有的時候是帶著SESSION之類的,重定向就可能會出問題。并且,這種做法,將負載均衡這個系統級的問題放到了應用層, 結果可能是麻煩多多。3、 這種方式一般只適用于HTTP方式,但是實際上有太多情況不僅僅是HTTP方式了,特別是用戶如果在應用里面插一點流媒體之類的。4、 重定向的方式,效率遠低于IP隧道。5、 這種方式,有的時候會伴以對服務器狀態的檢測,但往往也是在應用層面實現,從而實時性大打折扣。實際上,這種方式是一種“對付”的解決方法,并不能真正用于企業級的負載均衡應用(這里企業級是指稍微復雜一點的應用系統) 可以看一下專業的負載均衡軟件是如何來實現的:http://www./pcl/pcl_sis_theory.htm對比一下可以發現,專業的負載均衡軟件要更適用于正規應用, 而重定向方式則比較適用于一些簡單的網站應用

2.2負載均衡軟件實現方式之二基于DNSjhe>#r?ii2.2負載均衡軟件實現方式之二基于DNSjhe>#r?ii十焊卡L芻;ciiratLj|?托話:2U22MAii.i?iStfer計算機檢Strwr曇有IFWfcrI91UU1罰*出匕心JQ14X理詛危但-:WkB傭邑i加L■■二豐IT瘵曲匡;hjqrnm說員垠會鼻;ltJHPi;StricrliL^irttkiiu.iw.vj負載均衡集群網絡拓撲圖

講到負載均衡,幾乎所有地方都必須要講一下基于DNS的方式,因為這實在是最基本、最簡單的方式了。當然,也幾乎所有地方都說到這種方式的種種缺點,不過,既然很基本,就還是要說明一下F面這段講得很清楚:

最早的負載均衡技術是通過DNS來實現的,在DNS中為多個地址配置同一個名字,因而查詢這個名字的客戶機將得到其中一個地址,從而使得不同的客戶訪問不同的服務器,達到負載均衡的目的。DNS負載均衡是一種簡單而有效的方法,但是它不能區分服務器的差異,也不能反映服務器的當前運行狀態。當使用 DNS負載均衡的時候,必須盡量保證不同的客戶計算機能均勻獲得不同的地址。由于 DNS數據具備刷新時間標志,一旦超過這個時間限制,其他DNS服務器就需要和這個服務器交互,以重新獲得地址數據,就有可能獲得不同IP地址。因此為了使地址能隨機分配,就應使刷新時間盡量短,不同地方的DNS服務器能更新對應的地址,達到隨機獲得地址,然而將過期時間設置得過短,將使DNS流量大增,而造成額外的網絡問題。DNS負載均衡的另一個問題是,一旦某個服務器出現故障,即使及時修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間,保存了故障服務器地址的客戶計算機將不能正常訪問服務器。盡管存在多種問題,但它還是一種非常有效的做法,包括 Yahoo在內的很多大型網站都使用DNS。引自:負載均衡技術研究原文:http://www./loadbalance/lb_tech.htm比較一下DNS方式與專業的負載均衡軟件如PCL負載均衡軟件,會發現DNS的問題在于,一是往往不能根據系統與服務的狀態來判斷負載,二是往往不能建立較復雜的負載均衡算法,而最主要的是DNS往往有緩存,簡單分配負載問題不大,如果是應用集群這個就是無法接受的。那么,為什么象Yahoo在內的大型網站都使用DNS方式呢?因為對于門戶網站來講,應用形態單一且簡單,重要的是服務器數量與分布,而如果出現短時間對于少量用戶的服務中斷問題并不大(比如有100臺服務器,有一臺不行了,即使DNS有緩存,也關系不大,用戶重新刷一下,就很可能又分配到其他機器上了)。但是,對于應用系統而言,比如兩三臺服務器,跑著比較復雜的應用,DNS方式就完全不適合了,這個時候,就要用專業的負載均衡軟件了。我們可以看一個實例,這樣會對專業化負載均衡軟件應該支持什么樣的應用有更多的理解:36000人同時應用的負載均衡實例2.3負載均衡軟件實現方式之三 -LVSLVS是一個開源的軟件,可以實現LINUX平臺下的簡單負載均衡.后面所附文章,講述了LVS實現負載均衡的方法?因為文章較長,所以在轉載前,先總結一下LVS的優缺點:優點:1、 開源,免費2、 在網上能找到一些相關技術資源3、具有軟件負載均衡的一些優點缺點:1、 具有開源產品常有的缺點,最核心的就是沒有可靠的支持服務,沒有人對其結果負責2、 功能比較簡單,支持復雜應用的負載均衡能力較差,如算法較少等。3、 開啟隧道方式需重編譯內核4、 配置復雜5、 只支持LINUX,如果應用還包括WINDOWS、SOLIRIS等就不行了因此,建議在簡單的LINUX應用中使用LVS,復雜的應用,或者重要的應用,還是應該使用專業的負載均衡軟件,如富士通西門子公司的 PCL負載均衡軟件。下面轉載一下如何使用LVS實現負載均衡:搭建集群負載均衡系統 (原文:http://www.xxlinu/linux/artic...p/20060707/2519.html )負載均衡集群是在應用服務器高負載的情況下,由多臺節點提供可伸縮的,高負載的服務器組以保證對外提供良好的服務響應;而LVS就是實現這一功能的技術.實際上LVS是一種Linux操作系統上基于IP層的負載均衡調度技術,它在操作系統核心層上,將來自IP層的TCP/UDP請求均衡地轉移到不同的服務器,從而將一組服務器構成一個高性能、高可用的虛擬服務器。使用三臺機器就可以用LVS實現最簡單的集群,如圖1所示圖1LVS實現集群系統結構簡圖圖1顯示一臺名為Director的機器是前端負載均衡器,運行 LVS,目前只能在Linux下運行.可以針對web、ftp>cache、mms甚至mysql等服務做loadbalanee;后端兩臺機器稱之為RealServer,是需要負載均衡的服務器,可以為各類系統,LinuxfSolaris、Aix、BSD、Windows都可,甚至Director本身也可以作為RealServer.本文將通過實際操作,重點介紹如何在Redhat9上用LVS構建一個負載均衡集群,關于負載均衡集群、LVS的詳細內容,可參考如下信息:http://www.linu//developerWorks/ ..r/lvs/part1/index.shtml安裝LVSRedHat在9.0以后,就將ipvsadm這些套件去除,因此如果想使用LVS(LinuxVirtualServer),就得自己重新編譯核心(kernel)。下載所需軟件下載ipvs補丁包從RedHat9開始ipvs不再被預先編譯到了RedHat發行版的內核中,我們需要從/software/kernel-2.4 下載新版的ipvs,這里我們使用ipvs-1.0.9.tar.gz這個版本.下載內核linux-2420.tar.gz這里需要強調的是由于所有的ipvs的補丁包都是為標準內核開發的,所以安裝ipvs時不能使用RedHat光盤中的KernelSource,而是需要去下載標準的內核。所以我們從/pub/linux/kernel/ 得到standardkernellinux-2.4.20.tar.gz下載ipvs管理工具ipvsadm從 / 得至U ipvs管理工具ipvsadm-1.21.tar.gz,ipvsadm 是設置ipvs轉發方式和調度算法的工具.開始安裝安裝內核源碼把linux-2420.tar.gz 解壓到/usr/src目錄,生成了/usr/src/linux目錄;如果生成的是/usr/src/linux-2.4.20目錄,則要在/usr/src下建立一個連接ln-slinux-2.4.20linux,因為在ipvs-1.0.9中的makefile文件中默認指定KernelSource的路徑為:KERNELSOURCE=/usr/src/linux把ipvs補丁Patch到內核源碼中把ipvs-1.0.9.tar.gz解壓縮到某個目錄,如/test,生成了/test/ipvs-1.0.9目錄;進入/test/ipvs-1.0.9 ,依次執行如下命令: makepatchkernel、makeinstallsource,將ipvs的Patch力卩載至Ukernel的source中。重新編譯支持ipvs的內核進入/usr/src/linux 目錄,分別執行:makemrproper 為創建新的內和配置做好準備makemenuconfig 進行配置這里請確保IP:VirtualServerConfiguration 中的選項設定都用Mmakedep檢測是否有相關的軟件包被使用makeclean 為新內核結構準備源目錄樹makebzImage 創建內核引導映像makemodules、makemodules」nstall 生成模塊makeinstall安裝新的內核到指定位置并重新配置 grub.conf到這里新內核就安裝完畢了,請重啟并用此內核引導系統安裝ipvs管理工具ipvsadm當使用新內核啟動后,就可以安裝ipvsadm:tarxzvfipvsadm-1.21.tar.gzcd./ipvsadm-1.21makemakeinstall安裝完成后,執行ipvsadm命令,如果有如下信息出現則說明安裝成功了[root@leonc]#ipvsadmIPVirtualServerversion1.0.9(size=65536)ProtLocalAddress:PortSchedulerFlags->;RemoteAddress:Port ForwardWeight ActiveConnInActConn到現在為止,支持負載均衡功能的director就安裝成功了,接下來我們可以通過ipvsadm來配置一個負載均衡集群。構建負載均衡集群這里我們假設局域網中有兩臺FTP服務器,IP分別為FTP1:03,FTP2:所提供的資料都是相同的,這可以通過無密碼SSH登錄+RSYNC來保證數據一致,這非本文中電,故而略過?我們提供給用戶的虛擬IP是00,而在后臺為這兩臺FTP服務器實行LVS負載均衡的服務器的IP是3.這三臺均安裝RedHat9系統.我們最終要實現的目標是當用戶輸入ftp00時,LVS負載均衡服務器系統會根據當時的負載情況,依據輪換策略來決定RealServer到底是FTP1還是FTP2,從而使得整個FTP服務器的負載到達均衡.目前LVS有三種負載平衡方式,NAT(NetworkAddressTranslation ),DR(DirectRouting),IPTunneling。其中,最為常用的是DR方式,因此這里只說明DR(DirectRouting)方式的LVS負載平衡。其它兩種的詳細情況請參考LVS-HOWTO.Director(即3)上執行的設置為了方便我們將所有步驟寫成一個shellscript.#!/bin/bashecho"0">;/proc/sys/net/ipv4/ip_forward( 關閉ip_forward)echo"1">;/proc/sys/net/ipv4/conf/all/send_redirects (開啟ICMPRedirects)echo"1">;/proc/sys/net/ipv4/conf/default/send_redirects (開啟ICMPRedirects)hidden-2.4.5-1.diff 2.4.5hidden-2.4.5-1.diff 2.4.5-2.4.19pre4June2,2001echo"1" >;/proc/sys/net/ipv4/conf/ethO/send_redirects (echo"1" >;/proc/sys/net/ipv4/conf/ethO/send_redirects (開啟ICMPRedirects)ifconfigethO:1OO00broadcast00netmask55(設置虛擬IP)routeadd-host00deveth0:100(設置達到虛擬Ip的路由)ipvsadm -C(清空ipvsadmtable)ipvsadm-A-t00:21-swrr(建立servicerule,當前調度算法為加權輪叫調度)ipvsadm-a-t00:21-r6-g-w3(建立轉發規則)ipvsadm-a-t00:21-r-g-w1 (建立轉發規則)ipvsadm(檢查當前ipvsadmtable)將此shellscript加入到/etc/rc.local中,這樣在每次系統啟動時都可以自動運行進行設置了。Realserver(即和6)上的設置這里我們必須先修正realserver上arpproblem.這是因為在使用VS/DR的時候,realserver會在一塊網卡上綁定兩個IP,但linux在kernel2.2.14以后就將eth0:1的NOARPFLAG關閉,這使得eth0:1僅僅是eth0的別名,任何對eth0:1的操作都對eth0有效,因此如果此時使eth0:1NOARP,則也使得eth0NOARP,這樣整個網卡都不會收到數據包,具體的說就是因為我所有的機

器都放在同一個網段,當該網段的Router器都放在同一個網段,當該網段的Router接收到用戶對虛擬 IP的TCPconnection 要求(即使用FTP登錄服務器)時,會先在網段中利用Arprequest詢問誰有VIP的地址,而包含Director與RealServers上所有的interface,只要他有那個ip,都會發送arpreply回去,造成網段內所有擁有VirtualIP的interface都會reply給Router,最后結果就是看誰的速度快,Router就將該封包送給誰,如此會造成LVS的Server并無法發揮其效果,而我們所希望的是只有Director上的VirtualIP發送arpreply回去,因此需要利用hidden這個pattch,將realserver上的VirtualIP給隱藏起來,如此他就不會對 ArpRequest進行Reply,就可以解決ARP的問題.具體步驟是:下載所需的軟件包從從http://www.ssi.bg/~ja/得到hidden修正包,不同的核心使用相應的版本.請參考下表PatchLinux2.4Createdhidden-2.4.28-1.diff 2.4.28-2.4.30 November18,2004hidden-2.4.26-1.diff 2.4.26-2.4.27 February28,2004hidden-2.4.25-1.diff 2.4.25February19,2004hidden-2.4.20pre10-1.diff 2.4.20pre10-2.4.24October12,2002hidden-2.4.19pre5-1.diff 2.4.19pre5-2.4.20pre9April7,2002hidden-2.4.4-1.diff 2.4.4April29,2001PatchLinux2.6Createdhidden-2.6.9-1.diff2.6.9-2.6.11 October19,2004hidden-2.6.4-1.diff2.6.4-2.6.8March12,2004hidden-2.6.3-1.diff2.6.3February19,2004hidden-2.5.67-1.diff2.5.67-2.6.2April9,2003本例使用的內核版本是2.4.20-8,因此下載hidden-2.4.20pre10-1.diff本例使用的內核版本是重新編譯內核,修正arpproblem把hidden-2.4.20pre10-1.diff 放到/usr/src/linux下,用命令patch-p1<hidden-2.4.20pre10-1.diff 對kernel進行patch進入/usr/src/linux目錄,分別執行:makemrproper 為創建新的內和配置做好準備makemenuconfig 進行配置makedep檢測是否有相關的軟件包被使用makeclean為新內核結構準備源目錄樹makebzImage創建內核引導映像makemodules、makemodules_install 生成模塊makeinstall安裝新的內核到指定位置并重新配置 grub.conf到這里新內核就安裝完畢了,請重啟并用此內核引導系統設置Realserver為了方便我們將所有步驟寫成一個shellscript.#!/bin/bashecho"0">;/proc/sys/net/ipv4/ip_forward( 關閉ip_forwa

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論