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

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

  [复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-25 09:03:46 | 显示全部楼层 |阅读模式
HA即(high available)高可用,又叫做双机热备。简单的理解就是,机器A和机器B,正常是A提供服务,B待命闲置,当A宕机或则服务器宕掉,会切换至B机器继续提供服务,常用实现高可用开源软件有hearbeat和keepalived,其中keepalived有负载均衡的功能。
QQ截图20161125090331.png
如图所示为一个HA架构,一个交换机下面有两台机器Web1和Web2,其中Web1为主节点,正常是它提供服务,而Web2备用节点是闲置的。Web1和Web2中间有一根心跳线,检查对方的存活状态。流动IP,也叫vip是对外提供服务的ip,正常情况下是配置在Web1上的,当Web1宕机后,Web2会自动配置该vip,对外提供服务。
原理:
两个web服务器,通过心跳线进行通信,当主节点服出现务异常,备用节点通过探测判断主节点是否存活,若是不存活,就把服务接过来。
实验:使用heartbeat做HA集群,并且把nginx服务作为HA对应的服务。准备工作:
两台机器,都是centos6.7,网卡ech0 IP
master 192.168.134.135
slave 192.168.134.138
eth0:1流动IP(VIP)192.168.134.201
实验准备hostname分别为master和slave
主:
hostname master
vim /etc/sysconfig/network
HOSTNAME=master                          
从:
hostname slave
vim /etc/sysconfig/network
HOSTNAME=slave
关闭防火墙和安全机制
iptables -F
/etc/init.d/iptables save
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
主从绑定hosts文件
vim /etc/hosts
192.168.134.135 master
192.168.134.138 slave
安装epel扩展源
wget'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm'
rpm -ivh epel-release-6-8_32.noarch.rpm
安装heartbeat
主从都要安装
主:
yum install -y heartbeat
yum install -y libnet
yum install -y nginx
从:
yum install -y heartbeat
yum install -y libnet
yum install -y nginx

实验配置主上:
cd /usr/share/doc/heartbeat-3.0.4
cp authkeys ha.cf haresources /etc/ha.d
cd /etc/ha.d
vim authkeys                                                                                       //用来验证两个机器主从通信
//修改或者增加
auth 3
3 md5 Hello!                                                                                        //不同级别,3居中,1简单,2复杂
chmod 600 authkeys                                                                         //只让root有权限,,提高安全性
vim haresources
//删除或者增加一行
master 192.168.134.201/24/eth0:1 nginx      //IP是流动IP(vip),虚拟IP,对外提供服务的IP
//master是主节点的hostname192.168.134.201/24表示一个网段 eth0:1vip设备名 nginx做集群的服务

> ha.cf                                                              #清空
vim ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth0 192.168.134.138
auto_failback on
node   master
node   slave
ping 192.168.134.3
respawn hacluster /usr/lib/heartbeat/ipfail
解释含义:
//--debugfile /var/log/ha-debug -- 该文件保存heartbeat
logfile /var/log/ha-log -- heartbeat的日志文件
logfacility    local0 --
keepalive 2 -- 心跳的时间间隔,默认时间单位为秒
deadtime 30 -- 超出该时间时间间隔为收到对方节点的心跳,则认为对方已死亡
warntime 10 -- 超出该时间时间间隔为收到对方节点的心跳,则发出警告并记录到日志中
initdead 60  -- 在某些系统上,系统启动或重启之后需要经过一段时间网络才能恢复正>常工作,该选项用于解决这种情况生产的时间间隔。取值至少为deadtime的两倍
udpport 694 -- 设置广播通信使用的端口,694为默认使用端口。
ucast eth0 192.168.134.138 对方的(主或从)的ip和网卡 -- 设置对方机器心跳检测的
网卡和IP
auto_failback on
node    master 主的主机名
node    slave从的主机名
ping 192.168.134.3 裁判的IP,这个要功能强大的IP,如网关
respawn hacluster /usr/lib/heartbeat/ipfail  -- 指定hearbeat一同启动和关闭的进程,该进程被自动监听,遇到故障则重新启动,最常用的进程是ipfail,改进程用于检测和处理网络异常,需要配合ping语句ping node来检测网络连接。如果系统是64位,需要注意>该文件的路径。--//
ucast是心跳线。 haresource里面是vip
yum install –y openssh-clients                                     //scp远程同步命令
scp authkeys ha.cf haresources192.168.134.138:/etc/ha.d/

从上:
只修改
vim /etc/ha.d/ha.cf
把ucast eth0 192.168.134.138改为ucast eth0 192.168.134.135
实验配置完成验证实验主上:
/etc/init.d/heartbeat start
echo "111111111111" >/usr/share/nginx/html/index.html                     //nginx默认界面
ifconfig
//看是否有eth0:1
ps aux |grep mginx
//看是否有nginx进程
从上:
/etc/init.d/heartbeat start
echo "222222222222" >/usr/share/nginx/html/index.html
//在浏览器输入流动IP,这个IP是对外的,用户访问IP,可用apache指定虚拟主机
192.168.134.201
此时显示111111111111
主上:
//当主上服务宕机,流动IP会在slave上
/etc/init.d/heartbeat stop
//刷新浏览器
此时显示222222222222
/etc/init.d/heartbeat start
//刷新浏览器
此时显示111111111111


运维网声明 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-305255-1-1.html 上篇帖子: heatbeat-gui实现基于nfs的mysql高可用集群 下篇帖子: Heartbeat 源码安装报错解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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