日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LVS+keepalived负载均衡

發(fā)布時間:2025/5/22 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS+keepalived负载均衡 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景:?
??????? 隨著你的網(wǎng)站業(yè)務量的增長你網(wǎng)站的服務器壓力越來越大?需要負載均衡方案!商業(yè)的硬件如F5又太貴,你們又是創(chuàng)業(yè)型互聯(lián)公司如何有效節(jié)約成本,節(jié)省不必要的浪費?同時實現(xiàn)商業(yè)硬件一樣的高性能高可用的功能?有什么好的負載均衡可伸張可擴展的方案嗎?答案是肯定的!有!我們利用 LVS+Keepalived基于完整開源軟件的架構可以為你提供一個負載均衡及高可用的服務器。?

LVS+Keepalived 介紹?
LVS?
??????? LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集群系統(tǒng)。本項目在1998年5月由章文嵩博士成立,是中國國內(nèi)最早出現(xiàn)的自由軟件項目之一.目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);?
八種調(diào)度算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。?

Keepalvied?
??????? Keepalived在這里主要用作RealServer的健康狀態(tài)檢查以及LoadBalance主機和BackUP主機之間failover的實現(xiàn)?
二. 網(wǎng)站負載均衡構架圖?


IP信息列表:?
名稱??????????????????? IP?
LVS-DR-Master??????? 61.164.122.6????????
LVS-DR-BACKUP??????? 61.164.122.7????????
LVS-DR-VIP?????????? 61.164.122.8????????
WEB1-Realserver????? 61.164.122.9????????
WEB2-Realserver????? 61.164.122.10????????
GateWay????????????? 61.164.122.1??
三. 安裝LVS和Keepalvied軟件包?
1. 下載相關軟件包?

Java代碼??
  • #mkdir?/usr/local/src/lvs??
  • #cd?/usr/local/src/lvs??
  • #wget?http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz??
  • #wget?http://www.keepalived.org/software/keepalived-1.1.15.tar.gz??

  • 2.安裝LVS和Keepalived?

    Java代碼??
  • #lsmod?|grep?ip_vs??
  • #uname?-r??
  • 2.6.18-53.el5PAE??
  • #ln?-s?/usr/src/kernels/2.6.18-53.el5PAE-i686/??/usr/src/linux??
  • ??
  • #tar?zxvf?ipvsadm-1.24.tar.gz??
  • #cd?ipvsadm-1.24??
  • #make?&&?make?install??
  • #find?/?-name?ipvsadm??#?查看ipvsadm的位置??
  • ??
  • ?#tar?zxvf?keepalived-1.1.15.tar.gz??
  • #cd?keepalived-1.1.15??
  • #./configure??&&?make?&&?make?install??
  • #find?/?-name?keepalived??#?查看keepalived位置??????????????????
  • ??
  • ?#cp?/usr/local/etc/rc.d/init.d/keepalived?/etc/rc.d/init.d/??
  • #cp?/usr/local/etc/sysconfig/keepalived?/etc/sysconfig/??
  • #mkdir?/etc/keepalived??
  • #cp?/usr/local/etc/keepalived/keepalived.conf?/etc/keepalived/??
  • #cp?/usr/local/sbin/keepalived?/usr/sbin/??
  • #service?keepalived?start|stop?????#做成系統(tǒng)啟動服務方便管理.??

  • 四. 配置LVS實現(xiàn)負載均衡?
    ? 1. LVS-DR,配置LVS腳本實現(xiàn)負載均衡?

    Java代碼??
  • #vi?/usr/local/sbin/lvs-dr.sh??
  • #!/bin/bash??
  • ??#?description:?start?LVS?of?DirectorServer??
  • ??#Written?by?:NetSeek?http://www.linuxtone.org??
  • ????
  • ??GW=61.164.122.1??
  • ??#?website?director?vip.??
  • ??SNS_VIP=61.164.122.8??
  • ??SNS_RIP1=61.164.122.9??
  • ??SNS_RIP2=61.164.122.10??
  • ??
  • ??./etc/rc.d/init.d/functions??
  • ??
  • ??logger?$0?called?with?$1??
  • ??
  • ??case?"$1"?in??
  • ??
  • ??start)??
  • ?????#?set?squid?vip??
  • ?????/sbin/ipvsadm?--set?30?5?60??
  • ?????????????/sbin/ifconfig?eth0:0?$SNS_VIP?broadcast?$SNS_VIP?netmask?255.255.255.255??
  • ??broadcast?$SNS_VIP?up??
  • ?????/sbin/route?add?-host?$SNS_VIP?dev?eth0:0??
  • ?????/sbin/ipvsadm?-A?-t?$SNS_VIP:80?-s?wrr?-p?3??
  • ?????/sbin/ipvsadm?-a?-t?$SNS_VIP:80?-r?$SNS_RIP1:80?-g?-w?1??
  • ?????/sbin/ipvsadm?-a?-t?$SNS_VIP:80?-r?$SNS_RIP2:80?-g?-w?1??
  • ?????touch?/var/lock/subsys/ipvsadm?>/dev/null?2>&1??
  • ??
  • ?;;??
  • ??stop)??
  • ?????/sbin/ipvsadm?-C??
  • ?????/sbin/ipvsadm?-Z??
  • ?????ifconfig?eth0:0?down??
  • ?????ifconfig?eth0:1?down??
  • ?????route?del?$SNS_VIP??
  • ?????route?del?$SS_VIP??
  • ?????rm?-rf?/var/lock/subsys/ipvsadm?>/dev/null?2>&1??
  • ?????echo?"ipvsadm?stoped"??
  • ?????;;??
  • ??
  • ??status)??
  • ??
  • ?????if?[?!?-e?/var/lock/subsys/ipvsadm?];then??
  • ??????????echo?"ipvsadm?stoped"??
  • ??????????exit?1??
  • ?????else??
  • ??????????echo?"ipvsadm?OK"??
  • ?????fi??
  • ?????;;??
  • ??
  • ??*)??
  • ????echo?"Usage:?$0?{start|stop|status}"??
  • ?????exit?1??
  • ??esac??
  • ??exit?0??

  • 2. 配置Realserver腳本.?

    Java代碼??
  • #vi?/usr/local/sbin/realserver.sh??
  • #!/bin/bash??
  • #?description:?Config?realserver?lo?and?apply?noarp???
  • #Written?by?:NetSeek?http://www.linuxtone.org??
  • ??
  • SNS_VIP=61.164.122.8??
  • ???
  • .?/etc/rc.d/init.d/functions??
  • ???
  • case?"$1"?in??
  • start)??
  • ???????ifconfig?lo:0?$SNS_VIP?netmask?255.255.255.255?broadcast?$SNS_VIP??
  • ???????/sbin/route?add?-host?$SNS_VIP?dev?lo:0??
  • ???????echo?"1"?>/proc/sys/net/ipv4/conf/lo/arp_ignore??
  • ???????echo?"2"?>/proc/sys/net/ipv4/conf/lo/arp_announce??
  • ???????echo?"1"?>/proc/sys/net/ipv4/conf/all/arp_ignore??
  • ???????echo?"2"?>/proc/sys/net/ipv4/conf/all/arp_announce??
  • ???????sysctl?-p?>/dev/null?2>&1??
  • ???????echo?"RealServer?Start?OK"??
  • ???
  • ???????;;??
  • stop)??
  • ???????ifconfig?lo:0?down??
  • ???????route?del?$SNS_VIP?>/dev/null?2>&1??
  • ???????echo?"0"?>/proc/sys/net/ipv4/conf/lo/arp_ignore??
  • ???????echo?"0"?>/proc/sys/net/ipv4/conf/lo/arp_announce??
  • ???????echo?"0"?>/proc/sys/net/ipv4/conf/all/arp_ignore??
  • ???????echo?"0"?>/proc/sys/net/ipv4/conf/all/arp_announce??
  • ???????echo?"RealServer?Stoped"??
  • ???????;;??
  • *)??
  • ???????echo?"Usage:?$0?{start|stop}"??
  • ???????exit?1??
  • esac??
  • ???
  • exit?0??

  • 或者采用secondary ip address方式配置?

    Java代碼??
  • #?vi?/etc/sysctl.conf??
  • ??
  • net.ipv4.conf.lo.arp_ignore?=?1??
  • net.ipv4.conf.lo.arp_announce?=?2??
  • net.ipv4.conf.all.arp_ignore?=?1??
  • net.ipv4.conf.all.arp_announce?=?2??
  • ??
  • #sysctl?–p??
  • #ip?addr?add?61.164.122.8/32?dev?lo??
  • #ip?add?list?查看是否綁定??

  • 3. 啟動lvs-dr腳本和realserver啟本,在DR上可以查看LVS當前狀態(tài):?

    Java代碼??
  • #watch?ipvsadm?–ln??


  • 五.利用Keepalvied實現(xiàn)負載均衡和和高可用性?
    ? 1.配置在主負載均衡服務器上配置keepalived.conf?

    Java代碼??
  • #vi?/etc/keepalived/keepalived.conf??
  • ?

    Java代碼??
  • !?Configuration?File?for?keepalived??
  • ??
  • global_defs?{??
  • ???notification_email?{??
  • ?????????cnseek@gmail.com??
  • ???}??
  • ???notification_email_from?sns-lvs@gmail.com??
  • ???smtp_server?127.0.0.1??
  • ??#?smtp_connect_timeout?30??
  • ???router_id?LVS_DEVEL??
  • }??
  • ??
  • #?20081013?written?by?:netseek??
  • #?VIP1??
  • vrrp_instance?VI_1?{??
  • ????state?MASTER?????????????#備份服務器上將MASTER改為BACKUP?????
  • ????interface?eth0??
  • ????virtual_router_id?51??
  • ????priority?100????#?備份服務上將100改為99??
  • ????advert_int?1??
  • ????authentication?{??
  • ????????auth_type?PASS??
  • ????????auth_pass?1111??
  • ????}??
  • ????virtual_ipaddress?{??
  • ????????61.164.122.8?????
  • ????????#(如果有多個VIP,繼續(xù)換行填寫.)??
  • ????}??
  • }??
  • ??
  • virtual_server?61.164.122.8?80?{??
  • ????delay_loop?6??????????????????#(每隔10秒查詢realserver狀態(tài))??
  • ????lb_algo?wrr??????????????????#(lvs?算法)??
  • ????lb_kind?DR??????????????????#(Direct?Route)??
  • ????persistence_timeout?60????????#(同一IP的連接60秒內(nèi)被分配到同一臺realserver)??
  • ????protocol?TCP????????????????#(用TCP協(xié)議檢查realserver狀態(tài))??
  • ??
  • ????real_server?61.164.122.9?80?{??
  • ????????weight?3???????????????#(權重)??
  • ????????TCP_CHECK?{??
  • ????????connect_timeout?10???????#(10秒無響應超時)??
  • ????????nb_get_retry?3??
  • ????????delay_before_retry?3??
  • ????????connect_port?80??
  • ????????}??
  • ????}??
  • ????real_server?61.164.122.10?80?{??
  • ????????weight?3??
  • ????????TCP_CHECK?{??
  • ????????connect_timeout?10??
  • ????????nb_get_retry?3??
  • ????????delay_before_retry?3??
  • ????????connect_port?80??
  • ????????}??
  • ?????}??
  • }??

  • 2. BACKUP服務器同上配置,先安裝lvs再按裝keepalived,仍后配置/etc/keepalived/keepalived.conf,只需將紅色標示的部分改一下即可.?
    3.?

    Java代碼??
  • vi?/etc/rc.local??
  • #/usr/local/sbin/lvs-dr.sh??將lvs-dr.sh這個腳本注釋掉。步??
  • #/usr/local/sbin/lvs-dr.sh?stop?停止lvs-dr腳本??
  • #/etc/init.d/keepalived?start??啟動keepalived?服務,keepalived就能利用??
  • keepalived.conf 配置文件,實現(xiàn)負載均衡和高可用.?

    4. 查看lvs服務是否正常?

    Java代碼??
  • #watch?ipvsadm?–ln??

  • IP Virtual Server version 1.2.1 (size=4096)?
    Prot LocalAddressort Scheduler Flags?
    ? -> RemoteAddressort?????????? Forward Weight ActiveConn InActConn?
    TCP? 61.164.122.8:80 wrr persistent 60?
    ? -> 61.164.122.10:80??????????? Route?? 3????? 0????????? 0?
    ? -> 61.164.122.9:80???????????? Route?? 3????? 0????????? 0?

    Java代碼??
  • #tail?–f?/var/log/message??
  • ? 監(jiān)聽日志,查看狀態(tài),測試LVS負載均衡及高可用性是否有效。?

    5.停Master服務器的keepalived服務,查看BAKCUP服務器是否能正常接管服務。?
    四.相關參考?
    ? 1.LVS 基礎知識匯總?
    LVS的算法介紹???????????????http://www.linuxtone.org/viewthread.php?tid=69?
    學習LVS的三種轉(zhuǎn)發(fā)模式???????http://www.linuxtone.org/viewthread.php?tid=77?
    LVS中的IP負載均衡技術???????http://www.linuxtone.org/viewthread.php?tid=68?
    更多的請到http://www.linuxtone.org?負載均衡版查看?

    Keepalived 相關參考資料。?
    ???http://www.keepalived.org/documentation.html?

    轉(zhuǎn)載于:https://www.cnblogs.com/knitmesh/p/5439632.html

    總結

    以上是生活随笔為你收集整理的LVS+keepalived负载均衡的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。