您的位置:首页 > 运维架构 > 网站架构

RHEL6上配置基于Heartbeat+LVS+ldirectord的高可用服务

2012-11-20 01:15 507 查看
RHEL6上配置基于Heartbeat+LVS+ldirectord的高可用服务

我的网络环境:

一、 前其他准备

1、 所需要的软件

heartbeat-2.1.3.tar.gz

MailTools-1.74.tar.gz

IO-Socket-INET6-2.65.tar.gz

Socket6-0.23.tar.gz

ipvsadm-1.24.tar.gz

libnet-1.1.4.tar.gz

2、 安装时所依赖的软件包

[root@Lvs-Master ~]$yum -y install make gcc-* glib2-* libxml2-* gzip2-* kernel-devel perl-*

二、 安装ipvsadm

[root@Lvs-Master ~]$ln -s /usr/src/kernels/2.6.32-71.el6.x86_64/ /usr/src/linux

[root@Lvs-Master ~]$tar xzvf ipvsadm-1.24.tar.gz >> /dev/null

[root@Lvs-Master ~]$cd ipvsadm-1.24

[root@Lvs-Master ~/ipvsadm-1.24]$make && make install

三、 安装heartbeat

1、 在此之前需要先依次安装这三个包

Socket6-0.23.tar.gz

IO-Socket-INET6-2.65.tar.gz

MailTools-1.74.tar.gz

详细的命令如下,其实可以写个for循环方便一些,不过本人比较懒,就这样吧

[root@Lvs-Master ~]$tar xzvf Socket6-0.23.tar.gz

[root@Lvs-Master ~]$cd Socket6-0.23

[root@Lvs-Master ~/ Socket6-0.23]$perl Makefile.PL

[root@Lvs-Master ~/ Socket6-0.23]$make && make install

[root@Lvs-Master ~]$cd ..

[root@Lvs-Master ~]$tar xzvf IO-Socket-INET6-2.65.tar.gz

[root@Lvs-Master ~]$cd IO-Socket-INET6-2.65

[root@Lvs-Master ~/ IO-Socket-INET6-2.65]$perl Makefile.PL

[root@Lvs-Master ~/ IO-Socket-INET6-2.65]$make && make install

[root@Lvs-Master ~]$cd ..

[root@Lvs-Master ~]$tar xzvf MailTools-1.74.tar.gz

[root@Lvs-Master ~]$cd tar xzvf MailTools-1.74

[root@Lvs-Master ~/ MailTools-1.74]$perl Makefile.PL

[root@Lvs-Master ~/ MailTools-1.74]$make && make install

[root@Lvs-Master ~/ MailTools-1.74]$cd ..

2、 安装libnet-1.1.4.tar.gz

[root@Lvs-Master ~]$tar xzvf libnet-1.1.4.tar.gz

[root@Lvs-Master ~]$cd libnet-1.1.4

[root@Lvs-Master ~/ libnet-1.1.4]$./configure && make && make install

3、 安装heartbeat

[root@Lvs-Master ~]$tar xzvf heartbeat-2.1.3.tar.gz

[root@Lvs-Master ~]$cd heartbeat-2.1.3

[root@Lvs-Master ~/heartbeat-2.1.3]$./ConfigureMe configure

[root@Lvs-Master ~/heartbeat-2.1.3]$groupadd haclient

[root@Lvs-Master ~/heartbeat-2.1.3]$useradd -g haclient hacluster

[root@Lvs-Master ~/heartbeat-2.1.3]$./ConfigureMe make –enable-fatal-warnings=no

[root@Lvs-Master ~/heartbeat-2.1.3]$make install

[root@Lvs-Master ~/heartbeat-2.1.3]$cp doc/{authkeys,haresources,ha.cf} /etc/ha.d/

[root@Lvs-Master ~/heartbeat-2.1.3]$cp ldirectord/ldirectord.cf /etc/ha.d/

四、 配置heartbeat

1、 配置heartbeat 的认证文件

Authkeys文件用于设定heartbeat的认证方式,该文件中有3种可用的认证方式:crc、sha1、md5,这里先用crc认证方式 ,配置如下

[root@Lvs-Master ~]$sed –i ‘/auth/s/^#//’ /etc/ha.d/authkeys

[root@Lvs-Master ~]$sed –i ‘/crc/s/^#//’ /etc/ha.d/authkeys

[root@Lvs-Master ~]$chmod 600 /etc/ha.d/authkeys #这个权限一定要改,否则认证过不去

2、 配置ha.cf

配置好的文件如下

[root@Lvs-Master ~]$cat /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log #指定heartbeat的日志存放位置

logfacility local0

keepalive 2 #指定心跳时间间隔为2s

deadtime 5 #如果指定备用节点在5s内没有收到主节点的心跳信号,则立即接管主节点的服务资源

initdead 12 #至少要为deadtime的2倍

udpport 694 #设置广播通信的端口,694为默认的端口

ucast eth1 10.10.10.2 #采用网卡eth1的UDP多播来组织心跳,后面跟双机中对方的IP地址

auto_failback on   #用来定义当主节点恢复后,是否将服务自动切回

node Lvs-Master #主节点主机名,可以通过“uname -n”查看

node Lvs-Backup #备用节点主机名

crm no

3、 配置haresources文件

Haresources文件用于指定双机系统的主节点,集群IP,子网掩码,广播地址以及启动的服务参数等集群资源,文件每一行可以包含一个或多个资源脚本名,资源脚本本之间用空格隔开,参数之间用两个冒号隔开。

[root@Lvs-Master ~]$cat /etc/ha.d/haresources | grep -v ^#

Lvs-Master 172.16.12.100 cluster ldirectord

#负载主节点主机名 虚拟IP地址 要有heartbeat管理的程序

4、 配置ldirectord文件

[root@Lvs-Master ~]$cat /etc/ha.d/ldirectord.cf | grep -v ^# | grep -v ^$

checktimeout=3 #判定Real Server出错的时间间隔

checkinterval=2 #指定Ldirectord在两次检查之间的间隔时间

fallback=127.0.0.1:80 #当所有的Real Server不能工作时,Web重定向的地址

autoreload=yes #选yes时,配置文件发生变化时,自动加载

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

quiescent=yes

virtual=172.16.12.100:80 #指定虚拟IP地址和端口号,在Virtual这行后面的行必须缩进4个空格或以一个tab字符进行标记

real=172.16.12.30:80 gate #指定Real Server服务器地址和端口号,同时设定LVS工作模式,用gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式

real=172.16.12.40:80 gate

fallback=127.0.0.1:80 gate

service=http #指定服务的类型

request="default.html" #Ldirectord根据指定Real Server,发送访问请求,检查Real Server上的服务是否正常运行,必须确保这里给出的页面地址是可以访问的

receive="Test Page" #指定请求和应答字符串,也就是default.html的内容

virtualhost=Lvs-Master #虚拟服务器的名称

scheduler=rr #指定调度算法

#persistent=600

#netmask=255.255.255.255

protocol=tcp #指定协议类型

checktype=negotiate #指定Ldirectord的检测类型

checkport=80 #指定监控端口号

5、 编辑cluster脚本文件

此脚本要放在/etc/init.d/ {网上找的,又改了下}

set Arp 当一台VS接管LVS服务时,可能会网络不通,这是因为路由器的MAC缓存表里无法及时刷新MAC.关于vip这个地址的MAC地址还是替换的VS的MAC,解决方法是使用arping命令.

[root@Lvs-Master ~]$chmod 755 /etc/init.d/cluster

[root@Lvs-Master ~]$chkconfig --add heartbeat

至此负载节点已经安装配置完毕,把一下文件拷贝到相应备用节点的目录:

authkeys,ha.cf,haresources,ldirectord.cf,cluster

备用几点只需要改动ha.cf文件中 “ucast eth1 10.10.10.1”中的ip地址为负载节点的eth1所对应的ip即可。其他配置完全相同。

五、RealServer的配置

1、 在真实节点上安装http服务,在制定存放网页的目录建立default.html文件,确保内容为”Test Page”

2、 在/etc/init.d/下建立脚本文件

[root@Lvs-Master ~]$cat /etc/init.d/lvs_rs

[root@Lvs-Master ~]$chkconfig –add lvsrs

[root@Lvs-Master ~]$chkconfig lvsrs on

六、启动Heartbeat+LVS集群系统

[root@Lvs-Master ~]$/etc/init.d/ldirectord restart

[root@Lvs-Master ~]$/etc/init.d/heartbeat restart

[root@Lvs-Master ~]$/etc/init.d/cluster restart

七、验证

访问没有问题,查看下日志

没有任何问题!
本文出自 “洋仔 Learning......” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: