远超机房承受能力的台风、飓风、海啸、洪水。这些自然灾害使得保持数据稳定性极具挑战性。大自然的力量有时是极其强大和不可控的,比如2005年肆虐美国东南部各州的卡特里娜飓风,在大自然的超级大国面前,人力根本不值一提。如果在灾难期间电源和数据连接都丢失,那么确保足够的正常运行时间就完全无关紧要了——此外,谁会指望维护人员完成他们的工作呢?在这种情况下,如果数据中心确实无法保证24/7的设备运行(如主机代管和托管服务),那么在可以预警的灾难发生前主动断电可能是更好的选择罢工。因为正常运行的设备一旦遇到这些灾难,断电和数据丢失几乎是无法避免的悲剧。您可能会问,服务器和存储设备损坏的潜在风险有多大?事实上,即使有最可靠的UPS系统和备用发电机组,损坏的风险也不容忽视。例如,如果建筑物的屋顶因恶劣的天气条件而受损,暴露在室外的设备将不可避免地面临风险。此外,常见的通信线路中断意味着除非设施的所有部分都有人值守并手动操作,否则管理员将无法远程监控设施状况或在停电时提供停机保护。具体对策要看你们设施部署的细节,但我们始终把安全放在第一位,被动回避和祈求好运显然是接下来的策略。以我亲身经历的卡特里娜飓风为例。由于气象灾害预警已经提前发布,在预判可能发生的灾害后,我选择了远程关闭两个不同状态的数据中心。关机后,数据中心只有交换机,而VPN设备还在运行。当然,这些数据中心内的几乎任何组件都可以远程控制,从打开和关闭服务器到获得对网络上每个相关设备(包括存储控制器、核心交换机等)的控制台访问权限。关闭数据中心只需要半个小时,将用到的是一个脚本工具,通过一个特殊的命令来关闭每台Linux服务器——值得一提的是,当前非常流行的虚拟化应用使得关闭工作成为可能虚拟机异常简单。再举个例子:另一个网站没有采取同样的反制措施。他们原计划下午3:00关停,没想到上午11:45站点莫名停电,这时暴风雨其实还没来。而且受限于相关规定和场地本身,他们也没有准备备用发电机组。就在那段时间,我在某个地方的停车场里,我的iPhone关闭了所有服务器。我使用脚本关闭了大约一半的服务器,但在存储系统上烦人地弹出Windows对话框,导致脚本无法顺利执行。关于数据中心,我收到的最后一条信息是一条残缺不全的短信,说怪物UPS系统中的电池没电了,然后就是一片寂静。不过想想,毕竟我管理的基础设施在250里之外,任何所谓的主动应对措施,都只能等风雨过去之后才能进行。接下来发生的事情是:随着电力供应恢复正常,备份数据中心立即自动开始备份。由于除了弹出对话框的设备外,大部分硬件都已经正常关机,其他服务器在检测到电源供应后,会按照预定的计划自动启动。网络设备运行良好,存储系统也无大碍。事实上,与发生故障时的启动过程不同,这次灾后启动非常顺利,没有任何麻烦。对于某些服务器,我不得不手动启动并重新安装存储异常的网络文件系统。该异常影响了其他几台服务器的正常启动,给多台虚拟机系统带来了麻烦。不过,也仅此而已,并没有发生什么太糟糕的事情。有组织和有计划地关闭数据中心设施的良好结果令人欣慰,相比之下负面影响似乎无害。如果除了自然灾害之外,你运维的数据中心在正常的业务运营中可能会遇到需要完全停机的情况,那么尽快制定一个可行的停机方案肯定比临时抱佛脚更好。不管怎样,这次关机的经历更加坚定了我对硬件抗意外能力的信心。
