RedHat5+LVS負載均衡_第1頁
RedHat5+LVS負載均衡_第2頁
RedHat5+LVS負載均衡_第3頁
RedHat5+LVS負載均衡_第4頁
RedHat5+LVS負載均衡_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 RedHat5+lvs實現(xiàn)負載均衡一、Linux Virtual Server概述Linux Virtual Server (LVS)是一套完整的基于IP的負載均衡的集群軟件。LVS運行在一對有相似配置的計算機上:一個作為活動LVS Router(Active LVS Router),一個作為備份LVS Router(Backup LVS Router)。活動LVS Router服務有兩個角色:* 均衡負載到真實服務器上。* 檢查真實服務器提供的服務是否正常。備份LVS Router用來監(jiān)控活動的LVS Router,以備活動的LVS Router失敗時由備份LVS Router接管。

2、60;Pulse進程運行在活動LVS Router和備份LVS Router上。在備份LVS Router上,pulse發(fā)送一個心跳(heartbeat)到活動LVS Router的公網(wǎng)接口上以檢查活動LVS Router是否正常。在活動LVS Router上,pulse啟動lvs進程并響應來自于備份LVS Router的心跳。lvs進程調用ipvsadm工具去配置和維護IPVS路由表,并為每一個在真實服務器上的虛擬服務啟動一個nanny進程。每一個nanny進程去檢查真實服務器上的虛擬服務狀態(tài),并將故障情況通知lvs進程。假如一個故障被發(fā)現(xiàn),lvs進程通知ipvsadm在IPVS路由表中將此

3、節(jié)點刪除。如果備份LVS Router未收到來自于活動LVS Router的響應,它將調用send_arp將虛擬IP地址再分配到備份LVS Router的公網(wǎng)接口上。并在公網(wǎng)接口和局域網(wǎng)接口上分別發(fā)送一個命令去關掉活動LVS Router上的lvs進程。同時啟動自己的lvs進程來調度客戶端請求。下面是一個兩層結構的LVS架構: 下面是一個三層結構的LVS架構: 兩層結構的LVS架構適合于Real Server上的數(shù)據(jù)變化不是很頻繁的情況,如果Real Server上的數(shù)據(jù)變化很頻繁應該考慮使用三層結構的LVS架構,將數(shù)據(jù)放到一個共享文件系統(tǒng)(GFS)上供所有的Real Se

4、rver同時讀寫。你可以使用VS/NAT、VS/TUN和VS/DR來實現(xiàn)IP負載均衡:* 使用VS/NAT方法:客戶通過Virtual IP Address(虛擬服務的IP地址)訪問網(wǎng)絡服務時,請求報文到達調度器,調度器根據(jù)連接調度算法從一組真實服務器中選出一臺服務器,將報文的目標地址Virtual IP Address改寫成選定服務器的地址,報文的目標端口改寫成選定服務器的相應端口,最后將修改后的報文發(fā)送給選出的服務器。同時,調度器在連接Hash表中記錄這個連接,當這個連接的下一個報文到達時,從連接Hash表中可以得到原選定服務器的地址和端口,進行同樣的改寫操作,并將報文傳給原選定的服務器。

5、當來自真實服務器的響應報文經(jīng)過調度器時,調度器將報文的源地址和源端口改為Virtual IP Address和相應的端口,再把報文發(fā)給用戶。當使用VS/NAT方法時,如果有大量的響應數(shù)據(jù)經(jīng)過調度器,調度器將成為整個集群的瓶頸。 * 使用VS/TUN方法:VS/TUN的連接調度和管理與VS/NAT中的一樣,只是它的報文轉發(fā)方法不同。調度器根據(jù)各個服務器的負載情況,動態(tài)地選擇一臺服務器,將請求報文封裝在另一個IP報文中,再將封裝后的IP報文轉發(fā)給選出的服務器;服務器收到報文后,先將報文解封獲得原來目標地址為VIP的報文,服務器發(fā)現(xiàn)VIP地址被配置在本地的IP隧道設備上,所以就處理這個請求

6、,然后根據(jù)路由表將響應報文直接返回給客戶。 * 使用VS/DR方法:調度器和服務器組都必須在物理上有一個網(wǎng)卡通過不分斷的局域網(wǎng)相連,如通過交換機或者高速的HUB相連。VIP地址為調度器和服務器組共享,調度器配置的VIP地址是對外可見的,用于接收虛擬服務的請求報文;所有的服務器把VIP地址配置在各自的Non-ARP網(wǎng)絡設備上,它對外面是不可見的,只是用于處理目標地址為VIP的網(wǎng)絡請求。在VS/DR中,調度器根據(jù)各個服務器的負載情況,動態(tài)地選擇一臺服務器,不修改也不封裝IP報文,而是將數(shù)據(jù)幀的MAC地址改為選出服務器的MAC地址,再將修改后的數(shù)據(jù)幀在與服務器組的局域網(wǎng)上發(fā)送。因為數(shù)據(jù)幀的

7、MAC地址是選出的服務器,所以服務器肯定可以收到這個數(shù)據(jù)幀,從中可以獲得該IP報文。當服務器發(fā)現(xiàn)報文的目標地址VIP是在本地的網(wǎng)絡設備上,服務器處理這個報文,然后根據(jù)路由表將響應報文直接返回給客戶。二、本實驗拓撲圖 在實際環(huán)境中可修改00、0、1為真IP。三、LVS在RedHat 5上的安裝1、需要的安裝包:操作系統(tǒng):RedHat 5LVS安裝包:php-common-5.1.6-5.el5.i386.rpmphp-cli-5.1.6-5.el5.i386.rpmphp-5.1.6-5.el5.i386.rpmipvs

8、adm-1.24-8.1-i386.rpmpiranha-0.8.4-7.el5.i386.rpm如果系統(tǒng)中沒有安裝Apache還需要Apache的安裝包。 2、在Active LVS Router上安裝PHPShell # rpm -ivh php-common-5.1.6-5.el5.i386.rpmShell # rpm -ivh php-cli-5.1.6-5.el5.i386.rpmShell # rpm -ivh php-5.1.6-5.el5.i386.rpmShell # vi /etc/httpd/conf/httpd.conf查找AddType applicati

9、on/x-compress .ZAddType application/x-gzip .gz .tgz在其下加入:AddType application/x-tar .tgzAddType application/x-httpd-php .phpAddType image/x-icon .ico修改DirectoryIndex 行,添加index.php修改為DirectoryIndex index.php index.html index.html.var# vi /var/www/html/test.php添加以下行:/php標記(用<代替)?php   

10、;    phpinfo();?wq保存退出。Shell # /etc/init.d/httpd restart  /重新啟動Apache打開瀏覽器進行測試,輸入http:/localhost/test.php,如果能夠成功顯示PHP變量則說明PHP安裝成功。 3、在Active LVS Router上安裝LVS所需要的包Shell # rpm -ivh ipvsadm-1.24-8.1-i386.rpmShell # rpm -ivh piranha-0.8.4-7.el5.i386.rpm 4、在Active

11、LVS Router上配置VIP虛擬IP和主機路由安裝IPVS后,就可以配置LVS集群了,首先在Director Server上綁定一個虛擬IP(也叫VIP),此IP用于對外提供服務,執(zhí)行如下命令:Shell #ifconfig eth0:0 00 broadcast 00 netmask 55 up此處在eth0設備上綁定了一個虛擬設備eth0:0,同時設置了一個虛擬IP是00,也就是上面我們規(guī)劃的IP地址,然后指定廣播地址也為00,需要特別注意的是,這里的子網(wǎng)掩碼為255.25

12、5.255.255。然后給設備eth0:0指定一條路由,執(zhí)行如下指令:Shell #route add -host 00 dev eth0:0 5、在Active LVS Router上打開數(shù)據(jù)轉發(fā)Shell # vi /etc/sysctl.conf找到下面行:net.ipv4.ip_forward = 0將0 改成1,net.ipv4.ip_forward = 1執(zhí)行如下命令來應用:sysctl -p聲明服務,添加服務器# ipvsadm -A -t  01:80 -s rr# ipvsadm -a -t 192.168.1.

13、101:80 -r 00 -g# ipvsadm -a -t 01:80 -r 01 g保存Service ipvsadm save6、在Backup LVS Router上重復2、3、4、5步。 6、在Active LVS Router上初始化piranha的密碼Shell # piranha-passwd輸入兩遍密碼即可。在Active LVS Router上啟動需要的服務Shell # /etc/init.d/piranha-gui start在Active LVS Router上配置LVS (兩種方法實現(xiàn)pir

14、anha的配置)一:通過編譯文件來進行piranha的配置Piranha安裝完畢后,會產生/etc/sysconfig/ha/lvs.cf文件,默認此文件是空的,可以通過Piranha提供的web界面配置此文件,也可以直接手動編輯此文件,編輯好的lvs.cf文件內容類似如下,注意,“#”號后面的內容為注釋。rootlocalhost # more /etc/sysconfig/ha/lvs.cfserial_no = 18              #序號。prim

15、ary = 6     #指定主Director Server的真實IP地址,是相對與有備用的Director Server而言的,也就是給Director Server做HA Cluster。service = lvs               #指定雙機的服務名。backup_active = 0        #是否激活備用D

16、irector Server?!?”表示不激活,“1”表示激活。backup =              #這里指定備用Director Server的真實IP地址,如果沒有備用Director Server,可以用“”代替。heartbeat = 0             #是否開啟心跳,1表示開啟,0表示不開啟。heartbeat_

17、port = 539      #指定心跳的UDP通信端口。keepalive = 5               #心跳間隔時間,單位是秒。deadtime = 10                #如果主Director Server在deadtime(秒

18、)后沒有響應,那么備份DirectorServer就會接管主Director Server的服務。network = direct            #指定LVS的工作模式,direct表示DR模式,nat表示NAT模式,tunnel表示TUNL模式。debug_level = NONE          #定義debug調試信息級別。virtual    

19、60;  #指定虛擬服務的名稱。active = 1        #是否激活此服務。address = 00 eth0:0  #虛擬服務綁定的虛擬IP以及網(wǎng)絡設備名。port = 80                   #虛擬服務的端口。send = "GET / HTTP/1.0rnrn&

20、quot;  #給real server發(fā)送的驗證字符串。expect = "HTTP"             #服務器正常運行時應該返回的文本應答信息,用來判斷real server是否工作正常。use_regex = 0               # expect選項中是否使用正則表達式,0表示不使用

21、,1表示使用。load_monitor = none         #LVS中的Director Server能夠使用 rup 或 ruptime 來監(jiān)視各個real server的負載狀態(tài)。該選項有3個可選值,rup、ruptime和none,如果選擇rup,每個real server就必須運行rstatd服務。如果選擇了ruptime,每個real server就必須運行 rwhod 服務。scheduler = rr       

22、0;      #指定LVS的調度算法。protocol = tcp              #虛擬服務使用的協(xié)議類型。timeout = 6                 #real server失效后從lvs路由列表中移除失效real server所必

23、須經(jīng)過的時間,以秒為單位。reentry = 15                #某個real server被移除后,重新加入lvs路由列表中所必須經(jīng)過的時間,以秒為單位。quiesce_server = 0          #如果此選項為1.那么當某個新的節(jié)點加入集群時,最少連接數(shù)會被重設為零,因此LVS會發(fā)送大量請求到此服務節(jié)點,造成新的節(jié)點服務阻塞

24、,建議設置為0。server RS1                 #指定real server服務名。address = 32    #指定real server的IP地址。active = 1                

25、60; #是否激活此real server服務。weight = 1                   #指定此real server的權值,是個整數(shù)值,權值是相對于所有real server節(jié)點而言的,權值高的real server處理負載的性能相對較強。server RS2 address = 44active = 1weight = 1編輯完成,然后啟動pulse服務,即啟動lvs服務

26、rootlocalhost #service pulse start同理,此種方式下也要啟用系統(tǒng)的包轉發(fā)功能:rootlocalhost #echo "1" >/proc/sys/net/ipv4/ip_forward到此為止,Piranha工具方式配置Director Server完畢。二:圖形界面配置piranha首先在瀏覽器中輸入http:/localhost:3636打開piranha,輸入用戶名:piranha,密碼:上面設置的密碼。 登錄后將看到監(jiān)視屏幕。  配置Global Settings(是對Active LVS Rou

27、ter的配置),點擊Direct Routing,然后輸入公網(wǎng)IP,和局域網(wǎng)IP。點擊ACCEPT按鈕保存設置。  配置Redundancy(是對Backup LVS Router的配置),輸入公網(wǎng)IP,和局域網(wǎng)IP。點擊ACCEPT按鈕保存設置。  點擊ADD按鈕添加一個服務。  按下面配置添加的服務。配置完成后不要忘記點擊ACCEPT按鈕保存設置。  點擊REAL SERVER連接,配置Real Server。 點擊ADD按鈕添加一個節(jié)點,點擊EDIT按鈕編輯節(jié)點,點擊(DE)ACTIVATE按鈕激活

28、節(jié)點。點擊MONITORING SCRIPTS連接修改監(jiān)控設置,在此保持默認。 點擊VIRTUAL SERVERS連接,然后點擊(DE)ACTIVATE按鈕激活上面設置的服務。 7、在Active LVS Router上啟動pulse進程Shell # /etc/init.d/pulse startShell # chkconfig -level 2345 piranha-gui onShell # chkconfig -level 2345 pulse on拷貝配置文件到Backup LVS Router。Shell # scp /etc/sysconfig/ha/lvs.cfg root

溫馨提示

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

評論

0/150

提交評論