[學習]網(wǎng)站集群架構(gòu)設(shè)計lvs實現(xiàn)網(wǎng)絡負載均衡實例精講_第1頁
已閱讀1頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、網(wǎng)站集群架構(gòu)設(shè)計LVS實現(xiàn)網(wǎng)絡負載均衡實例精講,http://www.docin.com/sundae_meng,http://www.docin.com/sundae_meng,,清楚為什么會出現(xiàn)LVSLVS能夠做到的LVS實現(xiàn)方式LVS需要High AvailabilityLVS的應用延伸,http://www.docin.com/sundae_meng,互聯(lián)網(wǎng)的發(fā)展,Unix誕生于1969年1987商業(yè)化的互聯(lián)網(wǎng)誕生

2、1990年互聯(lián)網(wǎng)的膨脹在繼續(xù),http://www.docin.com/sundae_meng,群集概念的出現(xiàn),人口大爆炸,男的比女的多3700萬,都去上網(wǎng)。于是服務器吃不消了,有人提出了群集、云------概念。,http://www.docin.com/sundae_meng,解決之道,Html語法URL重定向Location 返回代碼早前的DNS的多個A記錄負載均衡產(chǎn)品F5硬件GSLB服務端應用負載均衡 從程序解決,h

3、ttp://www.docin.com/sundae_meng,開源解決之道,節(jié)約采購硬件成本、減少開發(fā)難度基于開源應用軟件的Modules解決之路 apache mod_geoip mod_proxy_balancer mod_proxy_ajp nginx GEO Module tomcat sessions1998年5月創(chuàng)立LVS 成為了Linux內(nèi)核的一部分 效率高真實運行的Web proxy集群系統(tǒng),http

4、://www.docin.com/sundae_meng,什么是LVS,LVS是章文嵩博士發(fā)起和領(lǐng)導的優(yōu)秀的集群解決方案,許多商業(yè)的集群產(chǎn)品,比如RedHat的Piranha等,都是基于LVS的核心代碼的。LVS是一個開源的軟件,在LINUX平臺下實現(xiàn)基于IP負載均衡技術(shù)和內(nèi)容請求分發(fā)技術(shù) 。LVS是Linux Virtual Server的縮寫,意思是Linux虛擬服務器。http://www.linuxvirtualserve

5、r.org/http://zh.linuxvirtualserver.org/,http://www.docin.com/sundae_meng,LVS能做到的,The Linux Virtual Server is a highly scalable and highly available server built on a cluster of real servers, with the load balancer runni

6、ng on the Linux operating system. The architecture of the server cluster is fully transparent to end users, and the users interact as if it were a single high-performance virtual server.http://www.linuxvirtualserver.org

7、/,http://www.docin.com/sundae_meng,高性能的調(diào)度器,LVS集群采用IP負載均衡技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡地轉(zhuǎn)移到不同的服務器上執(zhí)行,結(jié)合健康檢測功能調(diào)度器自動屏蔽掉服務器的故障,結(jié)合High Availability技術(shù)從而將一組服務器構(gòu)成一個高性能的、高可用的虛擬服務器。整個服務器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務器端的程序。為此,在設(shè)計時需要考慮系統(tǒng)的透明性、可伸縮性、

8、高可用性和易管理性。,http://www.docin.com/sundae_meng,LVS不能做到的,機器數(shù)量需要多Nginx 在一個主機上就可以實現(xiàn)很好的負載基于IP的調(diào)度算法不能實現(xiàn)基于語意的調(diào)度對于應用程序的sessions需要借助其他方式對于數(shù)據(jù)庫RAC、REPLICATION不同Google file system, Bigtable, Mapreduce(Hadoop開源的可運行于大規(guī)模集群上的分布式并行編程

9、框架 ),http://www.docin.com/sundae_meng,典型LVS結(jié)構(gòu),一般來說,LVS集群采用三層結(jié)構(gòu),負載調(diào)度器、服務器池、共享存儲主要部分組成。,http://www.docin.com/sundae_meng,LVS的三個部分,負載調(diào)度器(load balancer),它是整個集群對外面的前端機,負責將客戶的請求發(fā)送到一組服務器上執(zhí)行,而客戶認為服務是來自一個IP地址(我們可稱之為虛擬IP地址)上的。服務器

10、池(server pool),是一組真正執(zhí)行客戶請求的服務器,執(zhí)行的服務有WEB、MAIL、FTP和DNS等。 共享存儲(shared storage),它為服務器池提供一個共享的存儲區(qū),這樣很容易使得服務器池擁有相同的內(nèi)容,提供相同的服務。,http://www.docin.com/sundae_meng,三種IP負載均衡技術(shù),可伸縮網(wǎng)絡服務結(jié)構(gòu),都需要一個前端的負載調(diào)度器(主從備份)基于IP負載均衡技術(shù)是在負載調(diào)度器的實現(xiàn)技術(shù)中

11、效率最高的。在已有的IP負載均衡技術(shù)中,主要有通過網(wǎng)絡地址轉(zhuǎn)換(Network Address Translation)將一組服務器構(gòu)成一個高性能的、高可用的虛擬服務器,我們稱之為VS/NAT技術(shù)(Virtual Server via Network Address Translation)。在分析VS/NAT的缺點和網(wǎng)絡服務的非對稱性的基礎(chǔ)上通過IP隧道實現(xiàn)虛擬服務器的方法VS/TUN (Virtual Server via I

12、P Tunneling)通過直接路由實現(xiàn)虛擬服務器的方法VS/DR(Virtual Server via Direct Routing),VS/DR可以極大地提高系統(tǒng)的伸縮性。VS/NAT、VS/TUN和技術(shù)是LVS集群中實現(xiàn)的三種IP負載均衡技術(shù)。,http://www.docin.com/sundae_meng,VS/NAT的體系結(jié)構(gòu),,http://www.docin.com/sundae_meng,半連接的TCP有限狀態(tài)機

13、,,http://www.docin.com/sundae_meng,VS/TUN的體系結(jié)構(gòu),,http://www.docin.com/sundae_meng,VS/DR的體系結(jié)構(gòu),,http://www.docin.com/sundae_meng,調(diào)度算法,輪叫調(diào)度(Round-Robin Scheduling) 加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling) 最小連接調(diào)度(Least-Conne

14、ction Scheduling) 加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling) 基于局部性的最少鏈接(Locality-Based Least Connections Scheduling) Cache 帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)Cache 目標地址散列調(diào)

15、度(Destination Hashing Scheduling) 源地址散列調(diào)度(Source Hashing Scheduling),http://www.docin.com/sundae_meng,LVS實現(xiàn)方式,IP Virtual Server Netfilter module ls -l /lib/modules/`uname -r`/kernel/net/ipv4/ipvsRedHat 7.3/8.0都把

16、ipvs預先編譯到了RedHat發(fā)行版的內(nèi)核當在redhat9.0取消了預編譯目前IPVS包含在2.6的內(nèi)核中,不需要重新編譯,非常簡單ipvsadm utility to administer the IP Virtual Server inside the Linux kernel,http://www.docin.com/sundae_meng,ipvsadm常用命令,增加調(diào)度服務ipvsadm -A -t 虛擬服務地址:服

17、務端口 -s 調(diào)度算法增加真實服務器ipvsadm -a -t 虛擬服務地址:服務端口 -r 真實服務地址 –g工作模式刪除真實服務器ipvsadm -d -t 虛擬服務地址:服務端口 -r 真實服務地址 –g工作模式刪除調(diào)度服務ipvsadm -D -t 虛擬服務地址:服務端口 -s 調(diào)度算法查看調(diào)度狀態(tài)ipvsadm –lnipvsadm -lnc,http://www.docin.com/sundae_meng,

18、狀態(tài)同步,主節(jié)點ipvsadm --start-daemon master --mcast-interface eth0從節(jié)點ipvsadm --start-daemon backup --mcast-interface eth0,http://www.docin.com/sundae_meng,session會話保持Persistence,-p –persistent [timeout] 持久穩(wěn)固的服務。這個選項的意思是來自同

19、一個客戶的多次請求,將被同一臺真實的服務器處理。timeout 的默認值為300 秒。解決這個問題,最有效的辦法就是在后端web節(jié)點間實現(xiàn)session復制,用戶在任何一個真實web節(jié)點上的session發(fā)生變化時,通過一定的策略同步復制到其它web節(jié)點上。,http://www.docin.com/sundae_meng,調(diào)度器與真實服務器配置,在調(diào)度器上設(shè)置VIP調(diào)度地址開啟IP轉(zhuǎn)發(fā)ifconfig eth0:0 虛擬

20、服務地址 netmask 255.255.255.255 broadcast 虛擬服務地址 uproute add -host 虛擬服務地址 dev eth0:0echo 1 > /proc/sys/net/ipv4/ip_forward,http://www.docin.com/sundae_meng,調(diào)度器與真實服務器配置,在真實服務器上設(shè)置VIP應答地址屏蔽arp請求ifconfig lo:0 虛擬服務地址 n

21、etmask 255.255.255.255 borcast 虛擬服務地址 uproute add -host 虛擬服務地址 dev lo:0echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceecho 1 > /proc/sys/net/ipv4/conf/all/arp_i

22、gnoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce,http://www.docin.com/sundae_meng,RealServer標準配置方式,編輯/etc/sysconfig/network-scripts/ifcfg-lo:0 設(shè)置VIP地址DEVICE=lo:0IPADDR=192.168.1.160#VIP地址NETMASK=255.255.25

23、5.255 BROADCAST=192.168.1.160#廣播地址設(shè)置為VIP地址ONBOOT=yesNAME=loopback編輯/etc/sysctl.conf 設(shè)置禁用arpnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.

24、all.arp_announce = 2,http://www.docin.com/sundae_meng,演示環(huán)境,采用VS/DR模式,通過ipvsadm命令方式建立演示一個典型的環(huán)境:一個dr節(jié)點、兩個realserver節(jié)點運行WEB服務。VIP:192.168.1.160/24DR:192.168.1.161/24RealServerA:192.168.1.167/24RealServerB:192.1

25、68.1.168/24GATEWAY:192.168.1.1DNS:192.168.1.1,http://www.docin.com/sundae_meng,,Demo 演示視頻,http://www.docin.com/sundae_meng,問題,配置腳本問題DR節(jié)點成為單點故障源無RealServer的監(jiān)控狀態(tài)檢測LVS需要High Availability,http://www.docin.com/sun

26、dae_meng,LVS需要High Availability,LVS PiranhaLVS heartbeat ldirectordLVS Keepalived,http://www.docin.com/sundae_meng,LVS Piranha,piranha為REDHAT開發(fā)的一個LVS集群管理工具叫Piranha,用于控制LVS集群,并提供了一個圖形化的配置界面。Piranha - Load-balanced Web

27、 and FTP Clusterspiranha-gui servicepulse serviceLinux Virtual Server Administration http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Virtual_Server_Administration/index.html,http://www.docin.com/sund

28、ae_meng,Piranha,http://www.docin.com/sundae_meng,,GET / HTTP/1.0\r\n\r\n,http://www.docin.com/sundae_meng,Piranha安裝,Piranha是調(diào)度節(jié)點的配置,RealServer節(jié)點的配置仍不能缺少rs節(jié)點設(shè)置VIPrs節(jié)點禁用ARP對于centos yum -y install piranha ipvsadm不能使用yu

29、m需要安裝如下包(具體版本因OS不同)php-commonphp-cliphpipvsadmpiranha,http://www.docin.com/sundae_meng,Piranha配置文件,/etc/sysconfig/ha/lvs.cf添加刪除節(jié)點更改調(diào)度服務定義更改參數(shù)設(shè)置更改后重新啟動pulse,http://www.docin.com/sundae_meng,Piranha結(jié)合Kickstart定制,結(jié)

30、合Kickstart %post腳本定制預定義修改lvs.cf快速,http://www.docin.com/sundae_meng,,采用VS/DR模式,通過Piranha方式建立演示一個典型的環(huán)境:一個dr節(jié)點、兩個realserver節(jié)點運行WEB服務。VIP:192.168.1.160/24DR:192.168.1.161/24BDR:192.168.1.162/24RealServerA:19

31、2.168.1.167/24RealServerB:192.168.1.168/24GATEWAY:192.168.1.1DNS:192.168.1.1配置監(jiān)控檢測,測試節(jié)點移除,http://www.docin.com/sundae_meng,,Demo 演示視頻,http://www.docin.com/sundae_meng,LVS Keepalived,keepalived http://keepalive

32、d.sourceforge.netKeepalived在這里主要用作RealServer的健康狀態(tài)檢查以及DR調(diào)度Master主機和BackUP主機之間failover的實現(xiàn) 當網(wǎng)卡就可以實現(xiàn)(主備監(jiān)聽) VRRP提示:在centos 5.3 上有異常,http://www.docin.com/sundae_meng,VRRP:Virtual Router Redundancy Protocol(虛擬路由器冗余協(xié)議,虛擬路由器冗余

33、協(xié)議(VRRP)是一種選擇協(xié)議,它可以把一個虛擬路由器的責任動態(tài)分配到局域網(wǎng)上的 VRRP 路由器中的一臺??刂铺摂M路由器 IP 地址的 VRRP 路由器稱為主路由器,它負責轉(zhuǎn)發(fā)數(shù)據(jù)包到這些虛擬 IP 地址。一旦主路由器不可用,這種選擇過程就提供了動態(tài)的故障轉(zhuǎn)移機制,這就允許虛擬路由器的 IP 地址可以作為終端主機的默認第一跳路由器。,http://www.docin.com/sundae_meng,LVS Keepalived,Kee

34、palivedkeepalived是一個類似于layer3, 4 & 5交換機制的軟件,也就是我們平時說的第3層、第4層和第5層交換。Keepalived的作用是檢測web服務器的狀態(tài),如果有一臺web服務器死機,或工作出現(xiàn)故障,Keepalived將檢測到,并將有故障的web服務器從系統(tǒng)中剔除,當web服務器工作正常后Keepalived自動將web服務器加入到服務器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只

35、是修復故障的web服務器。 Layer3,4&5工作在IP/TCP協(xié)議棧的IP層,TCP層,及應用層,原理分別如下: Layer3:Keepalived使用Layer3的方式工作式時,Keepalived會定期向服務器群中的服務器發(fā)送一個ICMP的數(shù)據(jù)包(既我們平時用的Ping程序),如果發(fā)現(xiàn)某臺服務的IP地址沒有激活,Keepalived便報告這臺服務器失效,并將它從服務器群中剔除,這種情況的典型例子是某臺服務器被非法關(guān)機

36、。Layer3的方式是以服務器的IP地址是否有效作為服務器工作正常與否的標準。Layer4:如果您理解了Layer3的方式,Layer4就容易了。Layer4主要以TCP端口的狀態(tài)來決定服務器工作正常與否。如web server的服務端口一般是80,如果Keepalived檢測到80端口沒有啟動,則Keepalived將把這臺服務器從服務器群中剔除。 Layer5:Layer5就是工作在具體的應用層了,比Layer3,Layer4要

37、復雜一點,在網(wǎng)絡上占用的帶寬也要大一些。Keepalived將根據(jù)用戶的設(shè)定檢查服務器程序的運行是否正常,如果與用戶的設(shè)定不相符,則Keepalived將把服務器從服務器群中剔除。,http://www.docin.com/sundae_meng,,,http://www.docin.com/sundae_meng,,,http://www.docin.com/sundae_meng,,Demo 演示視頻,http://www.doci

38、n.com/sundae_meng,heartbeat ldirectord,heartbeathttp://www.linux-ha.orgHeartbeatheartbeat是一種心跳檢測機制。他可以讓兩臺服務器(Master Server 和Slave Server)互為備份。Heartbeat的中文是“心跳檢測”。Slave Server利用heartbeat來檢測Master Master的當前狀態(tài),當Master Se

39、rver不能工作時(如:down機)Slave Server通過heartbeat來接管Master Server的所有工作,這個接管過程在10秒以內(nèi)完成,對用戶來說沒有什么察覺。Heartbeat中包含一個IP take over(IP 地址接管)的功能,此功能是通過ARP欺騙的手段來完成的。,http://www.docin.com/sundae_meng,heartbeat ldirectord,ldirectord工作原理:l

40、directord需要在每臺真實服務器web服務器的根目錄下建立你在配置文件所指定的文件與內(nèi)容,然后ldirectord通過循環(huán)檢查此文件來確定真實服務器是否存活,如果不存活,則自動將其權(quán)重設(shè)為0,以確保后面客戶的連接不會再導向失效的真實服務器,如果真實服務修復上線后,則其又將它的權(quán)重設(shè)為以使它能夠繼續(xù)為客端連接提供服務。ldirectord主要是通過調(diào)用ipvsadm來創(chuàng)建ipvs虛擬服務器表。"ldirectord&qu

41、ot;(LinuxDirectorDaemon)可以對服務和物理服務器進行監(jiān)測,被廣泛地用于http和https等服務。它是專門為LVS(LinuxVirtualServer)監(jiān)控而編寫的,不僅能從heartbeat的配置文件/etc/ha.d/xxx.cf中讀取所有有關(guān)IPVS(IPVirtulServer)路由表配置的信息,還可以方便地被heartbeat管理(比如由heartbeat來啟動和停止ldirectord服務)。,htt

42、p://www.docin.com/sundae_meng,,,http://www.docin.com/sundae_meng,,Demo 演示視頻,http://www.docin.com/sundae_meng,LVS的應用延伸,Web站點負載(LAMP /J2EE /Lighttpd)結(jié)合Squid服務成為CDN 結(jié)合MySQL Cluster成為MySQL高性能高可靠群集基于LVS的二次開發(fā),http://www.

43、docin.com/sundae_meng,,,http://www.docin.com/sundae_meng,在CU上發(fā)起的兩個項目,計劃發(fā)起一個項目:基于Centos或Ubuntu重構(gòu)OS 最新進展整合Discuz http://linux.chinaunix.net/bbs/thread-1062281-1-1.html[集群] LVS-HOWTO中文翻譯計劃,感興趣加入群72050696 http://linux.chi

溫馨提示

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

評論

0/150

提交評論