数据中心故障转移测试最佳实践:安全第一

日期: 2011-04-24 作者:Brien M. Posey翻译:王启 来源:TechTarget中国 英文

有的数据中心用户一直使用不正规的方法来检查容错。我曾让一名网络管理员为故障转移测试的进程做一个中型安排。他说他会随时在经过数据中心的时候,拉断一条连接着某个服务器或装置的电源线。通过该方法,他不但测试了故障转移结构的回弹性,员工的查清故障转移和修复故障的能力也会得到提高。

  这种方法看起来颇为奏效,但是在生产环境里,任意切断电源恐怕不是测试故障转移最好的方法。因为尽管该技术可以使你看出容错解决方案是否可行,但是它也有极大的风险,除非所有的容错装置都运转完美,否则很可能导致运行中断。   另一个问题在于,节点拉断电源的做法仅仅是模拟了一种类型的故障。更好的方法是设计一系列测试来检查系统处理多种……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

有的数据中心用户一直使用不正规的方法来检查容错。我曾让一名网络管理员为故障转移测试的进程做一个中型安排。他说他会随时在经过数据中心的时候,拉断一条连接着某个服务器或装置的电源线。通过该方法,他不但测试了故障转移结构的回弹性,员工的查清故障转移和修复故障的能力也会得到提高。

  这种方法看起来颇为奏效,但是在生产环境里,任意切断电源恐怕不是测试故障转移最好的方法。因为尽管该技术可以使你看出容错解决方案是否可行,但是它也有极大的风险,除非所有的容错装置都运转完美,否则很可能导致运行中断。

  另一个问题在于,节点拉断电源的做法仅仅是模拟了一种类型的故障。更好的方法是设计一系列测试来检查系统处理多种故障的能力。安排这种故障转移测试,便于首先执行风险最小的测试。这样的话,如果你在早些的测试中找到了问题所在,就可以在进行其他风险稍大的测试之前将其解决。 

  有何风险?

  在你设计一系列测试来规避测试进程中的风险时,首先得知道风险有哪些。

  一般来说,如果你在测试故障转移的过程中,有地方出了错,你只能迅速倒回测试前它们的所在位置。

  但是总有些故障是难以预料的。几年以前,有人请我监督某个数据中心的迁移。一开始大家料想迁移是件很轻松的事,所以只是将服务器简单的从一座楼移到了另一座楼。计划将每个群集的节点移到新的位置。

  迁移以后,计划接通这些节点。当所有的群集节点准备好之后,第二级的群集节点将脱机运往新的位置。然后重复这一步骤,直到所有服务器搬运完毕。

  一开始事情确实是按着计划走的。但是服务器搬运完毕之后,其中一个服务器无法通电。虽然没有明显的故障迹象,但是该服务器始终无法接通。情形看起不利,在服务器停工的时候,电源供应烧坏了,但是整个工作组织在停机时间没有受到损失,因为其他群集节点仍然起作用。不管怎么样,这件事警醒了一点:服务器在脱机时,不可预料的故障随时可能发生。

  与故障转移测试相关的另一个风险是数据丢失和数据损坏。以Microsoft Exchange Server为例,当发送或接收信息时,首先写入内存的是事项,然后再将其写入事项记录文件。事项记录最终将写入邮箱数据库。

  如果故障发生在事项被写入在事项记录文件之前,那么该事件数据就会丢失。与之类似,群集邮箱服务器使用记录传送装置,把事项记录复制到被动群集节点。在Microsoft Exchange Server 2007里,没有积累成1 MB大小数据的事项记录是不会被传送的。所以主动群集节点总是或多或少有一部分没有复制到被动节点的数据。未复制数据丢失的可能性取决于故障转移的属性,以及故障转移发生后的行为。

  始于目测

  为了找出群集节点的真实容错能力,最安全的方法是从目测开始。其窍门是:查找任何可能发生故障的硬件。

  数年前我曾目睹一个彻头彻尾的失败案例:某小型组织创造了一个故障转移群集,用于处理硬件过剩的问题。但是他们没有为每一个群集节点购买单独的不间断电源,而是将一个电源接线盒置入已有的UPS的唯一输出口,然后把两个群集节点都插入接线盒中。结果有一天电源耗尽,所有连接到超载的UPS上的设备立刻发生了故障。UPS成了故障的单点。

  并不是所有的故障单点都那么有戏剧性。有一个案例:一个组织安装了过多的以太网交换机,所以单独一个交换机的故障不会导致运行中断。一个服务器的两个网络适配器如果不小心接到了同一个交换机,造成的小事故可以轻易解决。但是这样的错误能够慢慢侵蚀掉全体IT员工为网络容错做出的努力。

  执行一个手动故障转移

  目测完以后,你必须测试群集节点是否按照设计好的进行故障转移。然后由手动故障转移开始。

  大多数群集软件包含了为群集节点故障转移的装置,避免将任何服务器硬件关闭。比如说,在Window Server 2008,你可以打开Failover Cluster Management Console,右键点击群集的应用,然后在快捷菜单中选择“将该服务器或应用移至另一节点”(Move This Service or Application to Another Node),然后你看到的如图表1所示。

图表1

  关闭一个群集节点

  在大量测试中进度不断继续,最终目的是证实群集可以继续运行,哪怕群集节点离线。当你达到那种熟练程度,你可以随时关掉你想要模拟故障的节点。

  关闭电源不像拔断电源线那么戏剧性,但是在服务器硬件上面拔掉电源线并不那么简单。将电源突然切断可能会导致群集节点驱动的损毁,也可能会减少服务器系统板或者电源的寿命。

  在装置上测试,不要在服务器设置

  从服务器的网络适配器上把以太网电缆切断,是管理故障转移测试最安全的方法之一。一个可视化数据中心的群集节点一般来说有三个网络适配器,一个用作常规网络交流,一个掌握各群集节点之间的服务流量,还有一个用于连接服务器和共享存储池。当然还有更多的网络适配器用于负载平衡。

  在任何情况下,你可以通过切断不同的网络电缆来模拟不同类型的故障。比如说,你可以切断用于服务流量的电缆来触发一次故障转移。

  安排故障转移测试

  尽管很多组织是全天运行的,也不要因此停止故障转移测试(如果你可以的话)。有计划的安排测试有以下好处。

  首先,若是提前通知所有人你将进行故障转移测试,那么故障转移装置在测试过程中发生错误,后果不至于太严重。

  合理安排测试的另一个好处是可以留给你纠错空间,以防万一。假设你计划测试某一群集的故障转移能力,该群集管理部分可视化SQL服务器,那么在测试开始之前,先把SQL数据库设定为脱机状态,这样做的话,若测试进行不顺利,可以避免任何数据损坏。

  这种情形下,事先将SQL数据库设为脱机状态不会影响到测试的可靠性,因为测试内容只针对可视化服务器故障转移的能力,而在服务器上的应用与测试无关。所以在测试之前请做好数据保护措施。

作者

Brien M. Posey
Brien M. Posey

Brien M. Posey,微软认证系统工程师,Windows 2000 Server 和 IIS方面最有价值专家。Brien曾任全国性连锁医院的CIO,负责过Fort Knox的网络安全。作为一名自由撰稿人,他为微软, CNET, ZDNet, TechTarget, MSD2D, Relevant Technologies 以及其他的科技公司写过稿。

翻译

王启
王启

相关推荐