Chinaunix首页 | 论坛 | 博客

  • 博客访问: 915920
  • 博文数量: 226
  • 博客积分: 10077
  • 博客等级: 上将
  • 技术积分: 2708
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-25 14:36
文章分类

全部博文(226)

文章存档

2010年(15)

2009年(82)

2008年(129)

我的朋友

分类: LINUX

2009-12-03 20:29:44


--> 作者:
1用rpm安装dep pack(相关包):


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

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

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

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

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

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

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

rpm -ivh 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 -ivh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm

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

rpm -ivh 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 -ivh 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 -ivh ipvsadm-debuginfo-1.21-1.rh.el.1.i386.rpm

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

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

rpm -ivh 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

从网上
下载上面的rpm包*/

 

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

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

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

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

rpm -ivh 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 -ivh 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 -ivh perl-Net-SSLeay-debuginfo-1.23-1.rh.el.um.1.i386.rpm

rpm -ivh 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 -ivh perl-XML-NamespaceSupport-1.08-1.rh.el.um.1.noarch.rpm

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

rpm -ivh 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 -ivh perl-Parse-RecDescent-1.80-1.rh.el.um.1.noarch.rpm

 

 

2.安装heartbeat包

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

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

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

rpm -ivh 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 []

例: /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//hidden
在打patch前查看一下:

patch -p1 --dry-run < file.diff
阅读(1630) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~