热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux中如何配置heartbeatv2基于haresources配置文件的httpd高可用集群

这篇文章给大家介绍Linux中如何配置heartbeatv2基于haresources配置文件的httpd高可用集群,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望

这篇文章给大家介绍Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

配置heartbeat v2基于haresources配置文件的httpd高可用集群。

 ll  要求 

完全掌握heartbeat v2基于haresources配置文件的httpd高可用服务。

  前期准备 

1、heartbeat服务主机规划

主机接口ip服务用途
node1.chanedu.cometh0192.168.1.131

heartbeat

httpd

LAN数据转发

eth2192.168.2.131心跳信息链路

vip192.168.1.180提供给外部访问httpd的ip
node1.chanedu.cometh0192.168.1.132

heartbeat

httpd

LAN数据转发

eth2192.168.2.132心跳信息链路
shared.chanedu.cometh0192.168.1.150nfsLAN数据转发

2、架构图

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

3、配置yum源

rpm -ivh https://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm

4、同步时间

两个节点的时间必须一致,可以使用网络时间服务器或本地ntpd服务器同步事件,我这里直接同步网络时间服务器

ntpdate 202.120.2.101

5、节点名称和IP地址必须能互相解析,保证/etc/hosts文件中主机名的正反解析结果与‘uname -n’的名称一致

分别在node1和node2中的/etc/hosts添加下面的名称解析

echo "192.168.1.131    node1.chanedu.com    node1" >> /etc/hosts
echo "192.168.1.132    node2.chanedu.com    node2" >> /etc/hosts

6、配置节点心跳连接

node1和node2都使用eth2网卡互相连接,不经过交换机,直接用网线连接node1上的eth2和node2上的eth2,用作心跳检测

node1上的eth2:192.168.2.131
node2上的eth2:192.168.2.132

在node1和node2两台主机上分别增加一条主机路由,实现两台主机检测对端时通过eth2网卡来实现心跳检测

在node1上添加:

route add -host 192.168.2.132 dev eth2
# 这条命令的意思是从node1访问192.168.2.132(node2),走eth2网卡出去
echo "route add -host 192.168.2.132 dev eth2" >> /etc/rc.local

在node2上添加:

route add -host 192.168.2.131 dev eth2
# 这条命令的意思是从node1访问192.168.2.131(node1),走eth2网卡出去
echo "route add -host 192.168.2.131 dev eth2" >> /etc/rc.local

7、为了保证通信安全,节点之间使用ssh密码的方式进行通信,可以使用“ssh-keygen -t  rsa”命令产生密钥。

ssh-keygen -t rsa
ssh-copy-id root@192.168.1.132

  安装heartbeat v2 

由于heartbeat-pils在CentOS-6.5后被cluster-glue取代了,所以需要手动解决依赖关系

1、解决依赖关系

yum install perl-TimeDate net-snmp-libs libnet PyXML
rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm

注意:libnet在epel源中

  node1、node2主机安装httpd 

这里不演示

  shared主机安装nfs 

这里不演示

  配置httpd高可用集群 

1、复制ha.cf、haresources、authkey这三个文件至/etc/ha.d文件中

cd /usr/share/doc/heartbeat-2.1.4/
cp ha.cf haresources authkeys /etc/ha.d/
cd /etc/ha.d/
ls
authkeys  ha.cf  harc  haresources  rc.d  README.config  resource.d  shellfuncs

2、配置heartbeat的基本参数,直接编辑/etc/ha.d/ha.cf

vim /etc/ha.d/ha.cf 
grep -v "#" /etc/ha.d/ha.cf 
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacilitylocal0
keepalive 1000ms
deadtime 8
warntime 4
initdead 60
udpport694
ucast eth2 192.168.1.132
auto_failback on
nodenode1.chanedu.com
nodenode2.chanedu.com
ping 192.168.1.1

这里有一点要注意,上面的ha.cf配置是node1上的,node2上的配置要修改单播地址

ucast eth2 192.168.1.131

3、配置heartbeat资源,定义node1为主节点,直接编辑/etc/ha.d/haresources

vim /etc/ha.d/haresources
node1.chanedu.com       192.168.1.180/24/eth0   httpd

以上的ip地址即是vip,是向外提供httpd服务的地址,子网掩码为24位,从eth0接口配置别名

4、配置认证文件,编辑/etc/ha.d/authkeys

chmod 600 /etc/ha.d/authkeys
openssl hand -hex 12
6107510ab21f17a41d377135
vim /etc/ha.d/authkeys
auth 2
#1 crc
2 sha1 6107510ab21f17a41d377135
#3 md5 Hello!

5、将ha.cf、haresources、authkeys这3各文件copy至node2的/etc/ha.d/目录下,并保留文件权限

rsync -p /etc/ha.d/{
ha.cf,haresources,authkeys} root@192.168.1.132:/etc/ha.d/

6、设置node1和node2节点的httpd开机不自动启动,并停止httpd服务。

service httpd stop
chkconfig httpd off

7、启动heartbeat服务

在node1节点上启动heartbeat服务并查看是否存在eth0:0

service heartbeat start

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

在node1上启动node2的heartbeat服务

[root@node1 ha.d]# ssh node2 'service heartbeat start'
Starting High-Availability services: 
2017/05/08_23:46:22 INFO:  Resource is stopped
Done.
[root@node1 ha.d]# ssh node2 'ss -unl'
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port 
UNCONN     0      0                         *:694                      *:*     
UNCONN     0      0                         *:45373                    *:*

以上可以看到node2已经监听在UDP:694上了,正明node2已经成功启动。

  客户端访问测试 

在客户端访问192.168.1.180

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

可以访问,表示heartbeat的基本配置没有问题。接下来模拟node1宕机,这里直接停掉node1的heartbeat服务,看下是否能直接跳转到node2

root@node1 ha.d]# service heartbeat stop
Stopping High-Availability services: 
Done.

查看node2的IP地址,发现VIP资源已经被node2接管了。

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

再次访问客户端,httpd资源也已经转移到node2节点。

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

  基于nfs共享存储的httpd高可用 

配置集群服务中两个节点共享后端NFS文件系统资源,将shared主机添加一个共享文件夹并修改属主为apache用户

cat /etc/exports 
  /www/htdocs    192.168.1.0/24(rw,no_root_squash,async)
setfacl -m u:apache:rwx /www/htdocs/
echo "

Page in NFS Server.

" > /www/htdocs/index.html

修改node1的haresources资源配置文件,指定挂载共享NFS文件系统,并同步至node2节点的/etc/ha.d/目录下

vim /etc/ha.d/haresources
node1.chanedu.com       192.168.1.180/24/eth0   Filesystem::192.168.1.180:/www/var/shared::/var/www/html/::nfs httpd
rsync /etc/ha.d/haresources root@192.168.2.132:/etc/ha.d/
ssh node2 'service heartbeat stop'
service heartbeat stop
service network restart
ssh node2 'service network restart'
service heartbeat start
ssh node2 'service heartbeat start'

在客户端访问192.168.1.180,成功访问到了后端nfs共享存储的页面。

这里有一点需要注意,请确保node1和node2节点能够成功挂载并shared主机的共享目录,而后要使用curl命令访问下本机的。这里最好测试下,如果你的CentOS或者Redhat是最小化安装,默认是没有安装nfs-client客户端的,mount.nfs命令也就没有,如果没有就不能成功挂载nfs共享目录,那么HA就无法生效。

在node1和node2节点上挂载/www/htdocs目录至/var/www/html目录。

mount -t nfs 192.168.1.150:/www/htdocs /var/www/html
[root@node1 heartbeat]# curl http://192.168.1.131

 Page in NFS Server.

[root@node2 heartbeat]# curl http://192.168.1.132

 Page in NFS Server.

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

停止node1的heartbeat服务

ssh node1 'service heartbeat stop'

Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群

在/usr/share/heartbeat/目录下,有很多脚本文件,其中:

运行hb_standby脚本,指将自己变为备节点;比如在node1上运行hb_standby脚本,资源将被node2接管

运行hb_takeover脚本,指重启对方节点;比如,node1已经是备节点,在node1上运行hb_takeover脚本将重启node2节点,此时,node1认为node2宕机,所以node1将重新接管资源。

这里不演示了,很简单。

  总结 

1、基于haresources配置文件的heartbeat v2.x版本的httpd高可用集群实现起来是比较简单的,但是它的功能毕竟有限,如果需要更强大的功能,pacemaker无疑是比较好的选择。

2、因为最小化安装centos的原因,node2节点没有安装nfs-client等软件,没有mount.nfs命令,导致测试到后面node1资源一致不能转移到node2节点,排查了很多原因,最终找到罪魁祸首是node2无法挂载nfs共享文件系统的缘故,自己不细心导致实验时间变长,如果是在生产环境中,这种情况是不允许发生的。

关于Linux中如何配置heartbeat v2基于haresources配置文件的httpd高可用集群就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
author-avatar
竹林映uj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有