老外教你让服务器正常运行时间最大化(上)

保持服务器的正常运行和唤醒状态,或者至少准备好一旦有需要就立刻投入运行,这个目标可能是所有数据中心经理们最渴望实现的目标之一。

然而很少有数据中心经理们能够诚实地说,他们所做的一切绝对都是为了让系统的正常运行时间最大化。专家们说,事实上很多经理都把大量的时间和金钱浪费在了很少或者不能对正常运行时间产生积极作用的技术和实践上去了。

美国金融数据服务商Six Telekurs负责IT运营与后勤保障的副总裁Walter Beddoe认为,实现正常运行时间的最大化既是科学也是一门管理艺术。“需要将诸多不同的东西组合在一起,包括可胜任此项工作的人员,利用容错硬件,采纳动态安全、良好的维护与变更管理实践等。最重要的是,你必须承诺尽最大可能将一切做好。”

普林斯顿一家诊断医学成像公司Princeton Radiology的IT部门主任Alan Howard敦促其属下不要把时间和资源浪费在不能直接对提高正常运行时间有贡献的行为和工具上面。比方说进行集群的努力就是“相当浪费的”,还不如冗余配置再辅以工具更能实现全自动化。

不能自动化的集群——其中的同步需要手工完成——可能会引起更多的问题,Howard说。“某个主节点一旦失灵就可能是灾难性的;与其让主节点失灵再去恢复它,还不如让备用节点失灵更好些。”

他举例说,他的团队做了一个Windows Server的集群,用作失效备援,结果却导致了应用程序的崩溃,因为该应用配置文件的一个变动未能及时拷到备用服务器上去。“修复应用崩溃故障所花费的努力往往要比修复一个集群节点失灵故障的努力大多了。”

之后,他的团队就不再配置传统意义的集群服务器了。相反,他们配置了一个“单独的备用服务器集群”——并将该集群全部映射到一个双控制器的Compellent存储中心SAN上,“这样我们就能够基本上无缝地按需迁移虚拟机了。”

精心规划

大多数数据中心经理都同意,仔细地规划所有与服务器相关的工作——从采购到管理到替换,是保障系统可靠性的关键性步骤。

华盛顿大学的IT运营及工程设计经理Raoul Gabiam说,生命周期管理是服务器正常运行时间规划的一个内在组成部分。“知道在何时、如何更换硬件,并升级软件是非常重要的,因为这会影响系统的性能、持续性和总体的正常运行时间。”

比方说,如果你必须做一次软件升级,那么了解清楚对硬件的需求,以及现有硬件的状态就是至关重要的。你或许得购买硬件来满足软件升级的需求,以避免出现更多的宕机,Gabiam解释道。

Gabiam还强烈地推崇标准化与协调,作为确保服务器可靠运营的方法。“在任何人安装任何东西或者进行某个变动之前,必须先走一个变动管理流程。”

变动管理就是要了解“每件东西是如何配置的,并在实施变动之前对变动做出评估,”Gabiam说。“用这种方法,你就总能了解清楚哪些事情是不允许的,哪些事情可能会产生相互影响。”

他说,遵守变动管理的纪律,就可能预见到以某种方式配置服务器,或者将其安放在一个新环境中时会产生什么影响。

在线资源公司是一家为金融机构提供交易服务的企业,其CTO Paul Franko认为,工作态度也会产生巨大作用。他说,他进行了一项额外的努力,以确保常规但很关键的服务器相关工作能够被认真严肃地对待,并及时得到处理。

“我们提出了一套系统检查与平衡机制,以确保我们的各种规则能够被遵守,”他说。按照Franko的说法,经理们必须常规性地检查下属的管理工作,再辅之以其他手段的双重检查,就可以把人工失误降至最低限度。“是人就会犯错,如果你没有设置多个检查点,事情就会滑向错误的一边。”

推行预防性维护

常规性的预防维护措施或许是支撑服务器可靠运行最容易,也最少痛苦的方法。“系统的正常运行时间只能和整个系统中最弱组件的正常运行时间一样长,”Beddoe说。长此以往地执行各项基本任务——升级系统软件、提供有条件的电力,保证适当的冷却环境——方能在不突破预算的前提下让数据中心的服务器无故障地运行,才可不必从其他关键任务组抽调人手来修复故障。

Paul Franko,在线资源公司的CTO认为,工作态度在服务器管理中可以发挥巨大的作用。他说他他进行了一项额外的努力,以确保常规但很关键的服务器相关工作能够被认真严肃地对待,并及时得到处理。

Franko说,为了确保所有必须要做的工作在需要时加以贯彻,就应该确定哪些工作是服务器维护工作,并将它们组织成明确的日程表。“有些事情是必须立刻执行的,比如安全升级,而其他一些任务批量执行,或者每隔一段固定期限加以执行是比较合理的。”这第二类任务就包括软件非关键性功能改进的升级等。

Franko补充说,服务器的维护工作应该这样加以处理:维护工作本身不应占用服务器的正常运行时间。“我们不能为了进行某些维护工作而让系统的运行速度下降,无论如何,我们都得做到这一点。”

如果必须拆下某台服务器进行维护的话,Franko的团队就会把这项维护工作安排到午夜或周末,用户的需求量很低的时候进行。在正常工作时间拆下一台功能服务器的唯一理由只能是必须安装或执行关键性的软件升级,例如需要安装零日安全补丁。

自动执行基本的服务器管理任务

在过去数年间,服务器的管理已变得越来越复杂,其中大部分原因是由于虚拟化及其相关技术的出现;为了提升服务器的效率和使用率,必须设计各类最佳实践。

虚拟化本身有助于保护数据中心不受服务器宕机的影响。通过对服务器进行整合,在一个共享环境中相互连接,虚拟化允许多个虚拟机运行在不同的主机上。任何一台主机的失灵都会导致工作负载在剩余的主机间进行重新分配。“某台服务器或许会失灵,但这并不意味着这将会影响到整个服务的提供,”Gabiam论述道。

为了更有效地管理日益扩张的虚拟化环境,Xenos软件、Uptime软件、Nimsoft和Nagios企业等公司纷纷推出了旨在帮助数据中心工作人员关注服务器性能、定位出现的问题,以及充分利用性能改进机会的工具。

Beddoe觉得这样的工具是必不可少的。“你必须要有某种让人放心的东西,保证你的所有服务器能在任何时候做它们该做的事情。”