RHEL5高可用集群Word文件下载.docx
《RHEL5高可用集群Word文件下载.docx》由会员分享,可在线阅读,更多相关《RHEL5高可用集群Word文件下载.docx(40页珍藏版)》请在冰豆网上搜索。
设置系统时间15
7.9步骤7:
启动Heartbeat15
7.10停止和启动Heartbeat20
8.1haresources文件语法21
8.1.1haresources文件语法:
主服务器名22
8.1.2haresources文件语法:
ip别名22
8.1.3Heartbeat的网络接口卡自动选择过程23
8.1.4指定网卡24
8.1.6haresources文件语法:
资源25
8.2使用Heartbeat载入共享27
8.2.1使用Heartbeat载入共享:
循环DNS27
8.2.2使用循环DNS负载均衡的问题28
8.3操作警告:
声音报警29
8.4操作警告:
Email报警29
8.5Heartbeat维护30
8.5.1更改Heartbeat配置文件30
8.5.2服务器维护和Heartbeatauto_failback选项30
8.5.4调整Heartbeat的空载时间(deadtime)值32
8.5.6故障转移和重启(自动重启失效的资源)32
9.1Stonith33
9.2非常规途径:
使用单个Stonith设备33
9.2.1用Stonith配置的Heartbeat样例34
9.2.2Stonith事件序列36
9.2.4查看当前支持的Stonith设备清单37
概述
本章介绍一个叫做Heartbeat的软件包,它让你能够实现资源故障转移,你告诉Heartbeat哪个计算机拥有独有的资源(哪个计算机是主服务器),其他计算机自动就成为备用服务器,然后你在备用服务器上配置Heartbeat守护进程监听来自主服务器的“心跳”,如果备用服务器听不到主服务器的心跳,它就启动故障转移,并取得资源的所有权。
运行在备用服务器上的Heartbeat程序能够通过普通的以太网连接检查来自主服务器的心跳,但是正常情况下,Heartbeat通常配置在一个专用的网络上运行,可以是串口或以太网连接(通过交叉线[1]或小型集线器)。
串口线连接
串口连接比以太网连接稍微安全一点,因为即使黑客攻破了系统不能通过串口线运行telnet、ssh或rlogin(串口线其实就是连接各个系统COM端口的交叉线),然而,因为串口线很短[3],服务器必须相互离得很近,通常应该在同一间屋子里。
以太网连接
在服务器之间使用一个新的以太网连接(或以太网交叉线)排除距离上的限制,它也允许你在两个服务器之间同步文件系统(在第4章中讲述了)而不增加额外的通讯。
三个最基本的心跳控制消息[6](如果你是用的以太网的话,就是三种数据包):
心跳或状态消息
集群转变消息
重发请求
心跳
心跳(有时叫做状态消息)是长度大约150字节的广播或多播数据包,你控制每台计算机多久广播一次心跳以及运行在另一个节点上的heartbeat守护进程在遇到错误时应该等待多长时间。
两个最常见的集群转变消息是ip请求和ip请求响应,这些消息相对比较少,当它们想将一个资源从一台计算机移动到另一台计算机时,它们包括heartbeat守护进程之间的会话。
当你修复好主服务器并将其置于在线状态时,它使用ip请求要求备用服务器释放它出故障时由备用服务器获得的资源所有权,备用服务器收到请求后首先关闭服务,然后发送ip请求响应消息通知主服务器它已经释放了资源的所有权,当主服务器收到ip请求响应消息后,它启动服务再次为客户端计算机提供服务(它取回了资源的所有权)。
rexmit请求(或ns_rexmit请求)消息--心跳控制消息的中继请求--是在某个服务器发现它接收到了超出序列的心跳控制消息时发出的(Heartbeat守护进程使用序列号保证数据包不被丢弃或破坏),Heartbeat守护进程将只要求每秒重发一次心跳控制消息(没有序列号,即ns_rexmit中的ns),以避免出现某些错误时这些重试请求导致网络阻塞。
以太网心跳控制消息
这三种心跳控制消息都是使用UDP协议和/etc/ha.d/ha.conf文件中指定的端口或在这个文件中指定的多播地址(在使用以太网时)。
目前Heartbeat还不支持超过两个的节点[7],Heartbeat服务器对可以共享相同的以太网连接交换心跳和心跳控制消息,但是每一个服务器对必须使用/etc/ha.d/ha.conf文件中指定的唯一的UDP端口号,或唯一的多播地址。
Heartbeat使用ip地址接收故障转移
为了将资源(一个服务或守护进程以及它关联的ip地址)从一台计算机移动到另一台计算机,我们需要一个从主计算机移动ip地址到备用计算机的方法,Heartbeat通常使用的是ip地址接收(有时叫做IPAT),要实现IPAT,Heartbeat使用从属ip地址(在旧的Linux内核中原来叫做ip别名)和不必要的ARP广播。
多ip别名故障转移
理论上,你可以象网络ip地址编码方式允许的(取决于你的内核版本)那样添加许多次要ip地
从属ip地址和ip别名是两个不同的为同一物理网卡添加多个ip的方法,第一个ip地址(也叫做主地址)在系统启动时添加到网卡,附加的ip地址是通过Heartbeat基于HA资源配置文件条目添加的--附加的ip地址要么是ip别名要么是从属ip地址,在写本书时,Linux内核同时支持从属ip地址和ip别名,尽管ip别名声明不支持从属ip地址。
注意:
当标准ipv4网络配置在内核中时,ip别名(有时叫做网络接口别名)是Linux内核的一个标准功能,旧版本的内核需要你在内核中作为一个选项配置ip别名支持。
ip别名和源地址
无论你是使用从属ip地址还是ip别名,源自服务器(连接创建自服务器)的数据包使用的源地址将总是使用网卡的主ip地址,你可以使用ip命令和没有文档记录的src选项强制内核显示源地址为从属ip地址或ip别名,例如:
#iprouteadddefaultvia209.100.100.254src209.100.100.3deveth0
在这个例子中,209.100.100.254是网关,209.100.100.3是从属ip地址(或ip别名),使用它作为出站数据包的源地址,这个方法使用包括在Heartbeat包中的ipsrcaddr资源脚本,(你还可以使用命令iprouteget209.100.100.10查看内核路由表为这个特定的ip地址返回的是哪个接口和源地址)。
在两端都使用了ipsrcaddr脚本时,强制内核使用从属ip地址或ip别名作为数据包头中的源地址将不能正常工作。
通过使用从属ip地址或ip别名,你可以在一个ip地址上提供一个服务如sendmail,以及在另一个ip地址上提供另外的服务,如HTTP,即使这两个ip地址同属于一台计算机(一块物理网卡,一个MAC地址)。
当你使用Heartbeat在一个从属ip地址(或ip别名)上提供一个服务时,这个服务是属于服务器的(意味着服务器是激活的或主要节点),服务器拥有用于访问服务的ip地址,备用节点必须使用从属ip地址(或ip别名),当主节点出故障时,服务应该都备用节点提供,备用服务器不但需要启动服务或守护进程,而且还需要为它的网卡添加适当的从属ip地址(或ip别名)。
使用以太网传输心跳数据包的双节点Heartbeat集群配置如图6-2所示。
(点击查看大图)图6-2:
一个基本的Heartbeat配置
在图6-2中,ip地址209.100.100.2是主服务器的主ip地址,它永远不需要转移到备用服务器,备用服务器的主ip地址是209.100.100.5,同样这个ip地址也永远不用转移到另外的网卡上,然而,ip地址209.100.100.3和209.100.100.4分别关联到运行在主服务器上的某个特定的服务上,如果主服务器停掉,这些ip地址需要转移到备用服务器上,如图6-3所示。
(点击查看大图)图6-3:
主服务器失效后相同的Heartbeat基本配置
用于高可用服务的从属ip地址和ip别名总是应该由Heartbeat控制(本章后面以及后面两章将会描述的/etc/ha.d/haresouces文件),不要使用操作系统添加别名的功能(或在启动时自动运行的脚本来添加),如果你这样做了,你的服务器在启动时将不能正确地申请ip地址的所有权,备用节点也应该能够控制ip地址资源,主节点重启时,也不用担心它在正常启动时尝试使用从属ip地址。
一旦你建立了一个适当的资源脚本,并将其放入/etc/rc.d/init.d目录或/etc/ha.d/resource.d目录,使用参数start,stop和status彻底测试了它的能力后,你就可以开始配置Heartbeat了。
然而,只要你告诉Heartbeat管理一个资源或脚本,你需要确保在正常启动过程(init)中脚本不会运行,可以通过下面的命令来实现:
#chkconfig--del<
脚本名>
这里的<
是/etc/init.d目录下文件的名字。
(参考第1章中的chkconfig命令)
开关(init)脚本必须不能在正常启动(init)过程中运行,因为你想让Heartbeat判断何时启动(和停止)守护进程,如果你启动了Heartbeat程序,但要求使用Heartbeat控制的守护进程已经在运行了,你在/var/log/messages文件中将会看到下面的信息:
WARNING:
Non-idleresourceswillaffectresourcetakeback.
如果在启动Heartbeat时你看到这个错误消息,你应该停止所有要求由Heartbeat控制的资源,将它们从启动进程中移除(使用chkconfig--del<
),然后重启Heartbeat守护进程(或重启系统)。
6.7Heartbeat配置文件
Heartbeat使用三个配置文件:
/etc/ha.d/ha.cf
指定每个系统上的heartbeat守护进程如何相互通讯。
/etc/ha.d/haresources
指定正常情况下哪个服务器充当某个具体资源的主服务器,哪个服务器拥有客户端计算机用于访问资源的ip地址。
/etc/ha.d/authkeys
指定Heartbeat数据包应该如何加密
第7章一个Heartbeat配置样本
上一章介绍了三个用于控制Heartbeat操作的配置文件:
ha.cf,haresources和authkeys。
这一章描述如何在两个服务器或两个节点上使用这三个文件,以便Heartbeat能够使用一个高可用配置部署资源。
在一个普通的Heartbeat配置中,在主服务器和备用服务器上这些文件都是相同的(如果不相同将会在你的高可用配置中引入错综复杂的问题),本章用一个实验练习来说明Heartbeat如何启动资源,以及出现故障时如何转移到备用服务器上。
7.1实验方法
原料清单:
两台运行Linux的服务器(每台都配备两个网卡接口并接上网线)
一条交叉线(或标准网线和一个小型集线器)和/或一条串口线
一份Heartbeat软件包(从http:
//www.linux-ha.org/download下载
如果你正在使用以太网心跳连接,使用RFC1918中定义的ip地址分配给主服务器和备用服务器,例