一曲新词酒一杯,去年天气旧亭台,夕阳西下几时回? 无可奈何花落去,似曾相识燕归来,小园香径独徘徊。

发布新日志

  • ipvs heartbeat

    2007-05-30 17:50:05

    ipvs heartbeat

    1、用rpm安装dep pack(相关包):


    rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm

    rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm

    rpm Civh libnet-1.1.0-1.rh.el.1.i386.rpm

    rpm Civh perl-Digest-SHA1-2.01-15.1.i386.rpm

    rpm Civh perl-Digest-HMAC-1.01-11.1.noarch.rpm

    rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm

    rpm Civh perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm

    rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm

    rpm Civh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm

    rpm -ivh perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm

    rpm Civh libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm

    rpm -ivh perl-HTTP-GHTTP-1.07-1.n0i.3.i386.rpm

    rpm -ivh perl-XML-SAX-0.12-1.rh.el.um.1.noarch.rpm

    rpm -ivh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm

    rpm -ivh perl-libwww-perl-5.65-6.noarch.rpm

    下面是最初的安装过程

    rpm -ivh ipvsadm-1.21-1.rh.el.1.i386.rpm

    rpm Civh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm


    rpm Civh libnet-1.1.0-1.rh.el.1.i386.rpm

    rpm Civh libnet-debuginfo-1.1.0-1.rh.el.1.i386.rpm

    /*rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm

    error: Failed dependencies:

            perl(Digest::HMAC_MD5) is needed by perl-Authen-SASL-2.03-1.rh.el.um.1

        Suggested resolutions:

            perl-Digest-HMAC-1.01-11.1.noarch.rpm

    从网上http://www.start-art.co.il/startcom/AS-3.0.1/os/i386/StartCom/RPMS/

    下载上面的rpm包*/

     

    rpm Civh perl-Digest-SHA1-2.01-15.1.i386.rpm

    rpm Civh perl-Digest-HMAC-1.01-11.1.noarch.rpm

    重新安装perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Authen-SASL-2.03-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Convert-ASN1-0.16-2.rh.el.um.1.noarch.rpm

    rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm

            perl(Net::SSLeay) >= 1.08 is needed by perl-IO-Socket-SSL-0.92-1.rh.el.um.1

            perl-Net-SSLeay >= 1.0.3 is needed by perl-IO-Socket-SSL-0.92-1.rh.el.um.1

     

    rpm Civh perl-Net-SSLeay-1.23-1.rh.el.um.1.i386.rpm

    重新安装  perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm

    rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm

    rpm Civh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm

    error: Failed dependencies:

            perl(IO::Socket::SSL) is needed by perl-ldap-0.2701-1.rh.el.um.1

            perl(XML::SAX::Base) is needed by perl-ldap-0.2701-1.rh.el.um.1

            perl-IO-Socket-SSL is needed by perl-ldap-0.2701-1.rh.el.um.1

            perl-XML-SAX is needed by perl-ldap-0.2701-1.rh.el.um.1

    新安装下面的包

    rpm Civh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm

    重新安装perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm

    rpm Civh perl-ldap-0.2701-1.rh.el.um.1.noarch.rpm

    rpm -ivh perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1.noarch.rpm

    error: Failed dependencies:

            perl(Parse::RecDescent) is needed by perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1

            perl-Parse-RecDescent is needed by perl-Mail-IMAPClient-2.2.7-1.rh.el.um.1

    先安装

    rpm Civh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm

     

     

    2、安装heartbeat包


    rpm Civh heartbeat-pils-1.2.3-2.rh.el.3.0.i386.rpm

    rpm Civh heartbeat-stonith-1.2.3-2.rh.el.3.0.i386.rpm

    rpm Civh heartbeat-1.2.3-2.rh.el.3.0.i386.rpm

    rpm Civh heartbeat-ldirectord-1.2.3-2.rh.el.3.0.i386.rpm

     

    这样有关的软件已经全部安装完毕,下面进行Heartbeat和ipvs的配置:

    配置ipvsadm:

    ipvsadm是1.0.8版,安装后在/etc/rc.d/init.d/目录下自动生成了标准的init服务脚本,如果你的Director没有 备份服务器,你可以通过服务管理工具让它在相应的运行级里自动运行,如果Director是HA系统,则由heartbeat控制运行。

    另外该服务脚本提供了配置保存功能。配置文件为:/etc/sysconfig/ipvsadm 你必须手工建立。然后在其中输入规则和策略:

    -A -t 10.1.0.254:80 -s rr

    -a -t 10.1.0.254:80 -r 10.1.0.1:80 -g -w 1

    -a -t 10.1.0.254:80 -r 10.1.0.3:80 -g -w 1

    -a -t 10.1.0.254:80 -r 10.1.0.4:80 -g -w 1

    然后存盘。

    或直接运行:

    ifconfig lo:0 10.1.0.254 netmask 255.255.255.255 broadcast 10.1.0.254 up
    route add -host 10.1.0.254 dev lo:0

    (这两条在手工启动Ipvsadm时需要执行)

    ipvsadm -C

    ipvsadm -A -t 10.1.0.254:80 -s rr
    ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.1:80 -g

    ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.3:80 -g

    ipvsadm -a -t 10.1.0.254:80 -r 10.1.0.4:80 Cg
    然后运行:/etc/rc.d/init.d/ipvsadm save
    就可以保存当前配置到/etc/sysconfig/ipvsadm文件中
    在DR上启用IP转发:

    1.     modifying the line containing net.ipv4.ip_forward in /etc/sysctl.conf

    # Enables packet forwarding
    net.ipv4.ip_forward = 1
    # Enables source route verification
    net.ipv4.conf.default.rp_filter = 1

    2.     查看上述是否成功:

    For these changes to take effect the sysctl command may be used:

    /sbin/sysctl -p
    net.ipv4.ip_forward = 1
    net.ipv4.conf.default.rp_filter = 1

    配置directord:负责侦听realserver的状态,如果realserver出现问题将自动从路由表中删除之。

    /usr/share/doc/ heartbeat-ldirectord-1.2.3/ldirectord.cf文件是Ldirectord的配置文件的范例。拷贝该文件到/etc/ha.d/conf目录下,修改其内容以便在Heartbeat的配置文件haresources中使用,并建立链接:ln Cs /etc/ha.d/conf/ldirectord.cf /etc/ha.d/ldirectord.cf

    编辑ldriectord.cf:下面是一个配置实例

    # Global Directives

    checktimeout=3

    checkinterval=1

    fallback=127.0.0.1:80

    autoreload=yes

    logfile="/var/log/ldirectord.log"

    #logfile="local0"

    quiescent=yes

     

    # A sample virual with a fallback that will override the gobal setting

    virtual=10.1.0.254:80

            real=10.1.0.1:80 gate

            real=10.1.0.3:80 gate

            real=10.1.0.4:80 gate

            fallback=127.0.0.1:80 gate

            service=http

            request="reply.html"

            receive="Yeah OK!"

            virtualhost=DR1

            scheduler=rr

            #persistent=600

            #netmask=255.255.255.255

            protocol=tcp

    配置HA

    需要配置的有三个文件:ha.cf haresources(在每个节点必须相同) Authkeys,应该将它们放置在/etc/ha.d目录下。范例配置在/usr/share/doc/heartbeat-1.2.3目录下,你可以修改后拷贝到/etc/ha.d目录下

    cd /usr/share/doc/heartbeat-1.2.3

    cp ha.cf /etc/ha.d

    cp haresources /etc/ha.d

    cp authkeys /etc/ha.d

    1.设置双机脚本ha.cf:负责测试两台DR的状态,如果主机有故障将自动切换到备机上去。

    主要修改如下几项

    debugfile

    logfile

    logfacility

    keepalive

    deadtime

    warntime

    initdead

    udpport

    ucast eth1 10.3.1.6此处需要自己指定eth1为心跳线的连接网卡,10.3.1.6为对方网卡的地址

    auto_failback off:此处指定当主机恢复后是否将资源自动切换到主机上,建议选off.

    //这次设置为on看看怎样?

    node DR1

    node DR2 :此处指定加入集群的节点的机器名可以通过uname Cn查看,一定注意不能用ip地址

    上面几个参数出了有说明的地方外,都可以用默认值,只需将该项前面的#去掉就可以了

     

    下面是ha.cf中主要的参数介绍:

     

    这个配置文件告诉heartbeat 使用的是什么介质和如何配置它们。ha.cf 包含你将到的所有的选项,内容如下:

    serial /dev/ttyS0 使用串口heartbeat - 如果你不使用串口heartbeat, 你必须选择其它的介质,比如以太网bcast (ethernet) heartbeat。如果你使用其它串口heartbeat,修改/dev/ttyS0 为其它的串口设备。

    watchdog /dev/watchdog 可 选项:watchdog功能提供了一种方法能让系统在出现故障无法提供"heartbeat"时,仍然具有最小的功能,能在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳。如果你想使用该特性,你必须在内核中装入"softdog" 内核模块用来生成实际的设备文件。想要达到这个目的, 首先输入 "insmod softdog" 加载模块。然后,输入"grep misc /proc/devices" 注意显示的数字 (should be 10). 然后, 输入"cat /proc/misc | grep watchdog" 注意输出显示出的数字(should be 130)。现在你可以生成设备文件使用如下命令:"mknod /dev/watchdog c 10 130" 。

    bcast eth1 指定使用的广播heartbeat 的网络接口eth1(修改为eth0, eth2, 或你所使用的接口)

    keepalive 2 设置心跳间隔时间为2两秒。

    warntime 10 在日志中发出最后心跳"late heartbeat" 前的警告时间设定。

    deadtime 30 在30秒后明确该节点的死亡。

    initdead 120 在一些配置中,节点重启后需要花一些时间启动网络。这个时间与"deadtime"不同,要单独对待。至少是标准死亡时间的两倍。

    hopfudge 1 可选项: 用于环状拓扑结构,在集群中总共跳跃节点的数量。

    baud 19200 串口波特率的设定(bps).

    udpport 694 bcast和ucast通讯使用的端口号694 。这是缺省值,官方IANA 使用标准端口号。

    nice_failback on 可选项:对那些熟悉Tru64 Unix, 心跳活动就像是"favored member"模式。主节点获取所有资源直到它宕机,同时备份节点启用。一旦主节点重新开始工作, 它将从备份节点重新获取所有资源。这个选项用来防止主节点失效后重新又获得集群资源。

    node linuxha1.linux-ha.org 强制选项:通过`uname -n`命令显示出的集群中的机器名。

    node linuxha2.linux-ha.org 强制选项:通过`uname -n`命令显示出的集群中的机器名。

    respawn userid cmd 可选项:列出可以被spawned 和监控的命令。例如:To spawn ccm 后台进程,可以增加如下内容:
    respawn hacluster /usr/lib/heartbeat/ccm
    通知heartbeat 重新以可信任userid身份运行(在我们的例子中是hacluster) 同时监视该进程的"健康"状况,如果进程死掉,重启它。例如ipfail, 内容如下:
    respawn hacluster /usr/lib/heartbeat/ipfail
    NOTE: 如果进程以退出代码100死掉, 这个进程将不会respawned。

    ping ping1.linux-ha.org ping2.linux-ha.org .... 可选项:指定ping 的节点。 这些节点不是集群中的节点。它们用来检测网络的连接性,以便运行一些像ipfail的模块。

    2.配置authkey: 配置加密认证算法,有三种算法:CRC, md5,sha1如果heartbeat运行在一个安全的网络,例如CAT5交叉线,可以用CRC,从资源开销上来说,这是最节省开销的。如果网络是不可靠 的,就用md5,最后如果关心的是安全而不是CPU资源的开销,那么可以使用 sha1,将会得到最佳的安全度,很难被黑客所破解。

    我们采用CRC验证:

    auth 2

    2 crc

    一定记得要赋权限:chmod 600 authkeys

    格式如下:auth <number> <number> <authmethod> [<authkey>]

    例: /etc/ha.d/authkeys

    使用sha1
    auth 1
    1 sha1 key-for-sha1-any-text-you-want

    使用md5
    auth 1
    1 sha1 key-for-md5-any-text-you-want

    使用CRC
    auth 2
    2 crc

     

    cd /var/www/html

    编写html测试脚本test.html

    3.配置haresource

    这个文件指定集群所提供的服务以及谁是缺省的主节点。注意,该配置文件在所有节点应该是相同的。

    我们的HA集群提供的是负载均衡服务(LVS)和服务监控服务(Ldirectord)。这里集群的IP(虚拟)地址是必须配置的,不要在haresources文件以外的地方配置该IP地址。所以我们应该添加如下一行:

    DR1 IPaddr::10.1.0.254/32/10.1.0.254 ipvsadm ldirectord::ldirectord.cf

    ::前的表示服务脚本名称(IPaddr),你可以在目录/etc/ha.d/resource.d下找到一个脚本名叫 Ipaddr,后面的表示输入的参数

    Heartbeat 会在下面的路径搜索同名的启动脚本:
    /etc/ha.d/resource.d
    /etc/rc.d/init.d

    3.    编辑/etc/hosts

    在文件中加上两台dr的机器名和ip的对应关系。

    127.0.0.1       DR2     localhost.localdomain   localhost

    10.3.0.5        DR2

    10.3.0.6        DR1

    10.1.0.5        DR2

    10.1.0.6        DR1

    以上是DR的配置,下面进行realserver的配置

    配置realserver

    安装patch:在lvs才用dr方式时存在arp问题需要用如下补丁修改。

    将hidden-2.4.25-1.diff传到realserver上

    cd /usr/src/linux-.2.4

    patch -p1 < /root/hidden-2.4.25-1.diff (arp for LVS-DR/LVS-Tun)
    打上补丁后需要重新编译内核:
    make mrproper  检查相关文件的一致性
    make menuconfig
    make dep
    make clean
    make bzImage
    make modules
    make modules_install
    depmod Ca: 检查内核中有没有未解析的symbol,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。假如输入这个命令后看不到没有任何返回信息的话,那说明在编译过程是已经成功了
    在/boot下生成 initrd img文件:
    cd /boot
    mkinitrd initrd-lvs 2.4.21-27.ELcustom
    (后一是编译完内核后在/lib/modules/生成的,具体的文件名可以在,/usr/src/linux-2.4中的makefile中指定具体的名字,默认是initrd-当前内核名custom)
    生成新的内核引导文件
    修改启动内核:
    cp /usr/src/linux-2.4/arch/i386/boot/bzImage /boot/vmlinuz-lvs (rs)

    cp /usr/src/liunx-2.4/System.map /boot/System.map-lvs (rs)

    cp /usr/src/linux-2.4/vmlinux /boot/vmlinux-lvs (rs)

    cd /boot

    rm -f System.map

    ln -s System.map.lvs (rs) System.map

    修改启动引导文件
    vi /boot/grub/grub.conf:

    title Redhat-lvs
      root (hd0,0)
       kernel /boot/ vmlinuz-lvs ro root=/dev/xxx

    title Red Hat Enterprise LVS
            root (hd0,0)
            kernel /vmlinuz-lvs  ro root=LABEL=/
            initrd /initrd-lvs
    重新启动计算机
    shutdown Cr now
    并用新内核引导系统,系统就有了Hidden补丁了。
    在rc5.d, rc3.d加入如下脚本S98startrs:使realserver启动时获得路由和禁止lo:0上arp
    ifconfig lo:0 10.1.0.254 netmask 255.255.255.255 broadcast 10.1.0.254:80 up
    route add -host 10.1.0.254 dev lo:0
    echo 1 >/proc/sys/net/ipv4/conf/all/hidden
    echo 1 >/proc/sys/net/ipv4/conf/lo/hidden
     
     
     
    #!/bin/bash

    #----------mini-rc.lvs_dr-realserver------------------

    #installing default gw 192.168.7.254 for vs-dr

    /sbin/route add default gw 192.168.7.254

    #showing routing table

    /bin/netstat -rn

    #checking if DEFAULT_GW 192.168.1.254 is reachable

    ping -c 1 192.168.7.254



    #set_realserver_ip_forwarding to OFF (1 on, 0 off).

    echo 0 >/proc/sys/net/ipv4/ip_forward

    cat    /proc/sys/net/ipv4/ip_forward



    #looking for DIP 192.168.7.9

    ping -c 1 192.168.7.9



    #looking for VIP (will be on director)

    ping -c 1 192.168.7.110



    #install_realserver_vip

    /sbin/ifconfig lo:0 192.168.7.110 broadcast 192.168.7.110 netmask 255.255.255.255 up

    #ifconfig output

    /sbin/ifconfig lo:0

    #installing route for VIP 192.168.1.110 on device lo:0

    /sbin/route add -host 192.168.7.110 dev lo:0

    #listing routing info for VIP 192.168.7.110

    /bin/netstat -rn



    #hiding interface lo:0, will not arp

    echo 1 >/proc/sys/net/ipv4/conf/all/hidden

    cat    /proc/sys/net/ipv4/conf/all/hidden

    echo 1 >/proc/sys/net/ipv4/conf/lo/hidden

    cat    /proc/sys/net/ipv4/conf/lo/hidden



    #----------mini-rc.lvs_dr-realserver------------------
     

     

     

    配置ha如下:

    几点注意事项:

    4.     haresources中指定的资源之一应该有ipvsadm,也就是我们手工编写的启动ipvs的脚本。

    5.     haresoueces的resources资源包含两部分:ipvsadm和ldirectord

    6.     原来的ipvsadm文件可能有问题,需要重新修改

    7.     LVS的虚地址应该有HeartBeat启动,所以应该在haresources中设定该地址。

    8.     test3(节点名) IPaddr::ip_address/netmask/broadcast_address ipvsadm ldirectord::ldirectord配置包 ldirectord::ldirectord配置包

    9.     ldirectord和ha的日志位于/var/log/ldirectord.log和ha-log

    10.  heartbeat检测应该采用ucast,需要了解单播地址应该设自己的还是对端的,首先考虑设为对端的。

    11.  modifying the line containing net.ipv4.ip_forward in /etc/sysctl.conf

    # Enables packet forwarding
    net.ipv4.ip_forward = 1
    # Enables source route verification
    net.ipv4.conf.default.rp_filter = 1

    12.  查看上述是否成功:

    For these changes to take effect the sysctl command may be used:

     
    /sbin/sysctl -p
    net.ipv4.ip_forward = 1
    net.ipv4.conf.default.rp_filter = 1
    通过以上修改应该ip_forward就不用在ipvsadm中手工修改了!现在还有路由不知在什么地方加!
    10.Ldirectord的debug模式启动:
    ldirectord -d ldirectord.cf start
    这样可以通过重定向查看debug信息,以定位错误!
    下面是别人的一个测试例子和报错信息:
    > ldirectord -d /etc/ha.d/ldirectord.cf start
    > DEBUG2: Running exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start)
    > Running exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start)
    > DEBUG2: Starting Linux Director v1.62 with pid: 15834
    > Starting Linux Director v1.62 with pid: 15834
    > DEBUG2: Running system(/sbin/ipvsadm -A -t 192.168.0.163:80 -s rr )
    > Running system(/sbin/ipvsadm -A -t 192.168.0.163:80 -s rr )
    > DEBUG2: Added virtual server: 192.168.0.163:80
    > Added virtual server: 192.168.0.163:80
    > DEBUG2: Running system(/sbin/ipvsadm -a -t 192.168.0.163:80 -r 127.0.0.1:80
    > -g
    > -w 1)
    > Running system(/sbin/ipvsadm -a -t 192.168.0.163:80 -r 127.0.0.1:80 -g -w 1)
    > DEBUG2: Added fallback server: 127.0.0.1:80 (0 x 192.168.0.163:80) (Weight
    > set
    > to 1)
    > Added fallback server: 127.0.0.1:80 (0 x 192.168.0.163:80) (Weight set to 1)
    > DEBUG2: Checking negotiate: real
    > server=negotiate:http:tcp:192.168.0.160:80:\/index\.html:ds10Testseite\ fuer\
    > die\ Apache\-Installation\ auf\ dieser\ Web\ Site
    > (virtual=tcp:192.168.0.163:80)
    > ldirectord ldirectord.cf received signal: Can't locate LWP/UserAgent.pm in
    > @INC (@INC contains: /usr/local/lib/perl5/5.8.0/i686-linux
    > /usr/local/lib/perl5/5.8.0 /usr/local/lib/perl5/site_perl/5.8.0/i686-linux
    > /usr/local/lib/perl5/site_perl/5.8.0 /usr/local/lib/perl5/site_perl .) at
    > /usr/sbin/ldirectord line 1514.
     
    You are missing LWP/UserAgent.pm which is part of the libwww-perl
    perl module. I have packages for this and all of ldirectord's
    dependancies available on ultramonkey.org.
     
    Alternatively you can manually installed the dependancies from CPAN.
    (Refer to the download directory on ultramonley.org for a guide
    to the modules needed).
     
    参照官方文档,将fallback重新打开了。
    修改了ldirectord.cf中的通讯页,原来是TestPage改为index.html

     

    启动heartbeat出现如下问题:

    Starting High-Availability services:

    2005/03/08_14:17:46 CRITICAL: Resource IPaddr::10.1.0.254/32/10.1.0.254 is active, and should not be!

    2005/03/08_14:17:46 CRITICAL: Non-idle resources can affect data integrity!

    2005/03/08_14:17:46 info: If you don't know what this means, then get help!

    2005/03/08_14:17:46 info: Read the docs and/or source to /usr/lib/heartbeat/ResourceManager for more details.

    CRITICAL: Resource IPaddr::10.1.0.254/32/10.1.0.254 is active, and should not be!

    CRITICAL: Non-idle resources can affect data integrity!

    info: If you don't know what this means, then get help!

    info: Read the docs and/or the source to /usr/lib/heartbeat/ResourceManager for more details.

    2005/03/08_14:17:46 CRITICAL: Non-idle resources will affect resource takeback!

    2005/03/08_14:17:46 CRITICAL: Non-idle resources may affect data integrity!

                                                               [FAILED]

    heartbeat: 2005/03/08_14:17:46 ERROR: Current node [test3] not in configuration!

    heartbeat: 2005/03/08_14:17:46 info: By default, cluster nodes are named by `uname -n` and must be declared with a 'node' directive in the ha.cf file.

    heartbeat: 2005/03/08_14:17:46 ERROR: Configuration error, heartbeat not started.

     

    其中要注意node必须用机器名,可以通过uname Cn查看机器名最终就是这一点解决了上面的问题!

    在realserver上安装arp problem patch

    cd /usr/src/linux-2.4

    patch -p1 < /root/ipvs-1.0.9/contrib/patches/hidden-2.4.20pre10-1.diff
    patching file include/linux/sysctl.h

    Hunk #1 FAILED at 339.

    1 out of 1 hunk FAILED -- saving rejects to file include/linux/sysctl.h.rej

    此问题说明安装的patch与系统内核不匹配。需要重新下载新的内核patch

    关于arp problem:

    由于在DR模式中,Load Blancer和Real Server共享Vitual IP,所以当Realserver响应VIP的arp(地址解析)时,可能造成混乱,VIP响应的客户端的请求包可能一会发给load blancer,一会发给一台realserver,一会发给另一台realserver,这样有时候连接将中断,因此需要关闭realserver上的arp,所有的来自VIP的连接请求必须由load blancer来转发。

      关闭方法如下:

          在realserver上打上patch后

          # Start the hiding interface functionality
    echo 1 > /proc/sys/net/ipv4/conf/all/hidden
    # Hide all addresses for this interface
    echo 1 > /proc/sys/net/ipv4/conf/<interface_name>/hidden
    在打patch前查看一下:

    patch -p1 --dry-run < file.diff
     
     
     
     

我的栏目

数据统计

  • 访问量: 24009
  • 日志数: 35
  • 图片数: 3
  • 建立时间: 2007-05-08
  • 更新时间: 2008-05-26

RSS订阅

Open Toolbar