heartbeat V2 高可用web服务器——初识

###heartbeat V2版本做测试,V2版本自带haresources和crm两种类型的CRM(集群资源管理器),这里使用haresoures测试。为简化测试步骤,这里也不使用共享存储(不用stonith资源隔离机制)。


###测试前准备。原理性的东西还是看看的好,要不然都不知道自己在做什么。“HA高可用原理”文章已经总结好,请自行查看。

规划:

机器一:ip地址=172.16.100.7      

机器二:ip地址=172.16.100.2

机器三:时间服务器 ip=172.16.0.1

我们假设使用172.16.100.1多为对外提供服务的地址——即VIP


1、两台机器安装web服务,并在工作目录下提供测试页面

yum install httpd -y

cd /var/www/html

vim 1.html  ###为了测试效果,我们在两台机器的web工作目录中提供名字一样但内容不一样的页面1.html 。因此随意写点东西。


2、安装heartbeat

yum install heartbeat  -y  --nogpgcheck  ##如果没有安装包,请自行查找heartbeat 的 yum安装源


3、配置两个机器的主机名字。必须配置,集群间通信基于此。

hostname  node1.magedu.com  ###机器1上执行   ,临时生效

vim /etc/sysconfig/network    ###机器1上执行,永久生效


hostname node2.magedu.com ###机器2上执行,临时生效

vim /etc/sysconfig/network   ##机器2上执行,永久生效


4、配置两台机器的名称解析(两台机器都执行相同操作),不能基于DNS,来进行主机名《=》ip地址的转换

vim /etc/hosts 

172.16.100.7  node1.magedu.com

172.16.100.2  node2.magedu.com



5、将我们规划的ip配置到两台机器上,并互相ping,是否能ping同

ifconfig eth0 172.16.100.7/16 ##机器一配置ip

ifconfig eth0 172.16.100.2/16 ##机器二配置ip

ping node2.magedu.com  ##在node1上


6、配置ssh互信通信。

ssh -keygen -t rsa -P ''  ##制作秘钥,机器一上执行

ssh-copy-id -i  ~/.ssh/id_rsa.pub   root@node12.magedu.com   ##把公钥拷贝到机器二上

然后到机器二上,执行上边相同的操作,把公钥复制到机器一上。


7、时间同步,必须。集群间需要基于这个标准来进行判断,集群中各节点是否有问题、是否隔离该节点。

service ntpd stop  ##两台机器上都需要关闭ntpd服务

chkconfig ntpd off  ##两台机器都关闭开机自启动ntpd服务

ntpdate 172.16.0.1 ##从172.16.0.1那台机器同步时间,随便找台机器配置上ip,作为ntpd服务器就行。

如果同步时间失败参看:http://www.blogjava.net/spray/archive/2008/07/10/213964.html


crontab -e     ##两台机器上都做成计划任务,每5分钟同步一次。必须 。crontab -l  ##查看计划任务

*/5 * * * *  /usr/sbin/ntpdate 172.16.0.1 &> /dev/null



8、配置heartbeat配置文件。两个机器都做相同的配置

###三个配置文件:authkeys ; ha.cf; haresources

rpm -ql  heartbeat  ##查看配置文件模板位置

cp   -p  authkeys   /etc/ha.d

cp   -p ha.cf   /etc/ha.d

cp   -p  haresources   /etc/ha.d

注意配置文件authkeys 权限必须是600,如果不是请调整。chmod 600 authkeys


vim /etc/ha.d/authkeys  ##设置集群间通信加密

auth 3

3 md5 Hello!

vim /etc/ha.d/ha.cf   ##heartbeat 工作的配置文件

bcast  eth0  ##开启广播

node node1.magedu.com  ##集群中的节点

node node2.magedu.com ##集群中的节点


vim  /etc/ha.d/haresources ##资源管理器使用的配置文件

node1.magedu.com IPaddr::172.16.100.1/16/eth0 httpd   ##表示node1节点是主节点,公网ip资源172.16.100.1/16,这个ip地址设置到eth0上。httpd表示要启动的服务是httpd(就是/etc/r.d/init.d目录下的sysV启动脚本。这里的脚本都是符合LSB标准的可用RA——资源代理) 。 IPaddr也是RA代理,是heartbeat提供的。位置在/etc/ha.d/resource.d目录下。这里的脚本是古老的heartbeat V1版本的RA。


注意,配置文件中的网卡,我的是eth0。你的请自行选择



9、启动heartbeat

service heartbeat start

tail -f /var/log/messages  ##查看启动日志,是否有问题

ip ad  ##查看公网地址172.16.100.1是否已经配置好

netstat -tulpn ##查看80端口是否开启


10、测试

浏览器中输入172.16.100.1/1.html  或者curl http://172.16.100.1/1.html

注意:防火墙需关闭 service iptables stop


/usr/share/heartbeat/hb_standby  ## 在主节点上执行,将主节点down掉。去节点2上看看ip和web服务是否已经起来了。再次在浏览器中测试。

 



11、我们使用nfs共享文件系统来作为两个web服务器的文件系统。(这样也很简单,不用使用stonith。)

vim  /etc/ha.d/haresources ##两个节点都修改配置。如下

node1.magedu.com IPaddr::172.16.100.1/16/eth0   Filesystem::172.16.0.1:/var/www/html::/var/www/html::nfs httpd


setenforce 0  ##必须关闭selinux,两个节点上都必须关闭。

pkill heartbeat  ##在两个节点上都关闭之间的heartbeat服务,如果之前启动着的话。因为重启有时候好慢。

service heartbeat  start ##在节点一上,重新启动heartbeat

ssh node2.magedu.com 'service heartbeat start' ##在节点一上启动节点2上的heartbeat服务。

tail -f /var/log/message  ##查看下日志,看看是否有问题。

ip ad   ##查看ip地址是否已经挂上了

/usr/share/heartbeat/hb_standby   ##模拟一台机器down掉。看看另一台机器是否能够讲资源拿走







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值