保持服务器的正常运行和唤醒状态,或者至少准备好一旦有需要就立刻投入运行,这个目标可能是所有数据中心经理们最渴望实现的目标之一(51CTO推荐阅读:以魔兽世界为例 网游服务器搭建方案图解)。
然而很少有数据中心经理们能够诚实地说,他们所做的一切绝对都是为了让系统的正常运行时间最大化。专家们说,事实上很多经理都把大量的时间和金钱浪费在了很少或者不能对正常运行时间产生积极作用的技术和实践上去了。
美国金融数据服务商Six Telekurs负责IT运营与后勤保障的副总裁Walter Beddoe认为,实现正常运行时间的最大化既是科学也是一门管理艺术。“需要将诸多不同的东西组合在一起,包括可胜任此项工作的人员,利用容错硬件,采纳动态安全、良好的维护与变更管理实践等。最重要的是,你必须承诺尽最大可能将一切做好。”
普林斯顿一家诊断医学成像公司Princeton Radiology的IT部门主任Alan Howard敦促其属下不要把时间和资源浪费在不能直接对提高正常运行时间有贡献的行为和工具上面。比方说进行集群的努力就是“相当浪费的”,还不如冗余配置再辅以工具更能实现全自动化。
不能自动化的集群——其中的同步需要手工完成——可能会引起更多的问题,Howard说。“某个主节点一旦失灵就可能是灾难性的;与其让主节点失灵再去恢复它,还不如让备用节点失灵更好些。”
他举例说,他的团队做了一个Windows Server的集群,用作失效备援,结果却导致了应用程序的崩溃,因为该应用配置文件的一个变动未能及时拷到备用服务器上去。“修复应用崩溃故障所花费的努力往往要比修复一个集群节点失灵故障的努力大多了。”
之后,他的团队就不再配置传统意义的集群服务器了。相反,他们配置了一个“单独的备用服务器集群”——并将该集群全部映射到一个双控制器的Compellent存储中心SAN上,“这样我们就能够基本上无缝地按需迁移虚拟机了。”
#p#
精心规划
大多数数据中心经理都同意,仔细地规划所有与服务器相关的工作——从采购到管理到替换,是保障系统可靠性的关键性步骤。
华盛顿大学的IT运营及工程设计经理Raoul Gabiam说,生命周期管理是服务器正常运行时间规划的一个内在组成部分。“知道在何时、如何更换硬件,并升级软件是非常重要的,因为这会影响系统的性能、持续性和总体的正常运行时间。”
比方说,如果你必须做一次软件升级,那么了解清楚对硬件的需求,以及现有硬件的状态就是至关重要的。你或许得购买硬件来满足软件升级的需求,以避免出现更多的宕机,Gabiam解释道。
Gabiam还强烈地推崇标准化与协调,作为确保服务器可靠运营的方法。“在任何人安装任何东西或者进行某个变动之前,必须先走一个变动管理流程。”
变动管理就是要了解“每件东西是如何配置的,并在实施变动之前对变动做出评估,”Gabiam说。“用这种方法,你就总能了解清楚哪些事情是不允许的,哪些事情可能会产生相互影响。”
他说,遵守变动管理的纪律,就可能预见到以某种方式配置服务器,或者将其安放在一个新环境中时会产生什么影响。
在线资源公司是一家为金融机构提供交易服务的企业,其CTO Paul Franko认为,工作态度也会产生巨大作用。他说,他进行了一项额外的努力,以确保常规但很关键的服务器相关工作能够被认真严肃地对待,并及时得到处理。
“我们提出了一套系统检查与平衡机制,以确保我们的各种规则能够被遵守,”他说。按照Franko的说法,经理们必须常规性地检查下属的管理工作,再辅之以其他手段的双重检查,就可以把人工失误降至最低限度。“是人就会犯错,如果你没有设置多个检查点,事情就会滑向错误的一边。”
#p#
推行预防性维护
常规性的预防维护措施或许是支撑服务器可靠运行最容易,也最少痛苦的方法。“系统的正常运行时间只能和整个系统中最弱组件的正常运行时间一样长,”Beddoe说。长此以往地执行各项基本任务——升级系统软件、提供有条件的电力,保证适当的冷却环境——方能在不突破预算的前提下让数据中心的服务器无故障地运行,才可不必从其他关键任务组抽调人手来修复故障。
Paul Franko,在线资源公司的CTO认为,工作态度在服务器管理中可以发挥巨大的作用。他说他他进行了一项额外的努力,以确保常规但很关键的服务器相关工作能够被认真严肃地对待,并及时得到处理。
Franko说,为了确保所有必须要做的工作在需要时加以贯彻,就应该确定哪些工作是服务器维护工作,并将它们组织成明确的日程表。“有些事情是必须立刻执行的,比如安全升级,而其他一些任务批量执行,或者每隔一段固定期限加以执行是比较合理的。”这第二类任务就包括软件非关键性功能改进的升级等。
Franko补充说,服务器的维护工作应该这样加以处理:维护工作本身不应占用服务器的正常运行时间。“我们不能为了进行某些维护工作而让系统的运行速度下降,无论如何,我们都得做到这一点。”
如果必须拆下某台服务器进行维护的话,Franko的团队就会把这项维护工作安排到午夜或周末,用户的需求量很低的时候进行。在正常工作时间拆下一台功能服务器的唯一理由只能是必须安装或执行关键性的软件升级,例如需要安装零日安全补丁。
#p#
自动执行基本的服务器管理任务
在过去数年间,服务器的管理已变得越来越复杂,其中大部分原因是由于虚拟化及其相关技术的出现;为了提升服务器的效率和使用率,必须设计各类最佳实践。
虚拟化本身有助于保护数据中心不受服务器宕机的影响。通过对服务器进行整合,在一个共享环境中相互连接,虚拟化允许多个虚拟机运行在不同的主机上。任何一台主机的失灵都会导致工作负载在剩余的主机间进行重新分配。“某台服务器或许会失灵,但这并不意味着这将会影响到整个服务的提供,”Gabiam论述道。
为了更有效地管理日益扩张的虚拟化环境,Xenos软件、Uptime软件、Nimsoft和Nagios企业等公司纷纷推出了旨在帮助数据中心工作人员关注服务器性能、定位出现的问题,以及充分利用性能改进机会的工具。
Beddoe觉得这样的工具是必不可少的。“你必须要有某种让人放心的东西,保证你的所有服务器能在任何时候做它们该做的事情。”
#p#
让工具发布警示
Beddoe使用了Uptime软件公司的正常运行时间软件,他认为这种工具很重要,因为它们可以在服务器的状况超出某个阀值时,例如内存超载或者CPU的使用率过高时可以发出警示。
虽然大多数工具都内置了警示功能,但Beddoe强调说,还是应该寻找一种可配置警示触发条件的产品,例如一旦超过预设的阀值便可发送电子邮件或手机短信的产品。“你需要有意义的警示信息,以便可以采取必要的措施纠正这种情况。”
Walter Beddoe,Six Telekurs负责IT和后勤的副总裁,他说,“17年来,我们从未出现过影响到客户利益的重大宕机事件。”
汽车服务公司Carfax的运营经理Jerry Gregg说,重要的是要了解,不少性能测量工具计算出的正常运行时间只是一个近似值。“这样的数值,充其量只能用来参考。”
Gregg观察到,一些初步的正常运行时间测量工具得出的数值实际上可能引起误解,因为这些工具不能正确地区分如下两种情况:周日清晨睡眠时间发生的一小时长的服务器宕机和周四下午正运行关键业务进程时的10分钟的系统失灵。这也是为什么应该购买那些可提供全时、基于事件分析能力的测量工具的原因。
为了让正常运行时间分析更有意义,Gregg决定选用可以显示服务器崩溃对关键业务服务产生何种影响的测量工具。Gregg采用了BMC的ProactiveNet性能管理软件,该软件可直接将服务器宕机时间与销售交易和其他类型的面向业务数据进行关联。“可以让我们用美元而不只是用时间来量化服务器的宕机事件。”
该软件所生成的信息可帮助他确定宕机事件是否会威胁到企业的盈亏底线,为购买新服务器、更好的网络设备或其他可靠性增强技术及服务的预算做辩护。“如果没有这样的信息,你就只能在无法真正了解运营成本的情况下进行成本效益决策,”Gregg说。
#p#
别让黑客“盗取”正常运行时间
在保障服务器正常运行时间方面,安全也会发挥重要的作用。假如服务器遭遇恶意软件攻击,或者网络路径不安全,那么服务器宕机是毫不令人惊讶的。“需要从物理安全起步——也就是数据中心的建筑开始,首先保障其物理安全,”Beddoe说。
其次,要建立服务器的访问规则,并予以强制执行,同时,还要强制执行安全程序、防病毒程序、防火墙,培训遵纪守法的管理员,都是非常重要的。Beddoe说,“所有这些要素在服务器安全和提升正常运行时间方面都发挥着同样的重要作用。”
为IT咨询及客户软件开发商Superior科技解决方案公司监管服务器运营的John Luludis说,要想真正让服务器的正常运行时间最大化,超越基本的安全实践是很重要的。Luludis强烈推崇定期的独立安全审计。“我监管的网络必须定期进行渗透测试,之所以要这么做就是要让我的网络尽可能的安全,而且最好从外部看也是安全的。”
#p#
保护你的数据
尽管Princeton Radiology的Howard也强烈信奉定期的服务器维护,但是他也指出,经理和员工再怎么努力也无法避免一定量故障的发生。要想防范因服务器失效而导致的任何数据损失,Howard建议制定数据保护计划,并将其整合到企业全面的业务连续性战略中去。
Princeton采用了来自Compellent科技的场外存储解决方案,复制器所有已存储的数据。“即便有一个灾难恢复数据中心,我们实际上也得在主要设施之外运行一些服务器,所以我们需要双向备份数据。”
Raoul Gabiam,华盛顿大学的IT运营兼工程设计经理,他认为生命周期管理是服务器正常运行时间规划的一个内在组成部分。
华盛顿大学的Gabiam则仰仗内置于网络基础设施中的负载均衡技术来防范服务器可能出现的突然宕机。“假如一台服务器崩溃或者某个应用不响应,那么网络流量就会重定向到其他服务器,相同的服务器也能处理这一工作负载。”
和Princeton的Howard不一样,Gabiam比较看好集群,采用了Novell的集群服务来提供附加的冗余层。如果集群中的一个节点失灵,或者有停机维护的需要,那么在该节点上运行的集群应用或者某个服务组件便可无缝地迁移到集群的另一个节点上去运行。
这个迁移进程可以配置成手工失效备援或者自动失效备援。“一般而言,在硬件或软件失效时,应该让应用自动失效备援到下一个备选节点上去,”Gabiam说,不过管理员也可以在某个特定节点须执行维护任务时,手动将应用迁移到另一个节点去。
#p#
关注硬件质量
购买高质量的服务器而不使用质量低劣的设备,是提升服务器长期可靠性的一种很明显的方法。“这里还存在着一个决策上的差异,你是希望迁移到更长寿的硬件呢,还是希望升级到更高级的服务器,”IT服务商E-N电脑公司的运营经理Jeffrey Driscoll说。
不过在真实世界中,预算紧张的经理们常常要面对这样一种痛苦的抉择:是要用低成本的产品去满足需求呢,还是应该购买更好、更可靠的系统去适应已经确立的一些性能指标。到底该怎么办?
Driscoll建议应该聪明地购买,可以去找优惠的产品,但只要有可能,就应该去做企业管理层的工作,反映现实世界的运营需求。向管理层表明质量低劣的服务器可能导致财务风险是一个不错的主意。“这是一个可用简单的数字和一些预测便很容易证明的观点。”
#p#
知道何时该当机立断
有时候,了解一些简单的常识也可能是保障服务器正常运行时间最大化而又无须突破预算的最佳方法。“硬件就是硬件。到了某个时间,它总是会损坏的,”Gabiam说。“所以重要的是要了解发生了什么问题,然后准备好一个计划,一旦问题再次发生时就不会手忙脚乱。”
利用常识同时也意味着要知道什么时候该当机立断,减少损失,向新的设备转移,而不必去管按常规是不是到了替换周期。“如果你的IT人员经常要花费25%的时间去忙于到处救火,支持早已过时的系统的话,那么谁还看不出来这是巨大的时间浪费呢?”Beddoe反问道。
尽管让服务器的正常运行时间最大化会产生一些额外的工作量,但是大多数IT经理都认为最终的回报会远大于体力的支出。“很难说花在正常运行时间上的哪些努力会是白费的,”Luludis说。“你所做的任何事情都是会有帮助的。”
Beddoe认为,努力争取最大的正常运行时间,几乎都会保证创建一个更可靠的数据中心。他主张一个“积极的环境”——一个持续不断地激励工作人员去确认并遏制那些可能引起任何危害的潜在问题的环境,这是保障服务器正常运行时间最大化的关键。“17年来,我们从未发生过影响到客户利益的重大宕机事件。”
#p#
最大化服务器正常运行时间的六个步骤
1 仔细规划。强力实施生命周期管理,并对这项任务进行双重检查,包括系统配置和维护日程安排。服务器的采购和升级应有详尽规划,并与系统的可用性和性能相协调。
2 实施定期的预防性维护。这也许是支撑服务器可靠性的最容易和痛苦最少的办法。正如旧车修理业常说的那句告诫语,“现在掏钱维护要比将来掏钱修省多了。”
3 使用管理和监控工具。如果没有适当的监管,你就不可能找到导致服务器正常运行时间不高的根源,也不可能测量宕机对关键业务的影响。
4 提升安全性。不要让攻击者干扰你实施正常运行时间最大化的目标。防恶意软件产品、防火墙和独立审计是能够对服务器正常运行时间产生正面作用的诸多安全工具和实践中的几种。
5 购买高质量的硬件。质量低劣的服务器是通往宕机之路的铺路石。
6 尊重常识。千万别去浪费时间、人力和金钱,一心想从老旧的、经常出问题的服务器上榨出最后一点儿利用价值来。