服务器集群故障检测
2017-10-23 16:01 浏览: 次集群服务可以检测和隔离网络故障。集群服务使用改进的网络故障检测方法改善故障恢复操作。故障检测和防范是服务器集群所具有的突出优点。当集:群中的节点或应用程序失效时,集群服务器可以通过重启失败的应用程序或将故障系统的工作分散给幸存的集群节点来做出响应。集群服务器故障检测和防范包括双向故障转移、应用程序故障转移、并行恢复及自动故障恢复。
集群服务可以检测各个资源或整个节点的故障,并动态地将应用程序、数据和文件资源转移到集群中可用的正常服务器上,然后重新启动它们。借此, 数据库、共享文件和应用程序等资源可以对用户和客户端应用程序保持高度的可用性。
集群服务器在设计上带有以下两个不同的故障检测机制。
• 心跳通信,用于检测节点故障。
• 资源监视器和资源DLL, 用于检测资源故障。
1.检测节点故障
在集群节点之间的通信允许集群服务检测节点故障和状态改变并且将集群作为一个实体进行管理。可以为这种节点到节点的通信设立多重网络以便于消除单一点的故障。在集群节点上运行的集群服务跟踪集群中节点的当前状态,并且确定组及其资源何时故障转移到备用节点。这种通信采用在每个节点的集群服务之间定期发送消息的形式进行。这些消息被称为“检测信号”,或称“心跳气”。
通过心跳通信,每个节点可以恰查其他节点及它们的应用程序的可用性。如果服务器设有对心跳通信;做出响应,则正常工作的服务器会启动故障转移过稳(包括对故障服务器拥有的资源和应用程序的所有权进行仲裁)。仲裁是使用质询和辩护协议来执行的。换而言之,如果某个节点似乎发生了故障,则会在给定的时间内允许它以几种方式中的任何一种表明它仍处于正常运行当中,并且可以向其他正常的节点通信。如果它无法证明自己正在正常运行,则此时会将它移出集群。
多种事件都可能导致节点无法响应心跳消息,如计算机故障、网络接口故障、网络放障,甚于在可能是由于少有的高峰活动期。通常来说,当所有节点进行通信时,配置数据库管理器会向每个节点发送全局性的配置数据库更新。当心跳通信失败时,日志管理锦还会将配置数据库的变更保存到仲裁资源中。这保证了幸存的节点可以在恢复过程中访问最新的集群配置和本地节点的注册表数据。
要注意的是,故障检测算法相当保守。换句话说,它会尽量多地给那些明显发生故障的节点以质询的机会,然后才会进入故障转移过程。如果导致心跳响应失败的原因是暂时的,避免故障转移所可能造成的潜在影响当然是再好不过了。但是,由于无法知道这样的节点还将沉默多长时间,故该节点可能遭受长时期的故障影响。因此,在经过一个合理的时间段后就应该启动故障转移过程。
2. 检测资源故障
如果资源在当前主机节点上是不可操作的而且不能重新启动,则集群服务认为此资源发生了故障。集群服务按以下方式检测资源故障。
(1)在周期性的时间间隔内,集群服务检查资源以了解资源是否可操作。集群服务通过定期调用资源监视器来完成此项任务。反过来,资源监视器则依赖于每个资源的资源主动态链接库( DLL)执行一段过程以检测资源是否正常工作。资源 DLL 通过资源监视器将结果传给集群服务。可以通过设置“Looks Alive”和“ls Alive ,轮询间隔来指定集群服务检资资源故障的频率。集群服务在每个“ls Alive ”时间间隔内请求对资源 的状态进行比“Looks Al ive" 间隔内所傲的更彻底的检查。“ls Alive”轮询问隔通常比“Looks Alive”轮询问隔长。
(2)如果资源 DLL 报告资源不可操作,那么集群服务会尝试重新启动资源。可以指定集群服务在一给定时间间隅内尝试重新启动资源的次数如果集群服务在指定的时间向陆内所做的尝试的数量超过了最大重新启动尝试次数,但是资源仍不可操作,那么集群服务会认为资源出了故障。
可以配置是否故障资源引起包含该资源的组故障转移到其他节点。如果故障资源配肯为引起包含该资源的组故障转移到其他节点,那么集群服务将尝试故障转移。如果故障转移尝试次数坦过组的阙值而资源仍然处在故障状态,则集群服务将尝试资源的重新启动。在资源的“故障重试周期”属性(所有资源的一个一般属性)指定的周期结束后,将做重新启动尝试。集群服务开始对资源尝试重新启动然后故障转移。
虽然“故障重试周期”属性的单位是ms,但按分钟顺序选择值。还可以选择比资源重新启动周期属性值大的或者相等的值并强制执行这个规则。
【免责声明】:部分内容、图片来源于互联网,如有侵权请联系删除,QQ:228866015