HA配置方法
2006/04/241.试验环境网络拓扑1.1硬件配置: 4台服务器均联网到同一局域网 master和slave的...
扫描右侧二维码阅读全文
11
2008/04

HA配置方法

2006/04/24

1.试验环境网络拓扑

1.1硬件配置:
4台服务器均联网到同一局域网
master和slave的其中一块网卡通过对绞线相连

1.2软件配置:
linux-2.4.32
hidden-2.4.28-1
ipvsadm-1.21-11
heartbeat-2.0.4

1.3网络配置:
Virtual IP:192.168.210.203

LVS Master
主机名:master
IP地址:192.168.210.202
心跳线:192.168.0.202

LVS Slave
主机名:slave
IP地址:192.168.210.204
心跳线:192.168.0.204

Real Server 1
主机名:real01
IP地址:192.168.210.205

Real Server 2
主机名:real02
IP地址:192.168.210.206

2.配置服务器环境
需要在两台heartbeat的host都配置上对方的心跳线IP
#vi /etc/hosts
192.168.0.202 master
192.168.0.204 slave

注意:需要使用心跳线地址,而不是外网卡的地址

3.安装支持库
#rpm -ivh libnet-1.1.2.1-4.i586.rpm
#rpm -ivh glib2-devel-2.2.1-1.i386.rpm
ldirector需要调用perl的www库来获取对http监控的支持,
如果缺少这两个库会导致ldirector无法正确抓到real server上的页面文件
#rpm -ivh perl-libwww-5.65-5.noarch.rpm
#rpm -ivh perl-URI-1.21-7.noarch.rpm

4.添加HeartBeat的用户
#groupadd haclient
#useradd hacluster -g haclient

5.安装HeartBeat
#tar -zxf heartbeat-2.0.4.tar.gz
#cd heartbeat-2.0.4
#./ConfigureMe configure
#make
#make install
#cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
#cp ldirectord/ldirectord.cf /etc/ha.d/

6.配置ha.cf
node顺序最好按照实际上的master和slave的顺序配置,保持两台服务器上的一致
#vi ha.cf
logfile /var/log/ha-log
keepalive 2
deadtime 10
warntime 10
initdead 20
ucast eth1 192.168.0.204 #如果只有两台可以通过udp通讯心跳信号
auto_failback on
node master #按照顺序第一台为Master
node slave

注意:
默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。
所以当网络中断时,并不会进行master和slave之间的切换。
可以通过ipfail插件,设置'ping nodes'来解决这一问题。详细说明参考hearbeat文档。
加上如下配置
#ping 192.168.136.1 172.16.0.1
ping_group group1 192.168.210.205 192.168.210.206 #当两个ip都不通时认定server死亡。否则正常。
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root

7.配置/etc/ha.d/haresources
#vi haresources
master IPaddr::192.168.210.203/32/192.168.210.203

在测试情况下无须配置后面调用的脚本.只要以上配置即可
在实际LVS heartbeat环境中配置文件如下
master IPaddr::192.168.210.203/32/192.168.210.203 ldirector
由于ldirector会自动修改LVS的配置,所以无须加上ipvsadm

注意:
这个文件指定同步的服务以及主机是什么.两台机器上的这个文件一定要一致
在/etc/ha.d/haresources中指定的 master 将是 Active/Standby 模式中的主主机。

add by ready
Active/Active模式使用不同的VIP提供服务器。所以master和slave的ip地址不同。假设:slave的ip为192.168.210.204。
/etc/ha.d/haresources文件格式为:
master IPaddr::192.168.210.203/32/192.168.210.203 ldirector
slave IPaddr::192.168.210.204/32/192.168.210.204

Active/Active模式ldirectord.cf文件内容必须相同,也就是两个VIP都需要配置。HeartBeat在两台服务器都正常的情况下,会依据haresources 服务器名称来启动对应ip和服务。当一台死亡时另外一台接管。

8.配置/etc/ha.d/authkeys
这个文件用来配置心跳信号所采用的加密方式
#chmod 600 authkeys
#vi authkeys
auth 1
1 crc

实际心跳信号由于采用独立的子网.所以可以只采用crc来验证心跳信号

9.配置ldirector
#vi /etc/ha.d/ldirectord.cf
配置如下:
# Global Directives
checktimeout=3
checkinterval=1
#fallback=127.0.0.1:8080#fallback的调度端口
autoreload=yes
logfile="/var/log/ldirectord.log"
#logfile="local0"
quiescent=yes

# A sample virual with a fallback that will override the gobal setting
virtual=192.168.210.203:8080 #调度器的虚拟IP和调度端口
real=192.168.210.205:8080 gate #Real ServerA的IP和调度端口
real=192.168.210.206:8080 gate #Real ServerB的IP和调度端口
#fallback=127.0.0.1:8080 gate #fallback的调度端口(若LVS机器不作fallback,此项可以屏蔽)
service=http #ldirectord测试的所用的应用层协议
request="/.test" #ldirectord定时监控的服务页面
receive="TEST" #ldirectord测试服务页面所返回的消息
scheduler=wrr #ipvsadm使用的调度算法
#persistent=600
#netmask=255.255.255.255
protocol=tcp #ldirectord是用的通讯协议

上面所增加的request和receive配置需要在Real Server上的web根目录下增加“.test”文件,
并且文件的内容为“TEST”,作为ldirectord定期访问的测试页面。

add by ready
附加几个常用命令。
同步ha.cf和authkeys命令
/usr/share/heartbeat/ha_propagate
手动接管
/usr/share/heartbeat/hb_takeover

 

10.参考文章
http://zh.linuxvirtualserver.org/node/95
http://mshtyu.dns0755.net/index.php?mode=1&page=8
http://www.linuxsky.net/html/200603/2521.html

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment