文档章节

Heartbeat V1+NFS实现高可用apache

小马就是神
 小马就是神
发布于 2016/03/12 21:55
字数 1758
阅读 17
收藏 1

Heartbeat V1+NFS实现高可用apache

实验拓扑:

输入图片说明

实验环境:

OS:CentOS-6.7-x86_64

Node1:

IP:eth0,192.168.1.4
VIP:eth0:0,192.168.1.3

Node2:

IP:eth0,192.168.1.5
VIP:eth0:0,192.168.1.3

NFS+NTP:

IP:192.168.1.6

需要资源:VIP、httpd、网页文件

实验流程:

配置高可用集群的前提:

1、时间必须保持同步:使用ntp服务器

[root@node3 ~]# yum install ntp
[root@node3 ~]# vim /etc/ntp.conf
restrict 192.168.1.0 mask 255.255.255.0 nomodify
server 127.127.1.0
fudge 127.127.1.0 stratum 1

启动服务:

[root@node3 ~]# chkconfig ntpd on
[root@node3 ~]# service ntpd start

各节点添加对时任务:

[root@node1 ~]# crontab -e
*/5 * * * *	/usr/sbin/ntpdate 192.168.1.6 &> /dev/null

2、节点必须名称互相通信:

编辑/etc/host 解析节点名称:

[root@node1 ~]# vim /etc/hosts
192.168.1.4	node1.chencer.org node1
192.168.1.5	node2.chencer.org node2

3、ssh密钥认证进行通信;

节点间ssh互信认证:

[root@node1 ~]# ssh-keygen -t rsa
[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2

NFS:

提供共享网页文件:

[root@node3 ~]# mkdir -p /web/share
[root@node3 ~]# echo "share.chencer.org" > /web/share/index.html
[root@node3 ~]# setfacl -R -m u:apache:rwx /web/share/

安装服务,设置共享目录:

[root@node3 ~]# yum install nfs-utils
[root@node3 ~]# vim /etc/exports
/web/share 192.168.1.0/24(rw,async,no_root_squash)

启动服务:

[root@node3 ~]# chkconfig nfs on
[root@node3 ~]# service nfs start

Node1和Node2:

安装配置nfs工具和httpd服务:

[root@node1 ~]# yum install nfs-utils httpd
[root@node1 ~]# mkdir -p /web/share
[root@node1 ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/web/share"

保证httpd服务开机不自动启动:

[root@node1 ~]# chkconfig httpd off

安装heartbeat依赖的软件:

[root@node1 ~]# yum install PyXML pygtk2-devel perl-TimeDate gettext-devel libtool-ltdl libnet net-snmp-libs
注意:libnet来自于epel源;

安装heartbeat:

[root@node1 heartbeat2]# 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

查看安装heartbeat 生成文件:

[root@node1 heartbeat2]# rpm -ql heartbeat | less
/etc/ha.d/	\\:配置文件目录;
/usr/share/doc/heartbeat-2.1.4/authkeys	\\:各节点信息传递使用的密钥;
/usr/share/doc/heartbeat-2.1.4/ha.cf	\\:heartbeat主配置文件模板;
/usr/share/doc/heartbeat-2.1.4/haresources	\\:资源配置文件模板;
[root@node1 ~]# cp /usr/share/doc/heartbeat-2.1.4/{authkeys,ha.cf,haresources} /etc/ha.d/

配置heartbeat服务:

生成密钥并配置密钥文件:

[root@node1 ~]# openssl rand -hex 8
7a3b9f396970a75b
[root@node1 ~]# vim /etc/ha.d/authkeys
auth 1
1 md5 7a3b9f396970a75b
[root@node1 ~]# chmod 600 /etc/ha.d/authkeys

/etc/ha.d/ha.cf配置文件部分参数详解:

autojoin none	\\:集群中的节点不会自动加入;
logfile /var/log/ha-log	\\:指名heartbaet的日志存放位置;
keepalive 2	\\:指定心跳使用间隔时间为2秒(即每两秒钟在eth0上发送一次广播);
deadtime 30	\\:指定备用节点在30秒内没有收到主节点的心跳信号后,则立即接管主节点的服务资源;
warntime 10	\\:指定心跳延迟的时间为十秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务;
initdead 120	\\:在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍;
udpport 694	\\:设置广播通信使用的端口,694为默认使用的端口号;
baud 19200	\\:设置串行通信的波特率;
bcast eth0	\\:Linux指明心跳使用以太网广播方式,并且是在eth0接口上进行广播;
mcast eth0 225.0.0.1 694 1 0	\\:采用网卡eth0的udp多播来组织心跳,一般在备用节点不止一台时使用;
ucast eth0 192.168.1.3	\\:采用网卡eth0的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址;
# bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的三种方式,任选其一即可。
auto_failback on	\\:用来定义当主节点恢复后,是否将服务自动切回,heartbeat的两台主机分别为主节点和备份节点。
# 主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点,如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。
stonith baytech	/etc/ha.d/conf/stonith.baytech	\\:stonith的主要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争用一个资源的情形发生。保证共享数据的安全性和完整性。
watchdog /dev/watchdog	\\:该选项是可选配置,是通过heartbeat来监控系统的运行状态;
# 使用该特性,需要在内核中载入“softdog”内核模块,用来生成实际的设备文件,如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入“insmod softdog”加载该模块。然后输入“grep misc /proc/devices”(应为10),输入“cat /proc/misc |grep watchdog”(应为130)。最后,生成设备文件:“mknod /dev/watchdog c 10 130”。即可使用此功能。
node node1.chencer.org	\\:主节点主机名,可以通过命令“uname –n”查看;
node node2.chencer.org	\\:备用节点主机名;
ping 192.168.1.10	\\:选择ping的节点,ping节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接;
ping_group group1 192.168.1.10 192.168.1.20	\\:类似于ping,ping一组ip地址;
apiauth pingd gid=haclient uid=hacluster
respawn hacluster /usr/local/ha/lib/heartbeat/pingd -m 100 -d 5s
# 该选项是可选配置,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重新启动。最常用的进程是pingd,此进程用于检测和监控网卡状态,需要配合ping语句指定的ping node来检测网络的连通性。其中hacluster表示启动pingd进程的身份。
compression bz2
compression threshold 2
# 对传输的数据进行压缩,是可选项

编辑/etc/ha.d/haresources添加节点资源:

[root@node1 ~]# vim /etc/ha.d/haresources
node1 IPaddr::192.168.1.3/24/eth0 Filesystem::192.168.1.6:/web/share::/web/share::nfs OCF::httpd

将以上三个文件复制到另一节点:

[root@node1 ~]# scp -r /etc/ha.d/{authkeys,ha.cf,haresources} node2:/etc/ha.d/

启动heartbeat服务:

[root@node1 ~]# service heartbeat start;ssh node2 ‘service heartbeat start’

查看日志:

[root@node1 ~]# tail -f /var/log/ha-log

输入图片说明

node1为主节点,查看各资源:

[root@node1 ~]# ifconfig

输入图片说明

[root@node1 ~]# df -h

输入图片说明

[root@node1 ~]# service httpd status
httpd (pid  41038) 正在运行...

浏览器访问VIP:

输入图片说明

node1切换为备用节点,node2为主节点:

[root@node1 ~]# cd /usr/lib64/heartbeat/
ha_propagate	\\:此脚本是将heartbeat的配置文件复制给其他节点;
hb_standby	\\:此脚本是将当前节点切换为备节点;
hb_takeover	\\:此脚本是将当前节点切换为主节点;
[root@node1 heartbeat]# ./hb_standby 
2016/01/21_23:39:08 Going standby [all].

查看看日志:

输入图片说明

资源已分配给node2:

输入图片说明 输入图片说明

[root@node2 ~]# service httpd status
httpd (pid  52367) 正在运行...

web页面访问依然正常:

输入图片说明

© 著作权归作者所有

小马就是神
粉丝 62
博文 53
码字总数 96195
作品 0
昌平
程序员
私信 提问
Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群

本章主要配置heartbeat v2基于haresources配置文件的httpd高可用集群。 ll 本文导航 · 前期准备 · 安装heartbeat v2 · node1、node2主机安装httpd · shared主机安装nfs · 配置httpd高可...

ccs_Chan
2017/05/07
0
0
heartbeat之part4

实现web高可用 [root@data-1-2 ha.d]# yum install httpd -y [root@data-1-1 ha.d]# yum install httpd -y root@data-1-1 ha.d]# /etc/init.d/httpd start root@data-1-2 ha.d]# /etc/init.......

泡海椒
2016/01/09
21
0
heartbeat+ldirectord+lvs实现高可用负载

Lvs + heartbeat+ldirectord高可用测试 1、实验环境 OS:centos 6.7 mini LVS mode :DR Heartbeat: version 2.1.4 Iptables:off Selinux:disabled Lvs master ip:192.168.6.122 Lvs bac......

Mr_chen
2017/09/04
0
0
简单高可用

高可用的目的是单点故障时 服务不受影响 本博客分前期准备.安装软件包.配置阶段.测试阶段.和添加NFS演示高可用演示高可用工作原理 前期准备 1主机名能解析 /etc/hosts配置文件中将三个主机名...

baglinux
2014/04/21
0
0
heartbeat+lvs构建高可用负载均衡集群

heartbeat+lvs实现高可用负载均衡原理: 两台heartbeat(ldirectord)主机构成高可用集群,同时监管着lvs(负载均衡集群)整体构成了heartbeat+lvs的高可用负载均衡集群.在使用heartbeat的时候加载...

Andy-xu
2014/05/13
0
6

没有更多内容

加载失败,请刷新页面

加载更多

Wondershare Recoverit - 专业数据恢复神器,支持U盘、存储卡等外部设备!

Wondershare Recoverit 今天带来的这款软件叫做Wondershare Recoverit,是一款专业实用的数据恢复软件,也是一款比较久的数据恢复软件了,可以恢复所有文件类型。 包括照片、视频、文档和其他...

_Somuns
21分钟前
6
0
SpringCloud gateway 修改返回数据

SpringCloud gateway 修改返回数据 版本说明 开源软件 版本 springboot 2.1.6.RELEASE jdk 11.0.3 gradle 主要引入了springboot 2.1,lombok plugins { id 'org.springframework.boot' v......

buddie
今天
9
0
PHP实现单人多人聊天源码免费分享 | 电脑报修系统

源码清单 1. 简易版登陆式聊天源码。 2. 电脑报修轻系统源码。 3. 关注下面公众号回复“聊天”,免费获取。 聊天系统 虽然微信,QQ是即时通讯的元老。但是他们限制很多,所以很多人都想做一个...

北桥苏
今天
6
0
跟面部识别开愚人玩笑?做一个时尚口罩就能实现

全文共3208字,预计学习时长6分钟 图片来源:Upsplash/Pavel Anoshin 目前,人脸识别的使用率正在不断上升,随之而来关于面部识别道德问题的争论也愈发激烈。从机场到社交媒体,面部识别的应...

读芯术
今天
1
0
Git同步更新操作GitHub和码云仓库上面的代码

一、前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃...

郑清
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部