LVS(DR) ldirectord实现负载平衡
创始人
2024-07-19 03:41:28
0

一  环境介绍

试验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
   [root@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查看
[root@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 可以自动将挂掉的机器移除.#p#

ldirectord是heartbeat中的一部分,当我们安装了heartbeat就带了ldirectord
1  先配置个可用的安装ldirectord和heartbeat的源
[root@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://shenjianzhousx.blog.51cto.com/1627247/440506

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...