什么是可用性?
本文中使用了可用性的定义,因为它是 Internet 站点涉及到的一个概念。 可用性包括可靠性、故障恢复和故障几个方面。 常用的可用性计量标准之一是“九的个数”。“这一数字可以转换为某一系统可正常工作的时间百分比。 例如,一个运行时间百分比为 99.999 的系统可以说成其可用性为五个九。 下表给出了九的个数和时间之间的对应关系。
从运行时间的角度来看可用性
从上表可以看出,可接受运行时间为百分之 99.9 的系统平均每天只有 86.40 秒钟或每月只有 43 分钟是不可运行的。 要获得更多个九的可用性,必需要对系统部署、软件和解决方案实施的管理加以改进。 要预测一个系统何时甚至是隔多久会发生故障是非常困难的,因此要获得更好的可靠性,一个关键的规划方法是要缩短故障的恢复时间。 如果您的系统可以在 86.4 秒钟之内从故障中恢复过来,那么系统即使每天发生一次故障,仍然能够达到三个九的可用性。
从成功交易角度来看可用性
上述的可用性概念是作为运行时间的函数分析的,与此相反是将可用性作为成功交易的函数来分析可用性这个概念。 换句话说,如果某一个 Web 站点每天处理 100000 个请求,那么百分之 99.9 的可用性意味着每天有 100 个请求是失败的。 如果您将此作为衡量可用性的标准,那么在业务规划中对可用性的要求可能会发生变化。 例如,在之内一个 Web 站点的通信量是在改变的。 在凌晨两点的时候,您的站点每小时的访问次数可能还不到 100 。 如果您的站点在这期间发生故障,那么此时发生的失败请求数量大约要比下午 5 点时少四倍,那个时候是中的峰值时刻,每小时的访问次数为 400 次或更多。
使站点不可用的三类事件
有三类时间可能会造成您的 MSIB 2.0 站点无法工作,从而造成其不可用:人为错误、硬件故障和软件故障。如果规划不当的话,这些事件中的任何一个都可能会使站点的目标可用性无法实现。
人为错误
人为错误是需要认真对待的一类事件。 在用户和正在工作的站点交互作用的时候,他们可能会执行某些对站点管理造成不良影响的操作。 因此,强烈建议对管理操作首先在专门测试环境中加以测试然后再编写脚本。 当新的管理操作第一次用于实际运行站点的时候,应当对其进行仔细监控,观察其对整个系统的影响。 认真的规划会有助于站点实现高的可用性。 参见 MSIB Solutions Operations Guide 地址在 http://go.microsoft.com/fwlink/?LinkId=15047 ,其中介绍了可以减少人为错误的主意和佳做法。
硬件故障
硬件故障可能会在任何时候发生。 这类故障包括环境故障,如天灾和火灾等。 在硬件实现的设计中将单点故障降到低是降低这种风险的安全方式。 在部署计划阶段中,MSIB 2.0 站点的实施人员应当编制一份硬件地图,给出存储器、网络和软件逻辑的所有连接点。 之后可以制定解决潜在单点故障的方案并进行成本和风险对比分析。 这方面可以有很多不同的解决方案,从自始至终对关键数据进行简单磁带备份到可以容灾的系统防护系统不一而足。
软件故障
软件故障是可能导致您的站点无法工作的第三类事件。 为了避免因软件故障造成总的功能损失,MSIB 2.0 使用了群集技术以提高可用性。 站点代码和基本部件的设计允许在发生临时故障的时候进行重试操作。 MSIB 2.0 解决方案中执行交易的部分利用了 Distributed Transaction Coordinator (DTC)、Microsoft Message Queue (MSMQ) 和交易以保证数据的完整性。
高可用性技术和建议
这一部分介绍了一些技术和建议,帮助您部署一个高可用性的 MSIB 2.0 站点。
本部分包括:
用于高可用性的群集和负载均衡技术
旨在获得高可用性的软件建议
旨在获得高可用性的硬件建议
用于高可用性的群集和负载均衡技术
群集是指一组相互独立的计算机,它们共同合作运行公共的一套应用程序或服务,对客户端和应用程序来说像是单个系统一样。 群集计算机在物理上通过网线连接到一起,在程序上则通过群集软件连接到一起。 这些连接使得这些计算机可以使用单独的计算机无法使用的一些问题解决功能,例如负载均衡和故障切换等。
负载均衡功能将负载在所有配置的服务器之间分配,防止某一台服务器负载过度。 通过这种方式从而又让您能够逐步增大容量以满足自己的需求。 故障切换功能可以自动将资源从故障的或脱机的群集服务器上转移到正在运行的一台服务器上,从而为用户提供了恒定的支持。 这样用户始终都可以访问 MSIB 站点的资源了。 目前,Windows Clustering 可以提供如下的群集和负载均衡技术:
网络负载均衡
Microsoft 群集服务
组件负载均衡
网络负载均衡
网络负载均衡(NLB)技术可以把多达 32 台运行 Windows 2000 Advanced Server 组合到经负载均衡的单个群集中,从而可以提供基于 TCP/IP 的应用和服务的可扩展性和高可用性。
在本文测试的 MSIB 2.0 企业部署中,MSIB 项目组利用 NLB 技术将下表所列的服务器群集了起来。