设为首页 收藏本站
查看: 764|回复: 0

[经验分享] HA高可用集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-16 09:04:29 | 显示全部楼层 |阅读模式
一、 high available

HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务。 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有 heartbeat和keepalived,其中keepalived有负载均衡的功能。

HA也可以用在mysql,但是两台mysql之间必须有一个共享存储。

两台机器都必须是双网卡,各自用一条连接交换机,另一条互联(心跳线)。

本实验是在虚拟机下实现的,在虚拟机设置里面各自为两台机器增加多一块网卡。

新增的网卡设置为“Host-only(仅主机模式)”,不能设置为桥接模式。IP设置过程如下图:



新增的网卡,系统里面没有对应的ifcfg-eth1文件,直接复制ifcfg-eth0,并改名为ifcfg-eth1。

eth1文件只要保留几行即可:



1、两台机器分别修改hostname

vi /etc/sysconfig/network     重启后生效

分别修改为aminglinux1,aminglinux2

hostname aminglinux1(2)     更改主机名,重启后无效

bash                                    使更改的主机名生效


2、关闭防火墙,两台机器都要关闭

iptables -F    清除防火墙规则

service iptables save    保存防火墙规则(清除后)

setenforce    0        临时关闭selinux系统

vi /etc/selinux/config

SELINUX=disabled        永久关闭selinux系统

3、添加hosts记录

vi /etc/hosts
两台记分别添加对另一台机的host记录

172.18.18.230     aminglinux1

172.18.18.231    aminglinux2

4、安装epel扩展yum源

yum install -y epel-release        方便后面安装heartbeat

5、两台机上都安装heartbeat、libnet、nginx

yum install -y heartbeat*

yum install -y libnet

yum install -y nginx

6、主机器上(aminglinux1)配置

cd /usr/share/doc/heartbeat-3.0.4/

cp ha.cf haresources authkeys /etc/ha.d/

cd /etc/ha.d/


chmod 600 authkeys

vi authkeys   
    此文件是用来验证的,两个机器用心跳线通讯,确认对方是否存活。用这个文件来进行加密验证,避免其它机器随意的冒认主从机器。

模板文件内容如下

#auth 1
#1 crc                加密最弱的方式
#2 sha1 HI!        sha加密,加密最强的方式
#3 md5 Hello!    md5加密,加密比sha相对简单些
我们需要做一些修改,启用第三种

auth 3
#1 crc
#2 sha1 HI!        
3 md5 Hello!


vi haresoureces

    此文件是用来指定 主节点虚拟IP掌控的服务

aminglinux1 172.18.18.233/22/eth0:0 nginx

nginx服务必须在/etc/init.d/这个目录下,否则,上面的nginx将无法找到。

虚拟IP要用对外提供服务的IP段,不能用心跳线的那个IP段。

vi ha.cf        主要配置文件


debugfile /var/log/ha-debug    打开日志功能

logfile /var/log/ha-log            指定日志文件

logfacility     local0                错误日志级别

keepalive 2                    两台机器,心跳线检测,每2秒检测

deadtime 30                  检测对方机器宕机后,30后才确认是宕机

warntime 10                  检测对方机器宕机10秒后,发一个警告,写入日志中

initdead 60                    服务重启的情况下,等待60s,之后没有正常启动则取代它

udpport 694                  以广播的形式去检测是否存活

#baud   19200               以串口线直连的心跳线模式,才启用这个选

串口模式下,端口的选择:
#       serial  serialportname ...
#serial /dev/ttyS0      # Linux
#serial /dev/cuaa0      # FreeBSD
#serial /dev/cuad0      # FreeBSD 6.x
#serial /dev/cua/a      # Solaris
广播模式下,端口的选择:
#       What interfaces to broadcast heartbeats over?
#
#bcast  eth0            # Linux
#bcast  eth1 eth2       # Linux
#bcast  le0             # Solaris
#bcast  le1 le2         # Solaris
ucast eth1 192.168.126.102      

ucast就是直接用IP的方式去访问心跳线的网卡。这里要填对方心跳线的网卡跟IP

auto_failback on

主宕机并修复正常,从检测到主恢复后,主动把服务都交还给主,自己恢复从状态。

respawn hacluster /usr/lib/heartbeat/ipfail

heartbeat 启动的同时,启动ipfail,这个工具是实现心跳线相互检测的功能。

以hacluster这个用户去启动此工具,这个用户是启动heartbeat进程的用户。

ping 192.168.126.1   

        仲裁IP,主或从检测对方宕机的请求是否生效,由此设备来决定,一般选择网关

node    aminglinux1        主

node    aminglinux2        从


scp ha.cf haresources authkeys aminglinux2:/etc/ha.d/

将这三个配置文件复制到从机上

scp命令,两台机都安装openssh-clients才能使用。
7、从机器配置
chmod 600 authkeys

cd /etc/ha.d/
authkeysharesources文件不用修改

vi ha.cf    只需要改一点,ucast改为对方的IP即可。

ucast eth1 192.168.126.101


8、启动heartbeat服务

先主后从

service heartbeat start


Starting High-Availability services: INFO:  Resource is stopped

INFO:  Resource is stopped这个提示不是错误
仲裁是通过imcp协议去跟主从交流的,所以主从上都不能禁PING,否则会被认为是宕机状态


当心跳线断掉后,主从都会觉得对方宕机了,主从都会启动各项服务,从而浪费资源。

当心跳线恢复后,双方又都会放弃这些资源,导致服务不正常。所以,心跳线恢复后,从要重启下heartbeat服务



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-77801-1-1.html 上篇帖子: heartbeat v1 + ldirctord 下篇帖子: Heartbeat+DRBD+NFS高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表