衡量在线时间:在线时间/在线时间+故障时间。

关于HA的第一个实验做得是heartbeat

 

首先必须得把所有的软件找齐。会省掉大量的时间。我就是在这上边浪费了很多时间。

这里需要两个虚拟机每个虚拟机上要有两个网卡,一个是eth0是用来网络通讯的、另一个是eth1 是作为备用的心跳通讯的。

Real 1 eth0 192.168.64.130

Eth1 10.1.1.1

Real 2 eth0 192.168.64.132

Eth1 10.1.1.2

还有个虚拟IP来作为客户端访问的。192.168.64.100

一.对虚拟机配置

1IP

2)节点名称和uname -n 必须一致。通过/etc/hosts解析。防止DNS当掉。

3ssh互信通信

4)时间必须同步

ssh互信通信

ssh-keygen -t rsa -f ~/.ssh/id_rsa -P''(null password )

ssh-copy-id -i .ssh/id_rsa.pub root@通信的IP

检验双机互信

ssh 通信IP ifconfig

下面是配置前的一些准备

(1)

Hostname  node1.boge.com    /配置主机名

为了下次开机这个主机名还能用。我们需要修改配置文件/etc/sysconfig/network hostname

剩下的是配置两个IP

/etc/hosts 为了防止DNS服务器宕机

192.168.64.132 node2.boge.com ha2

192.168.64.130 node1.boge.com ha1

10.1.1.1 ha1

10.1.1.2 ha2

能够实现都能ping 通。

两个虚拟机的配置基本相同。

二.安装软件包

这是需要的软件包

cluster-glue-1.0.5-6.el6.x86_64.rpm       heartbeat-3.0.4-1.el6.x86_64.rpm  heartbeat-libs-3.0.4-1.el6.x86_64.rpm              PyXML-0.8.4-19.el6.x86_64.rpm

cluster-glue-libs-1.0.5-6.el6.x86_64.rpm    perl-TimeDate-1.16-11.1.el6.noarch.rpm  resource-agents-3.9.2-12.el6.x86_64.rpm

安装过程中有很多依赖关系

例如在安装heartbeat 需要 rpm –ivh  heartbeat-3.0.4-1.el6.x86_64.rpmheartbeat-libs-3.0.4-1.el6.x86_64.rpm  这两个相互依赖的

 

 

三.接下来我们需要对heartbeat进行配置

首先 cd /usr/share/doc/heartbeat -3/

有三个配置文件需要复制到/etc/ha.d

配置文件

ha.cf 主配置文件 heartbeat的监测机制

haresources 资源文件 ip server

authkeys 认证文件

Cp ha.cf  authey  haresources /etc/ha.d

首先修改的是ha.cf(主服务器)

debugfile/var/log/ha-debug                 //调试日志文件
logfile /var/log/ha-log                           //
系统运行日志文件
logfacility     local0                               //
日志记录等级
keepalive2            //
心跳频率,2表示2秒;200ms则表示200毫秒
deadtime10          //
节点死亡时间,就是过了10秒后还没有收到心跳就认为主节点死亡
warntime10          //
告警时间
initdead 120          //
初始化时间
udpport694          //
心跳信息传递的udp端口
bcasteth1            //
采用udp广播播来通知心跳,建议在备用节点不只一台时使用
mcast eth1 225.0.0.1 694 10     //
采用udp多播来通知心跳,建议在备用节点不只一台时使用
#ucast eth1 10.1.1.2

node node1.boge.com

node node2.boge.com

接下来时配置 authey

有两个认证方式

在这我们选择的是 第一种。直接把注释去掉就行了

修改authey的权限

Chmod 600 authey

最后我们配置的事haresources大概是在45行左右

#node-name resource1 resource2 ...resourceN

node1.boge.com 192.168.64.100 httpd(资源在哪个服务器上运行,哪个就是主服务器)接下来可以把这三个配置好的配置文件复制到辅助服务器上。

Scp ha.cf haresources authey root@192.168.64.132:/etc/ha.d/

此时还需要修改这的ha.cf

把那个ucast eth 10.1.1.1 (这是给服务器传递心跳信息)

四.最后我们分别在服务器上写个测试页面

/etc/init.d/heartbeat start来启动服务

Starting High-Availability services:INFO:  Resource is stopped

Done.

出现这个是表示启动正常。

Ifconfig 你会发现多了个地址

eth0:0   Link encap:Ethernet  HWaddr00:0C:29:B1:AF:AB 

         inet addr:192.168.64.100 Bcast:192.168.64.255 Mask:255.255.255.0

         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1

这就是我们需要访问的地址

此时辅助服务器也要启动。时刻看着主服务器的状态。

客户端访问时你会看见

aaaaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaaaathis is a test page

当主服务器宕机时。(/usr/share/heartbeat/ 下有个文件hb_standby 是模拟服务器宕机的)再访问我们会发现真实环境我们看到的应该是同一个页面。但是我们是为了实验所以写成不同的页面此时辅助服务器的多了个IP

eth0:0   Link encap:Ethernet  HWaddr 00:0C:29:B1:AF:AB 

         inet addr:192.168.64.100 Bcast:192.168.64.255 Mask:255.255.255.0

         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1

 

bbbbbbbbbbbbb bbbbbbbbbbbbb this is a testpage

 

到此为止我们的高可用集群heartbeat配置完毕。。。。。。