加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux集群学习实验:使用heartbeat实现对httpd的高可用

发布时间:2022-11-16 19:03:33 所属栏目:Linux 来源:未知
导读: 文章标签heartbeathttpd文章分类Linux系统/运维
?著作权归作者所有:来自51CTO博客作者土豆Hero的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、实验环境:如下图所示:两台服

文章标签heartbeathttpd文章分类Linux系统/运维

?著作权归作者所有:来自51CTO博客作者土豆Hero的原创作品,请联系作者获取转载授权,否则将追究法律责任

一、实验环境:如下图所示:两台服务器节点,一台客户端通过交换机互连,相关数据规划如下:设备名称IP地址主机名客户端192.168.110.2Client(win7)服务器1192.168.110.128node1.yang.com服务器2192.168.110.129node2.yang.com

高俊峰linux高端集群实战视频教程_集群linux_linux集群视频全集 高俊峰

二、配置步骤及说明

准备工作a.主机名解析在heartbeat中,节点之间的通信使用的节点主机名称,因此必须确保每台主机的名称惟一,并且通过主机名能够访问到对应的IP地址。建议修改每个节点的/etc/hosts文件,使各节点保持一致:[root@node1 ha.d]# cat /etc/hosts192.168.110.128 node1 node1.yang.com192.168.110.129 node2 node2.yang.comb.主机互信在集群中,建议使用集群主来管理整个集群,需要频繁的从主远程登录其他的成员,因此建议配置主机互信避免每次都输入密码进行操作。[root@node1 .ssh]# ssh-keygen -t rsa //全部回车,使用空密码即可,此时会在/root/.ssh目录中产生id_rsa.pub的文件[root@node1 .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2//在节点1上将id_rsa.pub拷贝到node2即可。Node2上的配置与此类似。

安装heartbeat软件由于在CENTOS6的YUM源中没有配置有heartbeat,因此需要安装额外的YUM源:a.获取YUM源:wget rpm -ivh epel-release-6-6.noarch.rpmb.Yum安装heartbeatYum install –y heartbeat即可,安装完成后可以使用rpm –ql heartbeat |less查看一下安装产生的相关文件。

Heartbeat安装完成后,其工作目录为/etc/ha.d目录,工作依赖于ha.cf,haresources以及authkeys三个文件,这三文件需要手工从安装的帮助路径拷贝到/etc/ha.d目录。#cp-p /usr/share/doc/heartbeat-3.0.4/{ha.cf,authkeys,haresources} /etc/ha.d/

配置ha.cf文件该文件为主配置文件,其中定义了相关日志文件位置、成员节点的信息、消息事件层通信的机制(单播、组播还是广播)等,在我们的场景中需要修改如下的事项,去掉相应行前面的注释标志#:[root@node1 ha.d]# cat /etc/ha.d/ha.cfdebugfile /var/log/ha-debug //用于观察heartbeat事务行为logfile /var/log/ha-log//记录相关的日志udpport 694//通信端口694mcast eth0 225.0.0.1 694 1 0//采用组播通信机制auto_failback on//当主节点恢复时,资源回切node node1.yang.com//定义两个node,分别使用其主机名node node2.yang.comping 192.168.110.2//由于集群只有2个节点,需要借助ping进行检测

配置authkeys文件authkeys为成员节点通信的时候采用的加密机制确保通信安全,有三种加密机制,分别为CRC,MD5以及SHA。写法较简单,如下:auth 3//定义认证采用的id3 md5 Hello!//定义该id所对应的认证算法以及密钥该文件是为了确保节点间通信的安全性,建议配置权限为600.

配置haresources文件haresouces文件为状态为主的节点需要启用的资源,以及状态为备的节点需要关闭的资源。资源以行为单位,格式如下:nodenameresources1 resource2 …其中nodename必须为ha.cf文件中配置的其中一个节点名称,用于表示资源希望运行在的那个服务器,称为集群主服务器。Resources之间使用空格隔开,这些resources实际上是heartbeat可以调用的脚本,其中IPaddr为软件提供的脚本,其他的脚本位于/etc/ha.d/rc.d/目录中;除了这些脚本外,/etc/init.d/中的脚本,只有符合LSB风格的也可以被调用。因此安装httpd后的httpd脚本是可以直接调用的。如果resources有参数传递,需要使用::进行分隔,多个参数之间也使用::进行分隔。本实验为httpd提供高可用服务,因此需要用到的资源如下:a.对外提供服务的虚拟IPb.提供WEB服务的httpd脚本,(安装apache后就有此脚本)haresource文件配置:node1.yang.com 192.168.110.100/24/eth0 httpd到此三个关键的文件就配置完成了,现在将三个文件拷贝至备机:scp -p authkeys haresources ha.cf node2:/etc/ha.d/特别注意:备机与主机的文件保持一致即可,注意haresources文件中的node1.yang.com不能修改为node2.yang.com,原因前面已经解释过。

其他设置a.由于集群所需要使用的服务都交由heartbeat软件进行整体控制,因此在两台设备需要确保的是heartbeat在运行,而诸如vip,httpd等资源由heartbeat控制即可。因此可以设置heartbeat开机即启动,将httpd开机关闭。[root@node1 ha.d]# chkconfig --list heartbeatheartbeat0:off 1:off 2:on 3:on 4:on 5:on 6:off[root@node1 ha.d]# chkconfig --list httpdhttpd0:off 1:off 2:off 3:off 4:off 5:off 6:offb.为了方便后续测试,将两个节点的httpd的网页文件中写入不同的内容以示区分:[root@node1 ha.d]# cat /var/www/html/index.htmlComes from node1.yang.com[root@node2 ha.d]# cat /var/www/html/index.htmlComes from node2.yang.com

开启heartbeat服务a.启动主节点服务:Service heartbeat startb.在主节点上启动备节点上面的服务:ssh root@node2 “service heartbeat start”

测试a.在node1上面ip addr查看VIP地址:[root@node1 ha.d]# ip addr2: eth0:

linux集群视频全集 高俊峰_高俊峰linux高端集群实战视频教程_集群linux

mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:70:82:69 brd ff:ff:ff:ff:ff:ffinet 192.168.110.128/24 brd 192.168.110.255 scope global eth0inet 192.168.110.100/24 brd 192.168.110.255 scope global secondary eth0inet6 fe80::20c:29ff:fe70:8269/64 scope linkvalid_lft forever preferred_lft foreverb.从客户端访问

集群linux_高俊峰linux高端集群实战视频教程_linux集群视频全集 高俊峰

c.在集群主上面将eth0 down掉,再刷新页面:

高俊峰linux高端集群实战视频教程_集群linux_linux集群视频全集 高俊峰

d. 在集群备上机查看VIP:[root@node2 ha.d]# ip addr2: eth0:

mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:46:09:ee brd ff:ff:ff:ff:ff:ffinet 192.168.110.129/24 brd 192.168.110.255 scope global eth0inet 192.168.110.100/24 brd 192.168.110.255 scope global secondary eth0inet6 fe80::20c:29ff:fe46:9ee/64 scope linkvalid_lft forever preferred_lft forever分析:此时主节点ping192.168.110.2不通,同时与不能与备节点通信,因此主节点认为自己故障,将资源放弃;而备节点可以ping通192.168.110.2,而不能与主节点通信,因此认为自己正常,启用相应的资源。可以分析/var/log/ha-debug以及/var/log/ha-log日志中的详细过程。同时可以通过抓包看到节点间的通信以及各节点ping 192.168.110.2地址。

总结:本实验简要的说明了heartbeat如何为集群提供httpd的高可用,在真实的环境中应当是heartbeat为各种服务代理服务提供高可用集群linux,通过将反向代理将服务转发到后端服务的集群进行处理。而heartbeat为反向代理本身提供集群服务。可以看到所有用于提供服务的资源被heartbeat统一管理,在主节点上开启,当主节点出现故障经过集群判断新的主后,在新的主上面重新启用这些资源。

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!