Ubuntu10.04.4 Server下基于HeartBeat的Web应用高可用集群

走远了吗. 提交于 2019-12-01 11:05:24

Ubuntu下基于HeartBeat的Web应用高可用集群

概述 1

网络拓朴 2

环境配置信息 2

环境搭建 3

搭建实验环境节点A 3

A机的HeartBeat安装、配置 4

搭建实验环境节点B 5

B机的HeartBeat安装、配置 6

测试HeartBeat 6

启动heartbeat服务 6

访问集群ip 8

模拟ubuntu-node-a宕机 9

 

概述

申明:这只是我照着网络上的相关技术文档做实验后的整理

利用VirtualBox部署一台完整环境(lamp+heatrbeat)并配置,而后利用自带的镜像复制功能,复制出另外一台虚机,更改好hostname和network后,同时启动心跳服务即可。在VirtualBox中的虚机列表截图如下:

 

网络拓朴

 

环境配置信息

ubuntu-10.04.4-server-i386-nodeA

节点hostname:ubuntu-node-a

ubuntu-10.04.4-server-i386-nodeB

节点hostname:ubuntu-node-b

cluster

虚拟集群ip              192.168.1.200

其中集群 IP 不能和LAN(包括本机)的IP 冲突,且配置/etc/ha.d/haresources文件

 

环境搭建 

搭建实验环境节点A

注:我的电脑(宿主机)在家里的一个局域网内,分配的ip为0段。

在VirtualBox4.3上安装个操作系统为Ubuntu Server 10.04.4的双网卡主机,主机硬件配置如下:

系统:512M内存  单核处理器

网络:网卡1>网桥网卡  网卡2>仅主机(Host-Only)适配器

查看主机名:#cat /etc/hostname

 

修改hosts文件:#vi /etc/hosts

 

网络查看、并配置成如下:

 

以上配置完后重启生效

 

A机的HeartBeat安装、配置

注意:将源配置为:http://old-releases.ubuntu.com/ubuntu/(国内163等源对旧版本的ubuntu已不支持了

安装HeartBeat

HeartBeat的自动安装命令为(手动安装需要解决包的依赖关系问题)

# apt-get install heartbeat

安装后在/usr/share/doc/heartbeat目录里找到authkeysha.cf、haresources三个文件并放到/etc/ha.d 目录下。

 

执行以下命令

#cd /usr/share/doc/heartbeat

#gzip -d ha.cf.gz haresources.gz

#ls

 

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

#cd /etc/ha.d

Authkeys 文件配置

修改配置文件如下:

auth 3

3 md5 Hello! #其中Hello!为密钥

这个配置文件非常简单,就是在 auth 选择一个值。每个值对应一种算法,这个算法用于主节点和从节点间数据校验

这个配置文件权限必须是0600。

# chmod 0600 authkeys

 

ha.cf 文件配置

修改配置文件如下:

#日志文件位置

logfile /var/log/ha-log 

#采用eth1 的udp 广播用来发送心跳信息

bcast eth1

#主节点重启成功后,等到副节点down掉后拿回资源off:不立刻接过来

auto_failback off

# 多长时间判定节点死亡,默认30秒

deadtime 10

#节点名称,先后顺序不重要,主节点是在haresources文件中指定的,但是名称必须与uname -n 保持一致

node ubuntu-node-a

node ubuntu-node-b

haresources 文件配置

此文件用于配置集群的 IP 和使用集群的服务

配置方式 (让apache 服务和集群ip地址绑定)

ubuntu-node-a 192.168.1.200/24/eth0 apache2

其中ubuntu-node-a为主机名,可以通过uname –n查看;192.168.1.200为我定的集群ip(与家里的局域网其他地址不冲突),24为掩码

其他可选配置

heartbeat 的三个配置文件中还有一些其它可配置项,参考官方文档。

搭建实验环境节点B

VirtualBox-“管理”-“虚拟介质管理”-选中刚创建好的虚拟硬盘ubuntu-10.04.4-server-i386-nodeA.vdi文件-“复制”-下一步。。。-输入要创建的新虚拟硬盘名称:ubuntu-10.04.4-server-i386-nodeB、选择好存储的路径-点“复制”按钮-完成

创建新的虚拟机ubuntu-10.04.4-server-i386-nodeB,并用刚复制的现有虚拟硬盘,设置:

系统:512M内存  单核处理器

网络:网卡1>网桥网卡  网卡2>仅主机(Host-Only)适配器

修改主机名要修改vi /etc/hostname文件

 

修改hosts文件:#vi /etc/hosts

 

网络查看、并配置成如下:

 

以上配置完后重启生效

B机的HeartBeat安装、配置 

虚拟磁盘是复制过来的,已经安装和配置过了

测试HeartBeat 

启动heartbeat服务

分别启动主节点和副节点的心跳服务

#service heartbeat start

A节点的网络配置信息

 

可以看到集群IP 自动配置到主节点ubuntu-node-a上了

B节点的网络配置信息

 

ubuntu-node-b则没有看到集群ip

访问集群ip

 

模拟ubuntu-node-a宕机

我们a节点停止heartbeat服务或关闭a节点主机

#service heartbeat stop 

查看备机b节点的网络,可以看到集群ip加到了eth0上了

 

查看b节点日志文件(/var/log/ha.log)

 

可以看到,节点b发现节点a异常,然后自动将集群IP配置给自己,并向全网发送广播,于是集群ip依然能够访问

至此web应用高可用集群架设完毕!


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!