图片 6

如何实现Linux服务集群的高可用性,Linux集群心跳检测HeartBeat实战

在服务器集群中还有一项就是服务的高可用性,为了保证我们的服务不被成为单点故障,为此我们使用heartbeat来解决这一点,简单点说,就是当我们的主服务器掉线的时候,我们的辅助节点服务器能够快速接管主节点服务器的服务,这样就保证了我们的服务不会出现单点故障了。(当然我们一下做的只是针对单点故障做的一个小实验而已,具体到应用的时候,心跳通信通道不会只有一条,还有服务器通常还会有共享存储设备,好了,不多说了,开始准备一下实验环境吧)

Heartbeat简介

Heartbeat简介

我们需要准备三台虚拟机:一台客户机,两台heartbeat服务器,其中这两个服务器先配置一个,另外一个根据以下步骤再配置)

Heartbeat心跳实战试验

Heartbeat心跳实战试验

实验拓扑图如下:

 

 

 

Heartbeat原理

Heartbeat原理

图片 1

集群系统主要分为高可用性(High
Availability)集群,简称HA集群。常见就是2个节点做出的HA集群,有很多通俗不科学的名称,比如“双机热备”,“双机互备”,“双机”。这样做的好处是当服务启动的时候,两台服务器一个作主(ser1),另外一个作从(ser2)。测试机每几秒会ping主机,当发现主机没有回应,就证明主机拓机了,那么从机马上会启动相应的服务,继续进行服务。这样就可保证服务部间断。

集群系统主要分为高可用性(High
Availability)集群,简称HA集群。常见就是2个节点做出的HA集群,有很多通俗不科学的名称,比如“双机热备”,“双机互备”,“双机”。这样做的好处是当服务启动的时候,两台服务器一个作主(ser1),另外一个作从(ser2)。测试机每几秒会ping主机,当发现主机没有回应,就证明主机拓机了,那么从机马上会启动相应的服务,继续进行服务。这样就可保证服务部间断。

 

图片 2

图片 3

 

如上图sev1有两块真实的网卡eth0和eth1,ser2也有两块真实的网卡eth0和eth1,LVS_IP:222.90.88.88是两个真实的LVS(ser1和ser2)虚拟出来的。

如上图sev1有两块真实的网卡eth0和eth1,ser2也有两块真实的网卡eth0和eth1,LVS_IP:222.90.88.88是两个真实的LVS(ser1和ser2)虚拟出来的。

实验步骤:

 

 

1先配置一下主节点:主机名设为:node1.example.com 

操作:

操作:

#vim  /etc/hosts

       两台有两张网卡(都是用桥接)的虚拟机ser1和ser2

       两台有两张网卡(都是用桥接)的虚拟机ser1和ser2

192.168.0.165.   node1.example.com  node1

       在sev1安装ipvsadm,和heartbeat

       在sev1安装ipvsadm,和heartbeat

192.168.0.166   node2.example.cm    node2

              heartbeat安装:

              heartbeat安装:

#vim  /etc/sysconfig/network

              支持包:heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

              支持包:heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

HOSTNAME=node1.example.com

                            heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

                            heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

#hostname  node1.example.com

              安装包:heartbeat-2.1.3-3.el5.centos.i386.rpm(第一次装可能有问题)

              安装包:heartbeat-2.1.3-3.el5.centos.i386.rpm(第一次装可能有问题)

#uname  –n (查看一下现在的主机名)

       #rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

       #rpm -ivh heartbeat-pils-2.1.3-3.el5.centos.i386.rpm

1.      配置一下ip地址

       #rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

       #rpm -ivh heartbeat-stonith-2.1.3-3.el5.centos.i386.rpm

外网为192.168.0.165                               

       #rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

       #rpm -ivh heartbeat-2.1.3-3.el5.centos.i386.rpm

心跳通道地址192.168.10.20                          

       #rpm -q heartbeat -d      (解压出一系列配置文件)

       #rpm -q heartbeat -d      (解压出一系列配置文件)

2.      安装并配置httpd服务

       #cd /etc/ha.d/(主要配置文件位置)

       #cd /etc/ha.d/(主要配置文件位置)

#yum  install  httpd.conf

       #cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d

       #cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d

#vim   /var/www/html/index.html

       #cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d

       #cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d

#service  httpd  start

       #cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d

       #cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d

#elinks  192.168.0.220

       #uname -n

       #uname -n

(测试一下www服务)

       sev1.example.com

       sev1.example.com

3.      开始配置heartbeat了:

       #vim ha.cf

       #vim ha.cf

先安装八个包:

              logfile /var/log/ha-log            (打开日志文件)

              logfile /var/log/ha-log            (打开日志文件)

libnet-1.4.3-el5.i386

              logfacility local0

              logfacility local0

heartbeat-2.1.4-9.el5.i386

              keepalive
2                           (每2秒测试机发送一个广播)

              keepalive
2                           (每2秒测试机发送一个广播)

heartbeat-devel-2.1.4.9.el5.i386

              deadtime
30                         (30s没反应,立即切换服务。)

              deadtime
30                         (30s没反应,立即切换服务。)

heartbeat-gui-2.1.4-9.el5.i386

              warntime 10                       

              warntime 10                       

heartbeat-ldirectord-2.1.4-9.el5.i386

              initdead 120

              initdead 120

heartbeat-pils-2.1.4.-10.el5.i386

              udpport 694                         (udp是用端口)

              udpport 694                         (udp是用端口)

heartbeat-stonith-2.1.4-10.el5.i386

              bcast
eth1              #Linux    (指明心跳连接的接口号)

              bcast
eth1              #Linux    (指明心跳连接的接口号)

perl-MailTools-1.77-1.el5.noarch

              ucast eth1 192.168.1.20        (心跳连接的PC的IP)

              ucast eth1 192.168.1.20        (心跳连接的PC的IP)

 

              node              sev1.example.com  (两个主机名【最好用uname
-n查看】)

              node              sev1.example.com  (两个主机名【最好用uname
-n查看】)

#yum  – -nogpgcheck install  *.rpm  可以将这几个包一起安装 
(使用rpm来安装的话会有好多依赖关系要解决,建议还是使用yum来安装)

              node              sev2.example.com 

              node              sev2.example.com 

4.

              ping
222.90.88.1                  测试机的IP(要写外部的测试IP)

              ping
222.90.88.1                  测试机的IP(要写外部的测试IP)

#cd   /etc/ha.d/    (接下来拷贝几个重要的文件到该目录下)

#vim
/etc/ha.d/authkeys        (开启验证模式,这是安全方面的配置里面有三种认证方式:crc
md5 sha1)

#vim
/etc/ha.d/authkeys        (开启验证模式,这是安全方面的配置里面有三种认证方式:crc
md5 sha1)

#cp  /usr/share/doc/heartbeat-2.1.4/ha.cf       ./

              auth 1

              auth 1

#cp  /usr/share/doc/heartbeat-2.1.4/haresources  ./

              1 crc

              1 crc

#cp  /usr/share/doc/heartbeat-2.1.4/authkeys    ./

       #chmod 600 authkeys(不做此步,则heartbeat服务无法启动)

       #chmod 600 authkeys(不做此步,则heartbeat服务无法启动)

#ls  (查看一下是否复制完全)

       #vim /etc/ha.d/haresources(这个主要指明资源的来源,是远端挂载)

       #vim /etc/ha.d/haresources(这个主要指明资源的来源,是远端挂载)

#vim  authkeys

              在图片 4
下增加一条

              在图片 5
下增加一条

在最后添加两行

              sev1.example.com 222.90.88.88
httpd  (主节点的名称,虚拟出IP,启动httpd服务)

              sev1.example.com 222.90.88.88
httpd  (主节点的名称,虚拟出IP,启动httpd服务)

auth  1

       #vim /etc/hosts

       #vim /etc/hosts

1        sha1

              图片 6

              图片 7

发表评论

电子邮件地址不会被公开。 必填项已用*标注