设为首页 收藏本站
查看: 1229|回复: 0

[经验分享] LVS(DR)+ldirectord 实现负载平衡----个人觉得这篇文章写得细致极好。所以转载了

[复制链接]

尚未签到

发表于 2015-9-5 11:45:01 | 显示全部楼层 |阅读模式
转载)LVS(DR)+ldirectord 实现负载平衡

我在centos 5.2版本上测试通过
一  环境介绍
试验2台机器上的apache负载平衡,总计使用3台机器。
调度机: 192.168.1.238
vip1:   192.168.1.230
realip: 192.168.1.235
readip: 192.168.1.236
系统: RHEL 5.3
二 安装配置过程
1 安装和配置调度机lvs
                        1  RHEL5 光盘中中已经带了LVS安装软件,直接到光盘的Cluster可以找到
            #  rpm -ivh rpm -ivh ipvsadm-1.24-8.1.i386.rpm
            
            2  检查lvs模块是否已经加载
            lsmod|grep ip_vs
            ip_vs        77313  0
            如果看到上面的说明已经加载成功
            
            3 配置lvs,编辑脚本 lvsdr.sh
            [iyunv@ddmap ~]# cat lvsdr.sh
            #!/bin/bash
            RIP1=192.168.1.235
            RIP2=192.168.1.236
            VIP1=192.168.1.230
            
            /sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
            /sbin/route add -host $VIP1 dev eth0:0
            echo "1" >/proc/sys/net/ipv4/ip_forward
            /sbin/ipvsadm -C
            #set LVS apache
            /sbin/ipvsadm -A -t $VIP1:80 -s rr
            /sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g
            /sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g
            
            4  执行脚本,sh lvsdr.sh 这样调度器的规则已经启用了,使用ipvsadmin -l查看
            [iyunv@ddmap ~]# ipvsadm -l
            IP Virtual Server version 1.2.1 (size=4096)
            Prot LocalAddress:Port Scheduler Flags
            -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
            TCP  192.168.1.230:http rr
            -> 192.168.1.236:http           Route   1      0          0         
            -> 192.168.1.235:http           Route   1      0          0      
            
            
            5  完成后可以讲ipvs的规则保存到/etc/sysconfig/ipvsadm中,可以使用server ipvsadm来启动
            ipvsadm-save >/etc/sysconfig/ipvsadm            
2  安装和配置ldirectord ,作用上面的LVS只负责分发,不负责健康检查,所以,当后面一台机器挂掉,有可能继续分配请求, 使用ldirectord 可以自动将挂掉的机器移除.
                        ldirectord是heartbeat中的一部分,当我们安装了heartbeat就带了ldirectord
            
            1  先配置个可用的安装ldirectord和heartbeat的源
            [iyunv@ddmap ~]# cat /etc/yum.repos.d/ha-clustering.repo
            [server_ha-clustering]
            name=High Availability/Clustering server technologies (CentOS_5)
            #type=rpm-md
            baseurl=http://download.opensuse.org/repositories/server:/ha-clustering/CentOS_5/
            gpgcheck=1
            gpgkey=http://download.opensuse.org/repositories/server:/ha-clustering/CentOS_5/repodata/repomd.xml.key
            enabled=1
            
            2 安装ldirectord
            # yum install ldirectord
            
            3  配置ldirectord
            # cp /usr/share/doc/ldirectord-1.0/ldirectord.cf /etc/ha.d/.
            # vim /etc/ha.d/ldirectord.cf
            
            # Global Directives
            checktimeout=3
            checkinterval=1
            #fallback=127.0.0.1:80
            autoreload=yes
            logfile="/var/log/ldirectord.log"
            #logfile="local0"
            #emailalert="admin@x.y.z"
            #emailalertfreq=3600
            #emailalertstatus=all
            quiescent=no
            
            # Sample for an http virtual service
            virtual=192.168.1.230:80
            real=192.168.1.235:80 gate
            real=192.168.1.236:80 gate
            fallback=127.0.0.1:80 gate
            service=http
            scheduler=rr
            #persistent=600
            #netmask=255.255.255.255
            protocol=tcp
            checktype=negotiate
            checkport=80
            request="index.html"
            #       receive="Test Page"
            #       virtualhost=www.x.y.z
            
            4 启动ldirectord
             service ldirectord start            

3  配置后面2台realserver 235/236

                        1  建立一个执行脚本lvsrl.sh
            #!/bin/bash
            VIP1=192.168.1.230
            
            /sbin/ifconfig lo:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
            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
            
            2 在2台机器上分别执行lvsrl.sh            

三 测试验证
1  后面2台real server分别启动apache,并在index.heml分别写入一些标记,以便识别
2 使用浏览器输入http://192.168.1.230, 按 F5是否页面也来回变化,上面我们选择的轮询方式是rr
3 先不开启ldirectord, 后面的一台机器关闭http或者重启,模拟当机,看是否按F5的时候会被分配到挂的机器上
4 先开启ldirectord,后面一台机器模拟当机,这时候应该不会被分配到当机的机器上
四  网络上一些可以参考和借鉴的文章

  • http://blog.163.com/herod_xiao/blog/static/87188399200991635444342/
  • http://sery.blog.iyunv.com/10037/54645
  • http://zh.linuxvirtualserver.org/book/export/html/95
  • ldirectord参数的详细描述:  http://blog.freebug.org/archives/337.html
  • ipvsadm命令详解:  http://zh.linuxvirtualserver.org/node/5

收集:
ipvsdm命令参考:http://hi.baidu.com/top2top/blog/item/f00beecd47b77b500eb34555.html
LVS用到WINDOWS上:http://sery.blog.iyunv.com/10037/54645
   #Linux

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109700-1-1.html 上篇帖子: 安装LVS安装LVS和配置LVS的工作比较繁杂 下篇帖子: LVS改变ConnectionHashtable值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表