自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

突破LVS瓶頸,LVS Cluster部署(OSPF + LVS)

開發(fā) 前端
LVS大家應該很熟悉,這款優(yōu)秀的開源軟件基本成為了IP負載均衡的代言詞。但在實際的生產(chǎn)環(huán)境中會發(fā)現(xiàn),LVS調(diào)度在大壓力下很容易就產(chǎn)生瓶頸,其中瓶頸包括ipvs內(nèi)核模塊的限制,CPU軟中斷,網(wǎng)卡性能等,當然這些都是可以調(diào)優(yōu)的,關(guān)于LVS的調(diào)優(yōu),會在這里詳細講 LVS調(diào)優(yōu)攻略 。

前言

LVS大家應該很熟悉,這款優(yōu)秀的開源軟件基本成為了IP負載均衡的代言詞。但在實際的生產(chǎn)環(huán)境中會發(fā)現(xiàn),LVS調(diào)度在大壓力下很容易就產(chǎn)生瓶頸,其中瓶頸包括ipvs內(nèi)核模塊的限制,CPU軟中斷,網(wǎng)卡性能等,當然這些都是可以調(diào)優(yōu)的,關(guān)于LVS的調(diào)優(yōu),會在這里詳細講LVS調(diào)優(yōu)攻略?;氐街黝},那當無法避免的單臺LVS調(diào)度機出現(xiàn)了性能瓶頸,有什么辦法呢?在本文就來介紹如何橫向擴展LVS調(diào)度機

架構(gòu)簡圖

Lvs_Cluster_new

如上圖三層設(shè)備的路由表,VIP地址183.60.153.100對應nexthop有三個地址,這三個地址是三臺lvs調(diào)度機的地址。這樣便可達到效果:用戶訪問------>VIP------>三臺LVS調(diào)度機------>分發(fā)到多臺RealServe

架構(gòu)優(yōu)勢

1.LVS調(diào)度機自由伸縮,橫向擴展(最大8臺,受限于三層設(shè)備允許的等價路由數(shù)目)

2.LVS調(diào)度資源全利用,All Active。不存在備份機

部署方法

1.硬件資源準備

三層設(shè)備: 本文用的是h3c 5800三層交換機

LVS調(diào)度機三臺: 192.168.0.2 192.168.2.2 192.168.3.2

Realserver三臺:  183.60.153.101 183.60.153.102 183.60.153.103

2.三層設(shè)備OSPF配置

  1. #查找與三層交換與lvs調(diào)度相連的端口,在本文端口分別為 g1/0/2 g1/0/3 g1/0/6 
  2.  
  3. #把g1/0/2改為三層端口,并配上IP  
  4.  
  5. interface GigabitEthernet1/0/2 
  6. port link-mode route  
  7. ip address 192.168.0.1 255.255.255.0 
  8.  
  9. #配置ospf的參數(shù), timer hello是發(fā)送hello包的間隔,timer dead是存活的死亡時間。默認是10,40。  
  10.  
  11. #hello包是ospf里面維持鄰居關(guān)系的報文,這里配置是每秒發(fā)送一個,當?shù)?/span>4秒還沒有收到這個報文,就會認為這個鄰居已經(jīng)丟失,需要修改路由  
  12. ospf timer hello 1 
  13. ospf timer dead 4 
  14. ospf dr-priority 100 
  15.  
  16. #如此類推,把g1/0/3 g1/0/6都配置上  
  17.  
  18. interface GigabitEthernet1/0/3 
  19. port link-mode route  
  20. ip address 192.168.3.1 255.255.255.0 
  21.  
  22. ospf timer hello 1 
  23. ospf timer dead 4 
  24. ospf dr-priority 99 
  25.  
  26.  
  27. interface GigabitEthernet1/0/6 
  28. port link-mode route  
  29. ip address 192.168.2.1 255.255.255.0 
  30.  
  31. ospf timer hello 1 
  32. ospf timer dead 4 
  33. ospf dr-priority 98 
  34.  
  35.  
  36. #配置ospf  
  37. ospf 1 
  38. area 0.0.0.0 
  39. network 192.168.0.0 0.0.0.255 
  40. network 192.168.3.0 0.0.0.255 
  41. network 192.168.2.0 0.0.0.255 

3.LVS調(diào)度機的OSPF配置

 

a.安裝軟路由軟件quagga

  1. yum –y install quagga 

b.配置zerba.conf

vim /etc/quagga/zebra.conf

  1. hostname lvs-route-1 
  2. password xxxxxx  
  3. enable password xxxxxx  
  4.  
  5. log file /var/log/zebra.log  
  6. service password-encryption  
  7.  

c.配置ospfd.conf

vim /etc/quagga/ospfd.conf

  1. #ospf的配置類似于上面三層設(shè)備,注意需要把vip聲明出去(183.60.153.100)  
  2.  
  3. log file /var/log/ospf.log  
  4. log stdout  
  5. log syslog  
  6. interface eth0  
  7. ip ospf hello-interval 1 
  8. ip ospf dead-interval 4 
  9. router ospf  
  10. ospf router-id 192.168.0.1 
  11. log-adjacency-changes  
  12. auto-cost reference-bandwidth 1000 
  13. network 183.60.153.100/32 area 0.0.0.0 
  14. network 192.168.0.0/24 area 0.0.0.0 
  15.  

d.開啟IP轉(zhuǎn)發(fā)

  1. sed –i ‘/net.ipv4.ip_forward/d’ /etc/sysctl.conf  
  2.  
  3. echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl –p 

e.開啟服務(wù)

  1. /etc/init.d/zebra start   
  2.  
  3. /etc/init.d/ospfd start   
  4.  
  5. chkconfig zebra on   
  6.  
  7. chkconfig ospfd on 

#p#

4.LVS keepalived配置

在此架構(gòu)下,LVS只能配置成DR模式。如果要配置成NAT模式,我的想法是,需要參照上面的方式讓LVS調(diào)度機與內(nèi)網(wǎng)三層設(shè)備配置ospf,此方法未驗證,有其他方案請告知。

 

a.修改配置文件 keepalived.conf ,在Cluster架構(gòu)中,所有調(diào)度機用相同的配置文件

vim /etc/keepalived/keepalived.conf

  1. #keepalived的全局配置global_defs {    
  2.    notification_email {  
  3.  
  4.    lxcong@gmail.com  
  5.    }  
  6.    notification_email_from lvs_notice@gmail.com  
  7.    smtp_server 127.0.0.1 
  8.    smtp_connect_timeout 30 
  9.    router_id Ospf_LVS_1  
  10. }  
  11.  
  12. #VRRP實例,在這個架構(gòu)下所有的LVS調(diào)度機都配置成MASTER  
  13.  
  14. vrrp_instance LVS_Cluster{  ##創(chuàng)建實例 實例名為LVS_Cluster  
  15.  
  16.     state MASTER #備份服務(wù)器上將MASTER改為BACKUP     
  17.     interface eth0    ##VIP 捆綁網(wǎng)卡  
  18.     virtual_router_id 100   ##LVS_ID  在同一個網(wǎng)絡(luò)中,LVS_ID是唯一的  
  19.     priority 100    #選舉的優(yōu)先級,優(yōu)先級大的為MASTER  備份服務(wù)上將100改為99 
  20.     advert_int 1  #發(fā)送vrrp的檢查報文的間隔,單位秒  
  21.     authentication {  ##認證信息。可以是PASS或者AH  
  22.         auth_type PASS    
  23.         auth_pass 08856CD8  
  24.     }  
  25.     virtual_ipaddress {  
  26.         183.60.153.100 
  27.     }  
  28. }  
  29.  
  30. #LVS實例,在本文采用的是DR模式,WRR調(diào)度方式。其實在這種架構(gòu)下也只能使用DR模式  
  31.  
  32. virtual_server 183.60.153.100 80 {  
  33.     delay_loop 6 
  34.     lb_algo wrr  
  35.     lb_kind DR  
  36.     persistence_timeout 60 
  37.     protocol TCP   
  38.  
  39. real_server 183.60.153.101 80 {  
  40.     weight 1                                           # 權(quán)重  
  41.     inhibit_on_failure                               # 若此節(jié)點故障,則將權(quán)重設(shè)為零(默認是從列表中移除)  
  42.     TCP_CHECK {  
  43.         connect_timeout 3 
  44.         nb_get_retry 3 
  45.         delay_before_retry 3 
  46.         connect_port 80 
  47.     }  
  48.  
  49. }  
  50.  
  51. real_server 183.60.153.102 80 {  
  52.     weight 1                                           # 權(quán)重  
  53.     inhibit_on_failure                               # 若此節(jié)點故障,則將權(quán)重設(shè)為零(默認是從列表中移除)  
  54.     TCP_CHECK {  
  55.         connect_timeout 3 
  56.         nb_get_retry 3 
  57.         delay_before_retry 3 
  58.         connect_port 80 
  59.     }  
  60.  
  61. }  
  62.  
  63. real_server 183.60.153.103 80 {  
  64.     weight 1                                           # 權(quán)重  
  65.     inhibit_on_failure                               # 若此節(jié)點故障,則將權(quán)重設(shè)為零(默認是從列表中移除)  
  66.     TCP_CHECK {  
  67.         connect_timeout 3 
  68.         nb_get_retry 3 
  69.         delay_before_retry 3 
  70.         connect_port 80 
  71.     }  
  72.  
  73. }  
  74.  
  75. }  

b.啟動keepalived

  1. /etc/init.d/keepalived start  
  2. chkconfig keepalived on 

5.realserver配置

 

a.添加啟動服務(wù)腳本/etc/init.d/lvs_realserver

請自行按需要修改腳本中SNS_VIP變量

  1. #!/bin/sh  
  2. ### BEGIN INIT INFO  
  3. # Provides: lvs_realserver  
  4. # Default-Start:  3 4 5 
  5. # Default-Stop: 0 1 6 
  6. # Short-Description: LVS real_server service scripts  
  7. # Description: LVS real_server start and stop controller  
  8. ### END INIT INFO  
  9. #  Copyright 2013 kisops.com  
  10. #  
  11. #  chkconfig: - 20 80 
  12. #  
  13. #  Author:  k_ops_yw@ijinshan.com   
  14.  
  15. #有多個虛擬IP,以空格分隔  
  16. SNS_VIP="183.60.153.100" 
  17. . /etc/rc.d/init.d/functions  
  18. if [[ -z "$SNS_VIP"  ]];then  
  19.     echo 'Please set vips in '$0' with SNS_VIP!' 
  20. fi   
  21.  
  22. start(){  
  23. num=0 
  24. for loop in $SNS_VIP  
  25. do 
  26.     /sbin/ifconfig lo:$num $loop netmask 255.255.255.255 broadcast $loop  
  27.     /sbin/route add -host $loop dev lo:$num  
  28.     ((num++))  
  29. done  
  30. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
  31. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce  
  32. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  
  33. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  
  34. sysctl -e -p >/dev/null 2>&1 
  35. }   
  36.  
  37. stop(){  
  38. num=0 
  39. for loop in $WEB_VIP  
  40. do 
  41.     /sbin/ifconfig lo:$num down  
  42.     /sbin/route del -host $loop >/dev/null 2>&1 
  43.     ((num++))  
  44. done  
  45. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
  46. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
  47. echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
  48. echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
  49. sysctl -e -p >/dev/null 2>&1 
  50. }   
  51.  
  52. case "$1" in  
  53.     start)  
  54.         start  
  55.         echo "RealServer Start OK" 
  56.         ;;  
  57.     stop)  
  58.         stop  
  59.         echo "RealServer Stoped" 
  60.         ;;  
  61.     restart)  
  62.         stop  
  63.         start  
  64.         ;;  
  65.     *)  
  66.          echo "Usage: $0 {start|stop|restart}" 
  67.          exit 1 
  68. esac  
  69. exit 0 

b.啟動服務(wù)

  1. service lvs_realserver start  
  2. chkconfig lvs_realserver on 

總結(jié)

到這里,LVS Cluster架構(gòu)已部署完了,如果各位有其他更好的LVS擴展方式請留意或者聯(lián)系我,互相交流 QQ:83766787。另外以前做了一個LVS的管理平臺,但是一直都做得不好,也希望有相關(guān)平臺開發(fā)經(jīng)驗的能聯(lián)系我,交流交流、

QQ截圖20130710233858

原文鏈接:http://my.oschina.net/lxcong/blog/143904

 

責任編輯:林師授 來源: OSCHINA
相關(guān)推薦

2012-02-13 23:29:52

lvslinux集群

2012-05-07 10:20:12

LVS集群

2014-05-30 13:35:21

MySQL Clust架構(gòu)

2014-08-01 12:57:31

linuxheartbeatlvs

2010-04-27 13:12:04

負載均衡算法

2011-05-18 09:47:17

LVSDR模式

2019-08-15 14:11:31

LVS負載均衡調(diào)度算法

2015-03-18 14:56:58

負載均衡服務(wù)器集群

2010-04-22 10:59:45

Lvs負載均衡

2010-12-17 10:45:13

ldirectordLVS負載平衡

2023-03-08 09:27:51

LVSsession

2012-02-15 22:51:29

lvslinuxheartbeat

2010-04-27 10:19:45

lvs負載均衡

2010-05-17 10:04:45

2010-04-27 11:12:01

HTTP負載均衡

2010-04-22 11:19:11

LVS負載均衡

2010-04-22 14:19:21

LVS負載均衡集群

2010-04-25 17:05:48

lvs負載均衡

2010-04-22 11:47:58

集群負載均衡

2014-07-30 17:10:38

LVS集群負載均衡
點贊
收藏

51CTO技術(shù)棧公眾號