Centos 5.7 上LVS+piranha負載均衡及雙機熱備配置方式

參考:http://www.ibm.com/developerworks/cn/linux/cluster/l-lvsinst/index.html

http://wenku.baidu.com/view/7dd134630b1c59eef8c7b4f8.html

 

安裝包下載:

LVS:

在kernel裏已經包含了這個安裝包,我們可以驗證:

http://kb.linuxvirtualserver.org/wiki/Compiling_ipvsadm_on_different_Linux_distributions

Red Hat Enterprise Linux 3 (or CentOS 3) kernel has already included the IPVS patch, so that we do not need to build the kernel image with IPVS support ourselves.

[root@penguin root]# modprobe ip_vs
[root@penguin root]# cat /proc/net/ip_vs
IP Virtual Server version 1.0.8 (size=65536)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

 

ipvsadm 下載:(沒有用官網下載的src的版本,這個需要有內核代碼還需要自己再編譯,所以就沒用)

(http://rpm.pbone.net/index.php3)

Not enough search parameters. I'm using defaults.
You have chosen search in content of rpms.
Display 1 - 2 hits of 2. Search took 0.01 seconds.
1
1

 

 

Search results for ipvsadm :
CentOS 5  ftp.centos.org/5.7/os/x86_64/CentOS/ipvsadm-1.24-13.el5.x86_64.rpm
CentOS 5  ftp.centos.org/5.7/os/i386/CentOS/ipvsadm-1.24-13.el5.i386.rpm
1
1

 

 

 

 

piranha 下載:

http://rpm.pbone.net/index.php3?stat=3&search=piranha&srodzaj=3&dist[]=55

Search for rpm name in category: CentOS 5
Display 1 - 2 hits of 2. Search took 0.02 seconds.

1
1

 

 


Search results for piranha :

CentOS 5 

ftp.centos.org/5.7/os/x86_64/CentOS/piranha-0.8.4-22.el5.x86_64.rpm

CentOS 5 

ftp.centos.org/5.7/os/i386/CentOS/piranha-0.8.4-22.el5.i386.rpm

 

 

 

http://bbs.linuxtone.org/thread-1096-1-1.html

 

LVS + piranha 之NAT配置

OS  :    centos4.6
VIP :       192.168.18.240
LoadBalance:  eth0: 192.168.18.241
             eth1: 10.10.10.241            
BackUp:      eth0:   192.168.18.242
             eth1:   10.10.10.242

Real Server1:  10.10.10.243
RealServer2:    10.10.10.244
Gateway    :   10.10.10.241(10.10.10.242)

1.  安裝piranha和ipvsadm
2.  設置piranha密碼
piranha-passwd
3.  啓動piranha-gui
service piranha-gui start
4.  配置LVS
http://192.168.18.241:3636

具體配置過程不詳述
附上配置文件
vim /etc/sysconfig/ha/lvs.cf
  1. serial_no = 14
  2. primary = 192.168.18.241
  3. service = lvs
  4. backup_active = 1
  5. backup = 192.168.18.242
  6. heartbeat = 1
  7. heartbeat_port = 539
  8. keepalive = 6
  9. deadtime = 18
  10. network = nat
  11. nat_router = 10.10.10.241 eth1
  12. nat_nmask = 255.255.255.0
  13. debug_level = NONE
  14. monitor_links = 0
  15. virtual webserv {
  16.      active = 1
  17.      address = 192.168.18.240 eth0:1
  18.      vip_nmask = 255.255.255.0
  19.      port = 80
  20.      send = "GET / HTTP/1.0\r\n\r\n"
  21.      expect = "HTTP"
  22.      use_regex = 0
  23.      load_monitor = none
  24.      scheduler = wlc
  25.      protocol = tcp
  26.      timeout = 6
  27.      reentry = 15
  28.      quiesce_server = 0
  29.      server node1 {
  30.          address = 10.10.10.243
  31.          active = 1
  32.          weight = 50
  33.      }
  34.      server node2 {
  35.          address = 10.10.10.244
  36.          active = 1
  37.          weight = 50
  38.      }
  39. }
複製代碼
5.  將配置文件copy至Backup相應目錄下
6.  分別在LB和BackUp上啓用數據轉發
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl  -p

7.  啓動RealServer上httpd服務
8.  啓動LB和Backup上pulse

#service pulse start
9.  測試

 

 

LVS + piranha  之DR配置

OS  :  centos4.6
VIP :       192.168.18.200
LoadBalance:  192.168.18.241
BackUp:      192.168.18.242
Real Server1:  192.168.18.243
RealServer2:  192.168.18.244
Gateway    :   192.168.18.1

1.  安裝piranha和ipvsadm
2.  設置piranha密碼
piranha-passwd
3.  啓動piranha-gui
service piranha-gui start
4.  配置LVS
http://192.168.18.241:3636

具體配置過程不詳述
附上配置文件
vim /etc/sysconfig/ha/lvs.cf

  1. serial_no = 16
  2. primary = 192.168.18.241
  3. service = lvs
  4. backup_active = 1
  5. backup = 192.168.18.242
  6. heartbeat = 1
  7. heartbeat_port = 539
  8. keepalive = 6
  9. deadtime = 18
  10. network = direct
  11. debug_level = NONE
  12. monitor_links = 0
  13. virtual webserv {
  14.      active = 1
  15.      address = 192.168.18.240 eth0:1
  16.      vip_nmask = 255.255.255.0
  17.      port = 80
  18.      send = "GET / HTTP/1.0\r\n\r\n"
  19.      expect = "HTTP"
  20.      use_regex = 0
  21.      load_monitor = none
  22.      scheduler = wrr
  23.      protocol = tcp
  24.      timeout = 6
  25.      reentry = 15
  26.      quiesce_server = 0
  27.      server node1 {
  28.          address = 192.168.18.243
  29.          active = 1
  30.          weight = 50
  31.      }
  32.      server node2 {
  33.          address = 192.168.18.244
  34.          active = 1
  35.          weight = 50
  36.      }
  37. }
複製代碼

5.  將配置文件copy至Backup相應目錄下
6.  分別在LB和BackUp上啓用數據轉發
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl  -p

7.  配置RealServer

  1. #ifconfig lo:0 192.168.18.240 broadcast 192.168.18.240 netmask 255.255.255.255 up
  2. #route add -host 192.168.18.240 dev lo:0
複製代碼

關閉ARP廣播響應

  1. #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  2. #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  3. #echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
  4. #echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
複製代碼

8.  啓動RealServer上httpd服務
9.  啓動LB和Backup上pulse

  1. #service pulse start
複製代碼

10.  測試

來源: http://www.askwan.com/read.php?104

 

 

 

LVS + piranha 之Tunnel配置

OS  :    centos4.6
VIP :       192.168.18.200
LoadBalance:  192.168.18.241
BackUp:      192.168.18.242
Real Server1:  192.168.18.243
RealServer2:    192.168.18.244

1.  安裝piranha和ipvsadm
2.  設置piranha密碼
piranha-passwd
3.  啓動piranha-gui
service piranha-gui start
4.  配置LVS
http://192.168.18.241:3636

具體配置過程不詳述
附上配置文件
vim /etc/sysconfig/ha/lvs.cf
  1. serial_no = 14
  2. primary = 192.168.18.241
  3. service = lvs
  4. backup_active = 1
  5. backup = 192.168.18.242
  6. heartbeat = 1
  7. heartbeat_port = 539
  8. keepalive = 6
  9. deadtime = 18
  10. network = tunnel
  11. debug_level = NONE
  12. monitor_links = 0
  13. virtual webserv {
  14.      active = 1
  15.      address = 192.168.18.240 eth0:1
  16.      vip_nmask = 255.255.255.0
  17.      port = 80
  18.      send = "GET / HTTP/1.0\r\n\r\n"
  19.      expect = "HTTP"
  20.      use_regex = 0
  21.      load_monitor = none
  22.      scheduler = wrr
  23.      protocol = tcp
  24.      timeout = 6
  25.      reentry = 15
  26.      quiesce_server = 0
  27.      server node1 {
  28.          address = 192.168.18.243
  29.          active = 1
  30.          weight = 50
  31.      }
  32.      server node2 {
  33.          address = 192.168.18.244
  34.          active = 1
  35.          weight = 50
  36.      }
  37. }
複製代碼
5.  將配置文件copy至Backup相應目錄下
6.  分別在LB和BackUp上啓用數據轉發
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0
修改爲
net.ipv4.ip_forward = 1
#sysctl  -p

7.  配置RealServer

創建IP Tunnel
  1. # ifconfig tunl0 192.168.18.240 netmask 255.255.255.255 broadcast 192.168.18.240 up
複製代碼
將tunl0加入路由表(routing table)
  1. # route add -host 192.168.18.240 dev tunl0
複製代碼
  1. #echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  2. #echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  3. #echo 1 > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
  4. #echo 2 > /proc/sys/net/ipv4/conf/tunl0/arp_announce
複製代碼
8.  啓動RealServer上httpd服務
9.  啓動LB和Backup上pulse

#service pulse start

10.  測試

 

///////////////////////////////////////////////////////////////////////

http://rfyimcool.blog.51cto.com/1030776/674179

 

NAT模式

      實驗環境:

       1.實驗模擬通過192.168.0.144 向外提供服務

       2.通過director接受和響應用戶的請求,通過director的LVS功能,把用戶的

           請求通過realserver來真正的處理

       3.realserver 提供web處理功能

       4.拓撲圖如下

  image

  一、配置realserver   (兩臺realserver配置相同,以realserver1爲例)   

  1. 配置ip和對應的網關

         1)  ip配置

    image

       2)網關配置

    image

     3) 測試連通性

    image

    image

    2. 安裝配置apache

         1)安裝

   image

        2)添加網頁 (爲了測試兩個realserver上的web提供不同的網頁內容)

             #vim /var/www/html/index.html     添加如下內容     

   image

        realserver2 爲“test for realserver2”

        3) 啓動apache

     image

       4)內部測試

     #elinks 10.0.0.10

     image

     #elinks 10.0.0.11

    image

二、配置 director

      1)配置ip 

         #ifconfig eth0 10.0.0.1    (不在測試,上邊測試過了)

         #ifconfig eth1 192.168.0.144 

      2)打開本機的路由轉發功能

        臨時修改:

   image

       永久修改: #vim /etc/sysctl.conf   , 把net.ipv4.ip_forward = 0 中的 0 改爲 1

   image

     3) 安裝和配置ipvsadm

        安裝:

   image  

        配置:

             1)添加規則 (這裏使用rr算法,下面測試時會測試i其他算法,管理算法的介紹,上篇博客有)

   image

              2)添加realserver

   image

   三、測試  

    1、rr算法測試 (請求的頁面會輪巡的改變)

image

image

壓力測試:

  使用命令: #ab –c 10 –n 5000 http://192.168.0.144/index.html

  響應速度: Requests per second:    1713.12 [#/sec] (mean)      ##每秒1713 次

  image

測試統計

   使用命令:  #watch –n 1 'ipvsadm –L –n'     #兩臺realserver的響應數基本上是1:1

image

2、wlc 算法測試

  1)修改ipvsadm 的使用算法和權重值

image

   2)壓力測試

     響應速度:每秒2000次左右

image

3)測試統計: 比例接近權重值之比3:1

 image

3 nq 算法測試

  1)修改算法

  2)壓力測試     響應速度:1400次左右

image

3)測試統計

image

 

 

 ////////////////////////////////////////////////////////////

 

以下是本人實際配置過程。

要求:網絡中有四臺服務器,一臺是LVS,另外兩臺裏面分別包含http+connection manager服務,最後一臺是openfire+mysql服務器。

下面簡述如何配置LVS,可以對兩臺http+cm的服務器進行負載,http服務和cm服務可以建立成兩個virtual server,只是使用不同端口就可以了。

配置方法是使用LVS的NAT結構進行配置,方法如下:

1,因爲是NAT模式,所以LVS服務器需要兩塊網卡,我使用的是虛擬機,虛擬兩塊網卡。其他幾臺服務器都是真機。幾臺服務器上面全部跑CENTOS5.7操作系統。

2,LVS這臺虛擬機服務器,可以利用vmware虛擬兩塊網卡,兩個網卡的連接方式,一個是bridge的,一個是nat的,這樣就可以把兩個網卡放在不同網段了。

ifconfig 後eth0是172.20.0.43, 255.255.252.0; eth1是192.168.146.133, 255.255.252.0

3,在lvs服務器上安裝ipvsadm,piranha兩個軟件,然後命令行輸入ipvsadm,會打印出版本信息。

4,/etc/init.d/piranha-gui start 開啓piranha配置界面

5,/usr/sbin/piranha-password xxxx 在這裏設置piranha登錄密碼

6,在瀏覽器中http://127.0.0.1:3636 進入piranha登錄界面,用戶名是piranha,密碼就是剛纔設置那個。

7,寫一下網絡結構圖

LVS服務器:eth0: 172.20.0.43

                        eth1: 192.168.146.133

                       VIP: 192.168.146.168(eth1:1)

http+cm-1: eth0: 172.20.0.65

                    gateway:172.20.0.43

http+cm-2: eth0: 172.20.0.62

                    geteway:172.20.0.43

8,開始配置piranha,在GLOBAL SETTINGS頁,primary server public IP: 192.168.146.133

    use network type: nat

    nat router ip: 172.20.0.43

   nat router netmask:255.255.252.0

    nat router device: eth0

9, 在VIRTUAL SERVER頁配置中,添加第一個virtual server.

    name: lvs-http

    application port:80

    protocol: tcp

    virtual ip address: 192.168.146.168

    virtual ip network mask: 255.255.252.0

    device: eth1:1

    scheduling: round robin

    persistence:28800

 

然後添加兩個real server

name: http1

address:172.20.0.65

weight:1

name: http2

address:172.20.0.62

weight:1

 

10, 在VIRTUAL SERVER頁配置中,添加第二個virtual server.

    name: lvs-cm

    application port:5222

    protocol: tcp

    virtual ip address: 192.168.146.168

    virtual ip network mask: 255.255.252.0

    device: eth1:1

    scheduling: round robin

    persistence:1000000000000000000000

 

然後添加兩個real server

name: cm1

address:172.20.0.65

weight:1

name: cm2

address:172.20.0.62

weight:1

 

 

11, 各個頁面都用active點開,看到server都是up的狀態。

12,這部很關鍵,關掉LVS服務器的防火牆,把整個防火牆都disable掉就可以了,不然是沒辦法路由成功的。

13,/etc/init.d/pulse start

14, vi /etc/sysctl.conf, 把net.ipv4.ip_forward=0改爲1

15,這時需要到兩臺real server上配置默認網關,一定要配對,不然路由不到

     route add default gw 172.20.0.43

     route del default gw 172.20.0.1(本來默認網關是這個,所以需要刪掉)

16,這時就可以測試一下了,來到LVS上CONTROL/MONITORING主頁,點擊update information now,看看打印出的狀態是否滿意。

      如果有問題,還可以用ipvsadm -L -n來查看。

17,我在配的時候,就發現按照以上配完以後,系統並不能給我滿意的結果,最後還是我手動敲命令解決的。命令是:

   ipvsadm -A -t 192.168.146.168:80 -s rr  添加一臺虛擬服務器

    ipvsadm -a -t 192.168.146.168:80 -r  172.20.0.65 -m  添加一臺real server

    ipvsadm -a -t 192.168.146.168:80 -r  172.20.0.62 -m  添加一臺real server

ipvsadm -L -n

   ipvsadm -A -t 192.168.146.168:5222 -s rr  添加一臺虛擬服務器

    ipvsadm -a -t 192.168.146.168:5222 -r  172.20.0.65 -m  添加一臺real server

    ipvsadm -a -t 192.168.146.168:5222 -r  172.20.0.62 -m  添加一臺real server

ipvsadm -L -n

這時才完成了兩臺的添加。

18。測試:在clientPC上瀏覽器輸入http://192.168.146.168,結果正常打開兩個real server上某一臺的網頁。

     在clientPC上,啓動spark聊天軟件,輸入用戶名密碼,主機域名就寫ip:192.168.146.168,然後正常登錄聊天。

發佈了96 篇原創文章 · 獲贊 8 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章