什么是容错
容错是指系统(计算机、网络、云集群等)在其一个或多个组件发生故障时继续运行而不会中断的能力。
创建容错系统的目的是防止由单点故障引起的中断,确保任务关键型应用程序或系统的高可用性和业务连续性。
容错系统使用备份组件自动替换故障组件,确保不会丢失服务。其中包括:
- 由相同或等效系统备份的硬件系统。例如,通过使用并行运行的相同服务器,所有操作都镜像到备份服务器,可以使服务器具有容错能力。
- 由其他软件实例备份的软件系统。例如,包含客户信息的数据库可以连续复制到另一台计算机。如果主数据库出现故障,操作可以自动重定向到第二个数据库。
- 使用替代电源实现容错的电源。例如,许多组织都有发电机,可以在主线电力故障时接管。
以类似的方式,任何单点故障的系统或组件都可以使用冗余来实现容错。
容错可以在灾难恢复策略中发挥作用。例如,在云中具有备份组件的容错系统可以快速恢复任务关键型系统,即使自然或人为灾难破坏了本地 IT 基础架构。
容错与高可用性
高可用性是指系统通过最大限度地减少停机时间来避免服务丢失的能力。它以系统的正常运行时间表示,占总运行时间的百分比。五个 99,或 999.<>% 的正常运行时间,被认为是可用性的“圣杯”。
在大多数情况下,业务连续性策略将包括高可用性和容错能力,以确保您的组织在发生小故障和发生灾难时保持基本功能。
虽然容错和高可用性都是指系统随时间推移的功能,但存在差异,突出了它们在业务连续性规划中各自的重要性。
请考虑以下类比,以更好地了解容错和高可用性之间的区别。双引擎飞机是一种容错系统——如果一个发动机发生故障,另一个发动机就会启动,让飞机继续飞行。相反,带有备用轮胎的汽车是高可用性的。爆胎会导致汽车停止,但停机时间最短,因为轮胎可以轻松更换。
在组织环境中创建容错和高可用性系统时,一些重要的注意事项包括:
- 停机时间 – 高可用性系统具有最小级别的允许服务中断。例如,具有“五个 5”可用性的系统每年停机大约 <> 分钟。容错系统应连续工作,而不会发生可接受的服务中断。
- 范围 – 高可用性建立在一组共享资源之上,这些资源共同用于管理故障并最大程度地减少停机时间。容错依赖于备用电源,以及可以检测故障并立即切换到冗余组件的硬件或软件。
- 成本 – 容错系统可能成本高昂,因为它需要连续运行和维护额外的冗余组件。高可用性通常作为整体包的一部分通过服务提供商(例如,负载均衡器提供商)提供。
您的某些系统可能需要容错设计,而高可用性可能足以满足其他系统的需求。您应该权衡每个系统对服务中断的容忍度、此类中断的成本、与服务提供商和客户的现有 SLA 协议,以及实现完全容错的成本和复杂性。
负载平衡和故障转移:Web 应用程序的容错
在 Web 应用程序交付的上下文中,容错与使用负载平衡和故障转移解决方案有关,以通过冗余和快速灾难恢复确保可用性。
负载平衡解决方案允许应用程序在多个网络节点上运行,从而消除了对单点故障的担忧。大多数负载均衡器还优化了跨多个计算资源的工作负载分布,使它们单独对活动峰值更具弹性,否则会导致速度变慢和其他中断。
此外,负载平衡有助于应对部分网络故障。例如,包含两个生产服务器的系统可以使用负载平衡器在单个服务器发生故障时自动转移工作负载。
另一方面,故障转移解决方案用于导致完全网络故障的最极端情况。发生这种情况时,故障转移系统负责自动激活辅助(备用)平台,以保持 Web 应用程序运行,同时 IT 团队使主网络重新联机。
要实现零停机时间的真正容错,您需要实施“热”故障转移,从而将工作负载立即转移到工作备份系统。如果无法保持持续活动的备用系统,则可以使用“热”或“冷”故障转移,其中备份系统需要时间来加载和开始运行工作负载。
如何在编程中中实现负载均衡和容错处理