一、启动LVS集群服务
LVS负载均衡管理和使用有两种方式,一种是以ipvsadm命令行脚步与ldirectord监控方式,一种是以Piranha工具进行管理和使用。下面分别介绍。

1、利用ipvsadm命令行脚步与ldirectord监控方式管理LVS
在一切配置完毕之后,依次执行下面的操作启动LVS集群服务。
首先,启动每个real server节点的服务:
[root@localhost ~]# /etc/init.d/lvsrs  start
 start LVS  of  REALServer
然后,在Director Server启动ldirectord服务:
[root@localhost ~]# /etc/init.d/ldirectord  start
Starting ldirectord                                        [  OK  ]
此时查看ldirectord 输出日志信息如下:
ldirectord|2561] Invoking ldirectord invoked as: /usr/sbin/ldirectord start 
ldirectord|2561] Starting Linux Director v1.186 as daemon
ldirectord|2563] Added virtual server: 192.168.60.200:80
ldirectord|2563] Added fallback server: 127.0.0.1:80 (192.168.60.200:80) (Weight set to 1)
ldirectord|2563] Added real server: 192.168.60.132:80 (192.168.60.200:80) (Weight set to 1)
ldirectord|2563] Deleted fallback server: 127.0.0.1:80 (192.168.60.200:80)
ldirectord|2563] Added real server: 192.168.60.144:80 (192.168.60.200:80) (Weight set to 1)
从日志可以看出,ldirectord首先加载了一个虚拟IP的80端口,然后加载了两个real server节点的80端口以及Director Server本机的80端口,同时将real server两个节点的权值设置为1,由于两个节点均可用,最后将Director Server本机的80端口从LVS路由表中删除。
接着,在Director Server启动lvsDR主服务:
[root@xa_web1 ~]# /etc/init.d/lvsDR  start 
 start LVS  of DirectorServer
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward  Weight  ActiveConn InActConn
TCP  192.168.60.200:http rr persistent 600
  -> 192.168.60.132:http          Route    1         3          22        
  -> 192.168.60.144:http          Route    1         9          22
到此为止,LVS负载均衡集群系统已经开始运行。

2、利用Piranha工具管理LVS
在这种方式下,启动LVS集群很简单,只需执行如下命令即可:
/etc/init.d/pulse  start
此时查看pulse服务的系统日志信息如下:
[root@localhost ~]# tail -f /var/log/messages
Nov 22 15:52:55 lvs lvs[7031]: starting virtual service www.gaojf.com active: 80
Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.gaojf.com/RS1 running as pid 7039
Nov 22 15:52:55 lvs nanny[7039]: starting LVS client monitor for 192.168.60.200:80
Nov 22 15:52:55 lvs lvs[7031]: create_monitor for www.gaojf.com/RS2 running as pid 7040
Nov 22 15:52:55 lvs nanny[7039]: making 192.168.60.132:80 available
Nov 22 15:52:55 lvs nanny[7040]: starting LVS client monitor for 192.168.60.200:80
Nov 22 15:52:55 lvs nanny[7040]: making 192.168.60.144:80 available
从日志可以看出,pulse服务启动了一个www.gaojf.com的虚拟服务,同时加载了RS1和RS2两个节点,然后检测到RS1和RS2两个节点对应的80端口可用,最后启动了虚拟IP的80端口,对外提供服务。
日志中“www.gaojf.com”、“RS1”、“RS2”等标识均在Piranha的配置文件/etc/sysconfig/ha/lvs.cf中定义。
Pulse服务启动完毕,通过“ps –ef”命令可以看到有如下进程在运行:
[root@localhost ~]#  ps -ef|grep nanny
/usr/sbin/nanny -c -h 192.168.60.132 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
/usr/sbin/nanny -c -h 192.168.60.144 -p 80 -s GET / HTTP/1.0\r\n\r\n -x HTTP -a 15 -I /
其中,nanny就是Pulse服务的守护进程,用于监控LVS服务节点的运行状态,类似与ldirectord的节点监控功能。

二、 测试负载均衡
这里假定两个real server节点配置www服务的网页文件根目录均为/webdata/www目录,然后分别执行如下操作:
在real server1 执行:
echo "real server1 ok" >/webdata/www/index.html
 在real server2 执行: 
echo "real server2 ok" >/webdata/www/index.html
接着打开浏览器,访问http://192.168.60.200这个地址,然后不断刷新此页面,如果能分别看到real server1 ok;和real server2 ok就表明LVS正常工作了。

三、测试故障切换功能
故障切换是测试当某个节点出现故障后,监控模块是否能及时发现,然后屏蔽故障节点,同时将服务转移到正常节点来执行,下面分别讲述用ldirectord监控时的故障切换过程和用nanny监控时的故障切换情形。

1、利用ldirectord监控LVS的故障切换
这里假定停掉real server1节点的www服务,然后观察ldirectord的日志变化,应该能看到类似如下的信息:
ldirectord|2614] Deleted real server: 192.168.60.132:80 (192.168.60.200:80)
由此可知,ldirectord监控到了192.168.60.132这个节点的服务出现故障,然后将此节点从LVS路由表中删除。
此时继续通过浏览器访问http://192.168.60.200,访问不受任何影响,但是仅仅显示real server2 ok信息,这是由于real server1出现问题,被ldirectord屏蔽,整个LVS集群只有real server2在提供服务。
上面的日志输出信息是由于在ldirectord.cf中设置了quiescent=no,如果设置为quiescent=yes;日志输出信息变为如下:
ldirectord|32454] Quiescent real server:192.168.60.132:80 (192.168.60.200:80) (Weight set to 0)
这段日志输出是将故障节点192.168.60.132的权值设置为0,而不从LVS路由表中删除这个主机,此时已经连接的客户端将出现无法访问现象,但是新的连接将不会分配到此节点。
如果重新启动Real server1的服务,ldirectord将能自动检测到节点已经激活,重新将此节点加入LVS路由表中,ldirectord会在日志中输出这些信息:
ldirectord|2614] Added real server: 192.168.60.132:80 (192.168.60.200:80) (Weight set to 1)

2、利用nanny监控LVS的故障切换
 同样,这里也假定停掉real server1节点的www服务,然后观察pluse服务的日志信息,日志输出如下:
Nov 22 15:54:01 lvs nanny[7039]: shutting down 192.168.60.132:80 due to connection failure
可以看出,当停掉real server1的服务后,nanny守护进程监控到此节点故障,然后关闭了此节点的连接服务。
现在重启启动real server1节点的服务,然后观察pluse服务的日志输出:
Nov 22 16:49:41 lvs nanny[7158]: making 192.168.60.132:80 available
nanny守护进程在设定的检测时间内自动检测到real server1服务已经激活,重新使此节点变得可以连接。

本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/555738

Linux负载均衡软件LVS之四(测试篇-完)的更多相关文章

  1. (转)Linux负载均衡软件LVS之一(概念篇)

    转:http://ixdba.blog.51cto.com/2895551/552947 Linux负载均衡软件LVS之二(安装篇):http://ixdba.blog.51cto.com/28955 ...

  2. Linux负载均衡软件LVS之二(安装篇)[转]

    Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文 ...

  3. Linux负载均衡软件LVS简介

    Linux负载均衡软件LVS LVS集群的体系结构以及特点 1. LVS简介        LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起 ...

  4. Linux负载均衡软件LVS

    linux下的开源负载均衡软件LVS的安装.配置和使用.LVS是一个中国人创建和开发的开放源码项目,利用LVS可以构建高可用.高可靠的负载均衡集群,因此,利用Linux+LVS不但可以假设高性能的负载 ...

  5. Linux负载均衡软件LVS之一(概念篇)

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver ...

  6. Linux负载均衡软件LVS之三(配置篇)

    LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director ...

  7. Linux负载均衡软件LVS之二(安装篇)

    一.  安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务I ...

  8. Windows+IIS结合LVS+Keepalived是实现Linux负载均衡软件

    在Discuz!NT的最新版本(企业版)中,支持目前主流LINUX平台上的负载均衡解决方案,比如NGINX,HAPROXY,LVS等.本文与其说是解决方案,倒不如说是介绍如何搭建Discuz!NT负载 ...

  9. Linux负载均衡软件之LVS

    一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是linuxvirtualserver.org ...

随机推荐

  1. WeChatAPI 开源系统架构详解

    WeChatAPI 开源系统架构详解 如果使用WeChatAPI,它扮演着什么样的角色? 从图中我们可以看到主要分为3个部分: 1.业务系统 2.WeChatAPI: WeChatWebAPI,主要是 ...

  2. 表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法

    原文:表单验证的3个函数ISSET().empty().is_numeric()的使用方法 本文就简单讲一下php中表单验证的三个函数,应该比较常用吧,最后给一些示例,请看下文. ISSET();—— ...

  3. DDD分层架构之值对象(层超类型篇)

    DDD分层架构之值对象(层超类型篇) 上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见.这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好 ...

  4. 一个极简的守护进程Bash脚本

    由于最近写的Node.js程序因为一些Bug,会出现一些自动退出的问题,所以需要在它退出的时候及时发现,并重新启动 于是查阅了些资料,写了一个Bash的程序,功能十分简单,就是每隔3s判断一次处在60 ...

  5. leetcode 34 Search Insert Position

    Given a sorted array and a target value, return the index if the target is found. If not, return the ...

  6. HDInsight-Hadoop现实(两)传感器数据分析

    HDInsight-Hadoop现实(两)传感器数据分析 简要 现在,含传感器非常个人和商用设备收集来自物理世界的信息.例如.大多数手机都有 GPS.健身器材可以跟踪的步骤,你去数,恒温控制器可以监视 ...

  7. 【转】 Android项目的mvc模式

    MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型M可以对于多种视图模型V,比如一批统计数据你可以分别用柱状图.饼图V来表示.一种视图模 ...

  8. Strongly connected(hdu4635(强连通分量))

    /* http://acm.hdu.edu.cn/showproblem.php?pid=4635 Strongly connected Time Limit: 2000/1000 MS (Java/ ...

  9. CodeRush配置Nunit使用

    Web:http://www.nunit.org/  配置和DevExpress的CodeRush Install-Package NUnit 下载Nunit后设置CodeRush目录,如下图: 下面 ...

  10. Visual Studio 2013 上使用 Github

    教你如何在 Visual Studio 2013 上使用 Github 介绍 我承认越是能将事情变简单的工具我越会更多地使用它.尽管我已经知道了足够的命令来使用Github,但我宁愿它被集成到IDE中 ...