关于Piranha组件中nanny的超时问题

今天集群中的一个App节点因为程序错误(我称之为撞车,系统的负载能力跟高速公路的车辆通行能力很相似,可以类比)导致系统负载急剧增加,直至没有响应,挂掉了。

本来按照预计,挂掉的节点应该在6秒钟内权值(weight)被自动降为零。然后等了一分钟,也没有被降权,立刻意识到,nanny遇到了我之前做监按、写监控经常遇到的问题,超时问题。

nanny在App高负载的情况下迟迟得不到应答(不知道进行到了哪一步),不知怎么办是好了。

在配置文件里明明是有timeout配置的,不知道为什么没有生效,看来到目前为止,我们的LVS集群,还是不能完全无人值守的,占个位置,等待新的研究结果:

………………

7 Comments

  1. wlong 2008-11-12, 23:30

    我想请教一下,这种情况用keepalived会怎样?? keepalived 能对节点机做健康检查,可以自定义检查方式和时间间隔,如果有节点机的WEB服务不正常,keepalived会动态修改LVS规则,将该节点机删除。

    [Reply]

    花开 Reply:

    Keepalived我没有实践过,包括用的较多的heartbeat。
    使用Piranha主要是因为是RedHat提供的组件,方便一些。从原理上讲,我相信这几个程序应该差不多的。最早的时候,我甚至写Shell脚本使用Nagios的监控来做节点的状态检查,并进行相应的权值控制。Nagios的监控对“超时”的控制是丰常到位的。
    按理说,应该是不会遇到今天类似的情况的。之前已经测试过,停止web、使用防火墙drop掉80端口访问等,都能及时有响应。这次还不能完全确定是nanny对“超时”管理不当造成的,只是估计。
    突然想起来,Piranha的一个独到之处,它可以通过检测节点的load信息,自动调整节点的权值。不知道keepalved和heartbeat有没有类似的功能。还有Piranha提供了一个Web的配置管理界面Piranha-gui(不要鄙视我),这对于那些不熟悉LVS的管理员来说,是个有吸引力的东西。

    [Reply]

    wlong Reply:

    谢谢你的回复!!!

    “Piranha的一个独到之处,它可以通过检测节点的load信息,自动调整节点的权值。不知道keepalved和heartbeat有没有类似的功能。”

    我看keepalived没有这个功能。
    Keepalived 只支持:
    TCP_CHECK check real server availability using TCP connect
    MISC_CHECK check real server availability using user defined script
    HTTP_GET check real server availability using HTTP GET request
    SSL_GET check real server availability using SSL GET request

    http://www.keepalived.org/pdf/UserGuide.pdf
    通过”user defined script” 大概也可以取到load信息,但是keepalived只能往LVS规则里添加和删除real server,不能动态修改real server的权值,从文档上没有找到这方面的功能。

    另外一个参考信息是:
    http://kb.linuxvirtualserver.org/wiki/LVS_Cluster_Management

    There are many cluster management software in conjuction with LVS to provide high availability and management of the whole system.
    Piranha
    Keepalived
    UltraMonkey
    heartbeat plus ldirectord
    heartbeat plus mon
    feedbackd
    ipvsman
    LVSM
    lvs-kiss
    SCOP
    OpenSSI Cluster integrated HA-LVS
    好多呀!究竟哪一个更好呢?我打算再试第1和4、5看看。

    [Reply]

    Tony Reply:

    請問

    1.piranha可以裝在其他例如bsd或ubuntu等的其他linux版本
    嗎?

    2.在piranha或feedbacked中,可以自行設定我自己特定的動態權值
    計算公式,好讓他自動幫我real time計算動態權值並設定嗎????
    如果可以,是要改source還是怎樣實現????

    請高手們解惑,感恩!!!!!!!!!!!!!!!!!!

    花开 Reply:

    用在ubuntu上,理论上是没有问题的。
    用在BSD上,可能需要做不少额外的工作。
    Piranha在动态调整“权值”时,使用的应该是自己的算法,无法控制(没有查到相关资料)。假如要实现控制,恐怕也有改写代码了。
    feedbacked不太熟悉。

  2. 木溪 2008-11-13, 0:39

    花开同学这个日志写得用我们家乡话说就是:牛哄哄的~~
    很不错,期待结果 :lol:

    [Reply]

  3. norasun 2008-11-30, 19:55

    很专业,学习来了~~~

    [Reply]

Add a Comment