LVS之HeartBeat原理讲解与实例解析Word文档格式.docx

上传人:b****5 文档编号:19132715 上传时间:2023-01-04 格式:DOCX 页数:11 大小:197.11KB
下载 相关 举报
LVS之HeartBeat原理讲解与实例解析Word文档格式.docx_第1页
第1页 / 共11页
LVS之HeartBeat原理讲解与实例解析Word文档格式.docx_第2页
第2页 / 共11页
LVS之HeartBeat原理讲解与实例解析Word文档格式.docx_第3页
第3页 / 共11页
LVS之HeartBeat原理讲解与实例解析Word文档格式.docx_第4页
第4页 / 共11页
LVS之HeartBeat原理讲解与实例解析Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LVS之HeartBeat原理讲解与实例解析Word文档格式.docx

《LVS之HeartBeat原理讲解与实例解析Word文档格式.docx》由会员分享,可在线阅读,更多相关《LVS之HeartBeat原理讲解与实例解析Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

LVS之HeartBeat原理讲解与实例解析Word文档格式.docx

集群转移引擎;

Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序。

要监控资源和应用程序是否运行正常,必须使用第三方的插件,例如ipfail、Mon和Ldirector等。

Heartbeat自身包含了几个插件,分别是ipfail、Stonith和Ldirectord,介绍如下。

ipfail的功能直接包含在Heartbeat里面,主要用于检测网络故障,并做出合理的反应。

为了实现这个功能,ipfail使用ping节点或者ping节点组来检测网络连接是否出现故障,从而及时做出转移措施。

Stonith插件可以在一个没有响应的节点恢复后,合理接管集群服务资源,防止数据冲突。

当一个节点失效后,会从集群中删除。

如果不使用Stonith插件,那么失效的节点可能会导致集群服务在多于一个节点运行,从而造成数据冲突甚至是系统崩溃。

因此,使用Stonith插件可以保证共享存储环境中的数据完整性。

Ldirector是一个监控集群服务节点运行状态的插件。

Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功能,同时将后续请求转移到正常的节点提供服务,这个插件经常用在LVS负载均衡集群中。

同样,对于操作系统自身出现的问题,Heartbeat也无法监控。

如果主节点操作系统挂起,一方面可能导致服务中断,另一方面由于主节点资源无法释放,而备份节点却接管了主节点的资源,此时就发生了两个节点同时争用一个资源的状况。

针对这个问题,就需要在Linux内核中启用一个叫watchdog的模块。

watchdog是一个Linux内核模块,它通过定时向/dev/watchdog设备文件执行写操作,从而确定系统是否正常运行。

如果watchdog认为内核挂起,就会重新启动系统,进而释放节点资源。

在Linux中完成watchdog功能的软件叫softdog。

softdog维护一个内部计时器,此计时器在一个进程写入/dev/watchdog设备文件时更新。

如果softdog没有看到进程写入/dev/watchdog文件,就认为内核可能出了故障。

watchdog超时周期默认是一分钟,可以通过将watchdog集成到Heartbeat中,从而通过Heartbeat来监控系统是否正常运行。

1.2Heartbeat的原理

集群成员一致性管理模块(CCM)

CCM用于管理集群节点成员,同时管理成员之间的关系和节点间资源的分配。

Heartbeat模块负责检测主次节点的运行状态,以决定节点是否失效。

ha-logd模块用于记录集群中所有模块和服务的运行信息。

本地资源管理器(LRM)

LRM负责本地资源的启动、停止和监控,一般由LRM守护进程lrmd和节点监控进程StonithDaemon组成。

lrmd守护进程负责节点间的通信;

StonithDaemon通常是一个Fence设备,主要用于监控节点状态,当一个节点出现问题时处于正常状态的节点会通过Fence设备将其重启或关机以释放IP、磁盘等资源,始终保持资源被一个节点拥有,防止资源争用的发生。

集群资源管理模块(CRM)

CRM用于处理节点和资源之间的依赖关系,同时,管理节点对资源的使用,一般由CRM守护进程crmd、集群策略引擎和集群转移引擎3个部分组成。

集群策略引擎(Clusterpolicyengine)具体实施这些管理和依赖;

集群转移引擎(Clustertransitionengine)监控CRM模块的状态,当一个节点出现故障时,负责协调另一个节点上的进程进行合理的资源接管。

在Heartbeat集群中,最核心的是Heartbeat模块的心跳监测部分和集群资源管理模块的资源接管部分。

心跳监测一般由串行接口通过串口线来实现,当然,也可以用交叉网线连接。

两个节点之间通过串口线相互发送报文来告诉对方自己当前的状态。

如果在指定的时间内未受到对方发送的报文,就认为对方失效,这时资源接管模块将启动,用来接管运行在对方主机上的资源或者服务。

2.安装Heartbeat前的准备

2.1实验环境规划

2.2创建虚拟共享磁盘

1.创建存放共享磁盘文件的目录,若虚拟机软件安装路径下的磁盘够大也可以不用创建此目录,直接将要创建的磁盘文件放在相应目录即可;

2.创建共享磁盘文件

在虚拟机软件的安装目录下,有个vmware-vdiskmanager.exe文件(老版本用plainmaker.exe),

 

 

把它复制到共享磁盘柜目录下,创建共享磁盘(老版本共享磁盘文件的扩展名为.pln),注意,此种方法有可能不成功,若不成功,可进入到虚拟机软件的安装目录,在其下创建即可:

D:

\vmware系统\共享磁盘>

vmware-vdiskmanager.exe-c-s200Mb-alsilogic-t2quorum.vmdk#仲裁盘

D:

vmware-vdiskmanager.exe-c-s2Gb-alsilogic-t2sharedisk.vmdk#数据盘

3.确认是否有磁盘文件生成:

创建完毕后,目录下有四个新文件:

quorum-flat.vmdk

quorum.vmdk

sharedisk-flat.vmdk

sharedisk.vmdk

4.确认成功生成后,用虚拟机软件在相应系统中,在虚拟系统关闭的状态下,添加刚刚生成的磁盘,并在高级选项中分别选择不同的通道,我们这里选择给仲裁盘选1:

5,给数据盘选1:

6,两个系统都要添加,保存配置;

5.进入到相应虚拟机系统目录下(本实验中的node1及node2)找到.vmx后辍的文件,用记事本打开添加下面两行内容:

disk.locking=”FALSE”

disklib.dataCacheMaxSize=”0”

6.先打开node1系统,格式化磁盘并创建文件系统,mkdir/sharedisk,创建挂载目录为后续工作做准备;

7.关闭node1,打开node2系统,mkdir/sharedisk,查看相应的磁盘设备号后可直接挂载使用,此时可开启node1系统;

注意:

Node1与node2节点系统硬件配置应尽量保持一致,至少应该保证磁盘一致性,比如,配置heartbeat之前都有一块或几块磁盘,我们这里之前都只有一块磁盘。

手动挂载仲裁盘,此盘不可以人为写入数据,可以将此盘写到/etc/fstab下,让系统自动挂载。

共享数据盘会在heartbeat的haresources文件中自动挂载,因此不需要手工挂载。

2.3配置Apache

为更加直观的观测高可用的测试结果,我们这里配置基于apache的web应用。

简述下配置过程:

1.安装软件包,为方便测试,这里直接安装rpm包:

[root@node1~]#yuminstallhttpd

2.编辑主配置文件httpd.conf

[root@node1~]#vim/etc/httpd/conf/httpd.conf

ServerName192.168.0.234:

80

DocumentRoot"

/sharedisk/www"

#将web页目录更改到共享磁盘路径下;

<

Directory"

>

3.手动挂载共享磁盘,创建web目录及测试页:

[root@node1~]#mount/dev/sdc1/sharedisk

[root@node1~]#mkdir/sharedisk/www

[root@node1~]#vim/sharedisk/www/index.html

[root@node1~]#cat/sharedisk/www/index.html

welcometomywebstation.

4.启动apache

[root@node1~]#servicehttpdstart

[root@node1~]#lsof-n-i:

2.4创建用户和用户组

同多数其它应用服务一样,heartbeat也需要用户和用户组的支持,不过,这里需要我们手动创建:

[root@node1~]#groupadd-g694haclient

[root@node1~]#useradd-u694-ghaclienthacluster

注意,同样需要在node2上执行相同操作。

2.5编辑Hosts文件

[root@node1~]#vi/etc/hosts#加入两个节点的IP及对应的主机名如下:

192.168.0.234node1

192.168.0.235node2

3安装Heartbeat

3.1获取Heartbeat

Heartbeat到目前为止发行了两个主版本,即Heartbeat1.x和Heartbeat2.x。

Heartbeat1.x仅仅允许创建两个节点的集群,提供基本的高可用性failover服务。

Heartbeat2.x提供了增强的特性,允许创建多个节点的集群,且支持模块化结构的配置方法——集群资源管理器(ClusterRescourceManager-CRM),CRM可以支持最多16个节点,我们这里选用的版本为Heartbeat-2.0.6。

Heartbeat软件包可以通过在网络上搜索下载,也可以从以下站点下载:

http:

//liunx-ha.org/download/index.html。

安装Heatbeat前必须先安装libnet包,可以从下面的站点下载:

libnet提供了一些高层的api,让应用程序开发者可以修改网络包,我们这里下载的版本为:

libnet-1.1.2.1。

3.2安装Heartbeat

接下来分别对libnet和heartbeat进行安装,安装过程很简单,只需解压编译,安装即可,在两个节点执行相同的操作,下面是在node1上的安装过程:

1.安装libnet

[root@node1software]#pwd

/tmp/software

[root@node1software]#ll

总计4200

-rw-r--r--1rootroot326777308-2518:

51heartbeat-2.0.6.tar.gz

-rw-r--r--1rootroot102123608-2518:

51libnet-1.1.2.1.tar.gz

[root@node1software]#tarxflibnet-1.1.2.1.tar.gz

[root@node1sofeware]#cdlibnet

[root@node1sofeware]#./configure

[root@node1sofeware]#make

[root@node1sofeware]#makeinstall

2.安装heartbeat

[root@node1software]#tarxfheartbeat-2.0.6.tar.gz

[root@node1sofeware]#cdheartbeat-2.0.6

[root@node1heartbeat-2.0.6]#./ConfigureMeconfigure\

–disable-swig–disable-snmp-subagent

[root@node1heartbeat-2.0.6]#make

[root@node1heartbeat-2.0.6]#makeinstall

[root@node1heartbeat-2.0.6]#cpdoc/ha.cfdoc/authkeysdoc/haresources/etc/ha.d/#Heartbeat的主要配置文件有ha.cf,authkeys和haresources,在Heartbeat安装后,默认并没有这3个文件,可以从官网上下载,也可以从解压出来的源码目录中找到,所以我们这里直接在源码目录中拷贝即可。

4配置Heartbeat

Heartbeat的主要配置文件有ha.cf,authkeys和haresources,下面将分别详细介绍:

4.1配置主配置Ha.cf

以下将对主配置文件ha.cf的基本常用选项作详细说明:

[root@node1~]#vim/etc/ha.d/ha.cf

#logfacilitylocal0#可注释掉此选项,开启下面的日志路径;

logfile/var/log/ha-log#设置heartbeat日志存放位置;

keepalive2#设定心跳(监测)时间时间为2秒;

warntime5#连续多长时间联系不上后开始警告提示;

deadtime20#连续多长时间联系不上后认为对方挂掉了(单位是妙);

initdead120#这里主要是给重启后预留的一段忽略时间段(比如:

重启后启动网络等,如果在网络还没有通,keepalive检测肯定通不过,但这时候并不能切换),此值至少为deadtime的两倍;

udpport694#设置广播通信的端口,默认为694;

baud19200#设置串行通讯的波特率;

bcasteth1#指明心跳使用以太网的广播方式,并且在eth1口上进行广播;

auto_failbackoff#恢复正常后是否需要再自动切换回来,此处off说明恢复后不需要切换;

nodenode1#主节点主机名,可以通过“uname-n”查看;

nodenode2#备用节点主机名;

ping192.168.0.254#测试网络连通性,此处自定义,一般设为网关地址,但要保证是通的;

respawnhacluster/usr/lib/heartbeat/ipfail#可选,列出和heartbeat一起启动和关闭的进程;

4.2配置资源文件Haresources

Haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源。

下面针对本测试项目作如下编辑:

[root@node1~]#vim/etc/ha.d/haresources

node1IPaddr:

:

192.168.0.236/24/eth0/Filesystem:

/dev/sdc1:

/sharedisk:

ext3httpd

##上面的192.168.0.236为虚拟出的VIP,自动挂载磁盘的同时启动httpd服务;

这里有几个注意事项:

1)资源组的第一列是我们在ha.cf配置文件中的node之一,而且应该是当前准备作为primary节点的那一个node;

2)每一行代表一个资源组,如果一行写不下可以用"

"

换行;

3)资源组启动顺序是从左往右,关闭的顺序是从右往左;

4)脚本的参数通过:

来分隔和传递;

5)一个资源组里面不同资源之间以空格分隔;

6)不同的资源组之间没有必然关系;

7)每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。

这些角本必须要支持xxxstart;

xxxstop;

模式;

8)关于serviceIP的资源设置格式详见haresources文件;

9)如果mysql是编译安装的话,则需要修改/etc/init.d/mysql文件中的basedir和datadir两个参数。

4.3配置双机互联认证文件Authkeys

Authkeys文件用于设定Heartbeat的认证方式,共有3种:

crc,md5和sha1。

三种认证方式的安全性依次提高,占用系统资源也依次增加,如果集群运行于较为安全的网络上,可以选择使用crc方式,如果HA的每个节点的硬件配置都很高,建议使用sha1,这种认证方式的安全级别最高,md5认证方式介于两者之间,我们这里选用crc的认证方式,设置如下:

[root@node1~]#vim/etc/ha.d/authkeys

auth1

1crc

注意,需要对此文件设置文件权限,如下:

[root@node1~]#chmod600/etc/ha.d/authkeys

4.4配置备份节点的Heartbeat

在备份节点上也需要安装Heartbeat,安装方式与在主节点安装过程一样,这里不再重述,依次安装libnet和heartbeat源码包,安装完毕,在备份节点上使用scp命令把主节点配置文件传输到备份节点即可,注意,配置文件不需作任何更改:

[root@node2~]#scp-rnode1:

/etc/ha.d/*/etc/ha.d/

4.5设置主节点和备份节点时间同步

因为节点之间的监控是通过设定时间来实现的,所以就确保主备节点的时间一致,主备节点之间的系统时间相差在10秒以内是正常的,但相差再大些就可能HA环境故障。

解决办法就是设置时间同步,我们这里采用在主节点上搭建NTP服务器,让从节点同步主节点的时间。

这里简述下配置关键点,若要详细了解NTP,可参考其它相关说明文档。

分别在主备节点上安装ntp的rpm包,这在系统光盘里可以找到:

[root@node1~]#rpm-ivh/media/Server/ntp-4.2.2p1-9.el5_4.1.i386.rpm

主节点node1上的配置:

[root@node1~]#vim/etc/ntp.conf

restrict192.168.0.0 

mask255.255.255.0 

nomodify 

notrap

[root@node1~]#/etc/init.d/ntpdstart

从节点node2上的配置:

[root@node2~]#vim/etc/ntp.conf

server192.168.0.234 

prefer 

iburst 

minpoll6maxpoll8

[root@node2~]#/etc/init.d/ntpdstart

可用命令:

watch 

ntpq-p查看时间同步情况

5启动与测试

1.开启node1主节点的heartbeat

开启日志,实时查看heartbeat的状态,同时启动heartbeat;

[root@node1~]#tail-f/var/log/ha-log

[root@node1~]#/etc/init.d/heartbeatstart

可以看到heartbeat正在进行初始化配置,日志信息到这里会暂停一段时间,等待120秒之后会继续输出日志,如下:

由于node2节点没有开启heartbeat,所以系统给出警告提示“node2:

isdead”,接下来会挂载共享磁盘:

提示挂载成功,可以作以下验证:

可以看到共享磁盘/dev/sdc1已成功被挂载到指定的/sharddisk下;

2.开启node2备用节点的heartbeat

[root@node2~]#/etc/init.d/heartbeatstart

查看磁盘挂载情况:

由于共享磁盘已被主节点挂载使用,此时备用节点并没有挂载,它会在node1节点宕机或掉线时,将heartbeat接管过来的同时再去挂载共享磁盘;

下面关掉主节点的heartbeat:

[root@node1~]#/etc/init.d/heartbeatstop

可以看到node1的heartbeat已经关闭,下面再次查看磁盘的挂载情况:

可以看到node2已成功将共享磁盘挂载到/sharedisk下;

3.访问测试

可以通过多次切换heartbeat服务,测试web应用:

通过多次服务切换证实,web应用可以持续提供服务,实现了高可用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1