设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 9321|回复: 3

[lvs] ldirectord.cf文件详解 [复制链接]

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

签到
472
注册时间
2008-5-19
最后登录
2019-5-23
在线时间
1945 小时
阅读权限
200
积分
59165
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2008-12-14 13:14:19 |显示全部楼层
ldirectord使用一个配置文件建立IPVS表,你可以给这个文件取任意合法的名字,但你必须将其放于/etc/ha.d/conf目录下,例如:在VIP 209.100.100.3上的IPVS配置文件可以是:
checktimeout=20
checkinterval=5
autoreload=yes
quiescent=no
logfile="info"
virtual=209.100.100.3:80
real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"
real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"
service=http
checkport=80
protocol=tcp
scheduler=wrr
checktype=negotiate
fallback=127.0.0.1
注意:在virtual行后面的行必须缩进4个空格或一个tab字符进行标记。
这个文件的前面4行是“全局”设置,它们应用到多个虚拟主机,但是当使用Heartbeat时,这个文件通常都包括一行virtual=只指定一个VIP地址,这就是为什么你在haresources文件中设置VIP时要每一行放一个的原因的,为每个VIP运行一个ldirectord守护进程,每个ldirectord守护进程使用不同的配置文件,因此每个VIP及其IPVS表成为一个Heartbeat可以管理的资源。
下面来看看这个配置文件中的每一行:
checktimeout=20
这个值就是ldirectord等待健康检查执行完毕的等待时间,单位秒。如果因为某些原因检查失败或在设置的时间周期内没有完成检查,ldirectord将会从IPVS表中移除真实服务器[16]。
checkinterval=5
这个值指定ldirectord在两个检查之间的间隔时间。
autoreload=yes
如果启用这个选项,它使ldirectord按时计算这个配置文件的md5校验和值,看其是否有改动,当发现有改动时自动应用那些改动,这个方便的特性运行你容易地改变集群的配置,你对配置文件改动后几秒,ldirectord将察觉到有改动,调用ipvsadm命令实现改动,从有效服务器池中移除真实服务器或按需要将它们添加到池中[17]。
注意:你也可以通过向ldirectoed守护进程发送HUP信号(使用kill命令)强制它重新载入,或运行ldirectord reload。
quiescent=no
当一个节点在checktimeout设置的时间周期内没有响应是它是“静止的”(它的权重为0),当你设置了这个选项后,ldirectord将会从IPVS表中移除真实服务器而不是“停止”它,从IPVS表移除节点将中断现有的客户端连接,并使LVS丢掉所有的连接跟踪记录和持续连接模板,如果你不将这个选项设置为no,当某个节点崩溃时,对某些客户端计算机而言可能会显示为集群关闭了,因为在这个节点崩溃前这些客户端计算机被分配给它了,而连接跟踪记录和程序连接模板仍然保留在Director上。
使用这个选项时,你可能也想在系统启动时使用下面这个命令[18]:
echo 1 > /proc/sys/net/ipv4/vs/expire_nodest_conn
如果客户端使用一个先前的连接跟踪记录尝试与相同的服务器对话,但此时该服务器已经失效了,可以设置这个内核变量为1使连接跟踪记录立即失效[19]。
注意:所有sysctl变量。包括expire_nodest_conn 变量,在LVS网站上都有说明文档(http://www.linuxvirtualserver.org/docs/sysctl.html)。
logfile="info"
这一行内容告诉ldirectord使用syslog程序记录错误消息(查看/etc/syslog.conf找出“info”级别的消息是写到哪里的),你也可以输入记录错误消息的目录和文件名,如果没有指定值,日志消息将被写入/var/log/ldirectord.log。
virtual=209.100.100.3:80
这一行指定我们想要在Director上设置的VIP地址和端口号,这就是你要添加到DNS向客户端广播的ip地址,任何情况下,这就是客户端计算机用来连接到你配置的集群资源的ip地址。
你也可以在这一行指定Netfilter掩码(或fwmark)代替ip地址,例如,下面的条目仍然是有效的:
virtual=2
这一条表明你使用的是ipchains或iptables标记抵达Director的数据包[20],所有含有这个标记的数据包都将按照这个配置文件后面的规则进行处理。
注意:数据包通常被标记创建端口仿射性(例如在端口443和端口80之间),参考第14章关于数据包标记和端口仿射性的讨论。
下面的第一个缩进行指出由哪个真实服务器向客户端计算机提供资源:
real=127.0.0.1:80 gate 1 ".healthcheck.html", "OKAY"
这一行指出Director本身(在回路ip地址127.0.0.1)充当LocalNode模式,将响应抵达VIP 200.100.100.3的客户端请求。
注意:在生产环境中不要使用LocalNode,除非你对集群负载均衡资源进行了充分的测试,如果你不使用LocalNode模式,通常可以改善集群的可靠性。
real=209.100.100.100:80 gate 1 ".healthcheck.html", "OKAY"
这一行使用RIP地址209.100.100.100添加了第一个LVS-DR真实服务器。这个配置文件中的每以real=行都使用下面的语法格式:
real=RIP:port gate|masq|ipip [weight] "Request URL", "Response Expected"
这个语法描述告诉我们该配置文件中每一real=行都必须给出gate、masq或ipip指出要使用的转发方法(回忆第11章中Director使用不同的转发方法),这个配置文件使用稍微不同的术语(基于传递给ipvsadm命令的参数)来代表三种转发方法,具体请查看表15-1:
ldirectord配置选项
ipvsadm使用的参数
ipvsadm -L的输出
LVS转发方法
gate
-g
Route
LVS-DR
ipip
-i
Tunnel
LVS-TUN
masq
-m
Masq
LVS-NAT

跟随转发方法后面的是分配给真实服务器的权重值,只在带权重的调度方法中有用,最后两个参数指出ldirectord应该访问哪个web页面或URL检查真实服务器的健康状况,以及ldirectord应从真实服务器那里接收到预期的响应。这两个参数都需要用引号引起来,并用逗号隔开。
service=http
这一行指出测试真实服务器的健康时ldirectord使用的服务,你必须要为你指定的服务载入正确的CPAN Perl 模块。
checkport=80
这一行指出健康检查使用的端口是80。
protocol=tcp
这一行指出该服务使用的协议。可以是tcp、udp或fwm,如果你使用fwm或fwmark标记的数据包,在virtual=那一行你必须使用Netfilter掩码(或fwmark)代替ip地址。
scheduler=wrr
这一行指出使用的是带权重的循环负载均衡技术进行调度(查看前面的real行为每个真实服务器分配的权重值),参考第11章中描述的LVS支持的调度方法,ldirectord不检查这一项的有效性,ldirectord只管传递你输入的内容给ipvsadm创建虚拟服务。
checktype=negotiate
这个选项指出ldirectord守护进程使用什么方法监视真实服务器,checktype有以下这样一些值:
negotiate :
这个方法连接到真实服务器发送你指定的请求,如果在checktimeout周期内真实服务器都没有返回你指定的应答字符串,这个节点就被认为已经死掉了,你可以在每个节点上指定请求和应答字符串,或在ldirectord配置文件中添加两行内容,为所有节点设置同样的请求和应答字符串:
request=".healthcheck.html"
receive="OKAY"
connect :
这个方法只是在checkport指定的端口上连接到真实服务器,并假设真实服务器一切都ok,值需要到真实服务器的TCO/IP连接是通畅的,这个方法没有negotiate可靠,当没有negotiate检查可用时,使用这个方法显得有点用处。
A number :
如果在这里输入一个数字代替negotiate或connect ,ldirectord将会执行你指定的数字次数的连接测试,然后再执行一次negotiate 测试,这个方法减少了真实服务器应答健康检查的要求,同时也减少了集群网络通讯[21]。
off :
禁用ldirectord监视真实服务器的健康。
fallback=127.0.0.1
fallback地址指出当IPVS表中没有真实服务器时,客户端计算机应该被重定向的ip地址,通常将其设为loopback地址127.0.0.1,为了强制客户端计算机连接到本地的守护进程,至少要通知用户出现问题了,可能还要让他们知道要获取额外的帮助应该联系谁。
你也可以为fallback web页面设置一个端口号:
fallback=127.0.0.1:9999
注意:我们不会使用持续连接创建我们的虚拟服务表,在ldirectord.conf文件中使用 persistent=启用持续连接,请参考第14章关于持续连接的讨论。




原文地址http://linux.chinaunix.net/techdoc/system/2008/09/12/1032287.shtml
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

Rank: 6Rank: 6

注册时间
2008-12-17
最后登录
2013-3-26
在线时间
56 小时
阅读权限
70
积分
5126
帖子
143
主题
20
精华
0
UID
731

LT粉丝

发表于 2008-12-27 16:58:01 |显示全部楼层
CPAN Perl 模块的service对应的表?我不知道jetty是属于哪一种service

使用道具 举报

LT管理团队

社区首席勤杂工

Rank: 9Rank: 9Rank: 9

注册时间
2008-5-19
最后登录
2019-5-23
在线时间
1945 小时
阅读权限
200
积分
59165
帖子
2551
主题
1209
精华
25
UID
1

LT总司令

发表于 2008-12-27 21:53:42 |显示全部楼层
jetty当HTTP服务,正确按端口来检测就行。
<-sina_sign,1762622645,2a5b1a59,10->感谢大家对linuxtone的支持!</strong>

使用道具 举报

Rank: 6Rank: 6

注册时间
2009-9-8
最后登录
2016-8-25
在线时间
9 小时
阅读权限
70
积分
2001
帖子
10
主题
1
精华
0
UID
5265
发表于 2011-3-14 14:05:16 |显示全部楼层
学习了……

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-7-16 02:24 , Processed in 0.023065 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部