搭建简单的ha集群
2015-12-16 18:03
211 查看
HA为高可用集群,原理如图
其中0.111是web1的eth0地址,0.158是web2的eth0地址,流动IP是外网访问IP,用户使用流动IP(VIP)来访问网站,而11.11,11.12是内网IP,可通过内网IP对网站同步减小压力
例子:把nginx作为HA服务,
准备两台Linux虚拟机CentOS6.5即可,修改hostname(方便记忆)master,slave。并分配IP地址(内网和外网),eth0和eth1(关闭虚拟机,添加物理网卡)
master:eth0:192.168.3.116
eth1:192.168.30.116
slave: eth0:192.168.3.125
eth1:192.168.30.125
cp主从的ifcfg-eth0 ifcfg-eth1,修改ifcfg-eth1,只需要下图即可
重启网络,service network restart,若发现启动不成功,则先停止NetworkManager服务,service NetworkManager stop。
以下为主从机上同样操作:
1,关闭防火墙,iptables selinux
2.在hosts中添加代理。vim /etc/hosts
192.168.3.116 master
192.168.3.125 slave
3.yum安装heartbeat服务,因为heartbeat在epel源
yum install -y epel-release或者rpm -ivh 'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm',
主从都要安装heartbeat,libnet,nginx服务,yum install -y heartbeat* libnet nginx(可编译安装,本例使用编译安装的nginx)
以下主从分开操作
主:安装完成,进入heartbeat目录cd /usr/share/doc/heartbeat-3.0.4/,把authkeys,ha.cf,haresources拷贝/etc/ha.d下cp authkeys ha.cf haresources /etc/ha.d/ cd /etc/ha.d
编辑authkeys
vi authkeys //加入或更改为auth 3
3 md5 Hello!
退出修改权限
chmod 600 authkeys
编辑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 eth1 192.168.30.125
auto_failback on
node master
node slave
ping 192.168.30.1
respawn hacluster /usr/lib/heartbeat/ipfail
其中ucast定义的是从的eth1地址,node分别为主从的hostname,其他含义见书P164。
编辑haresources,添加vip及nginx服务
master 192.168.3.110/24/eth0:0 nginx,master为主的hostname,192.168.3.110/24为VIP,后面是VIP对应的网卡名(自定义),后面为nginx服务(注:此时的nginx服务必须在/etc/init.d/下能自动启动nginx服务才行,创建启动nginx脚本参见lnmp搭建)。
把三个文件拷贝到从的ha.d目录下(scp命令:两台机子都要安装scp命令才行),在从上修改ha.cf中的ucast,值为主的eth1地址。
启动主从heartbeat,先主后从,等待一段时间,可查看主的ifconfig,是否有VIP的网卡名称及地址,以及使用ip add查看,并查看nginx服务是否启动ps aux |grep nginx,只用主上nginx服务是启动的。
测试:
在nginx目录下index.html文件下写入不同的内容,浏览器输入VIP查看内容
停止master的heartbeat服务,查看网页内容
测试脑裂
主和从上都down掉eth1网卡
ifdown eth1
本文出自 “沏茶品香” 博客,请务必保留此出处http://chinawu.blog.51cto.com/10692884/1725362
其中0.111是web1的eth0地址,0.158是web2的eth0地址,流动IP是外网访问IP,用户使用流动IP(VIP)来访问网站,而11.11,11.12是内网IP,可通过内网IP对网站同步减小压力
例子:把nginx作为HA服务,
准备两台Linux虚拟机CentOS6.5即可,修改hostname(方便记忆)master,slave。并分配IP地址(内网和外网),eth0和eth1(关闭虚拟机,添加物理网卡)
master:eth0:192.168.3.116
eth1:192.168.30.116
slave: eth0:192.168.3.125
eth1:192.168.30.125
cp主从的ifcfg-eth0 ifcfg-eth1,修改ifcfg-eth1,只需要下图即可
重启网络,service network restart,若发现启动不成功,则先停止NetworkManager服务,service NetworkManager stop。
以下为主从机上同样操作:
1,关闭防火墙,iptables selinux
2.在hosts中添加代理。vim /etc/hosts
192.168.3.116 master
192.168.3.125 slave
3.yum安装heartbeat服务,因为heartbeat在epel源
yum install -y epel-release或者rpm -ivh 'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm',
主从都要安装heartbeat,libnet,nginx服务,yum install -y heartbeat* libnet nginx(可编译安装,本例使用编译安装的nginx)
以下主从分开操作
主:安装完成,进入heartbeat目录cd /usr/share/doc/heartbeat-3.0.4/,把authkeys,ha.cf,haresources拷贝/etc/ha.d下cp authkeys ha.cf haresources /etc/ha.d/ cd /etc/ha.d
编辑authkeys
vi authkeys //加入或更改为auth 3
3 md5 Hello!
退出修改权限
chmod 600 authkeys
编辑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 eth1 192.168.30.125
auto_failback on
node master
node slave
ping 192.168.30.1
respawn hacluster /usr/lib/heartbeat/ipfail
其中ucast定义的是从的eth1地址,node分别为主从的hostname,其他含义见书P164。
编辑haresources,添加vip及nginx服务
master 192.168.3.110/24/eth0:0 nginx,master为主的hostname,192.168.3.110/24为VIP,后面是VIP对应的网卡名(自定义),后面为nginx服务(注:此时的nginx服务必须在/etc/init.d/下能自动启动nginx服务才行,创建启动nginx脚本参见lnmp搭建)。
把三个文件拷贝到从的ha.d目录下(scp命令:两台机子都要安装scp命令才行),在从上修改ha.cf中的ucast,值为主的eth1地址。
启动主从heartbeat,先主后从,等待一段时间,可查看主的ifconfig,是否有VIP的网卡名称及地址,以及使用ip add查看,并查看nginx服务是否启动ps aux |grep nginx,只用主上nginx服务是启动的。
测试:
在nginx目录下index.html文件下写入不同的内容,浏览器输入VIP查看内容
停止master的heartbeat服务,查看网页内容
测试脑裂
主和从上都down掉eth1网卡
ifdown eth1
本文出自 “沏茶品香” 博客,请务必保留此出处http://chinawu.blog.51cto.com/10692884/1725362
相关文章推荐
- 从e租宝被查 看P2P网站安全
- 使用lightProbe来模拟动态物体的照明shader
- CocoaPods安装和使用教程
- 归档 Archive、解档Unchive、 XML(一)
- 史上最全!信息安全入门指南<转>
- JavaWeb学习之监听器
- android 5.0 API新增特点和改进
- 奇葩的mysql问题
- Spring并发访问的线程安全性问题
- Android加壳
- NSFileHandle 、 沙箱机制 、 属性列表
- PhpEclipse插件
- c++获取http返回的json数据
- swift POS8583报文组装工具
- 线段树求解有序(可在过程中删除元素)第K大
- iOS扫描本地音频文件及后台播放
- JavaScript基础学习<五>对象参数引用
- 通知(Notification) 、 应用间通信(一)
- [Java学习] A星算法Java实现
- iOSApp提交上架store详细流程