Page 273 - 《软件学报》2026年第1期
P. 273

270                                                        软件学报  2026  年第  37  卷第  1  期


                 台中各层次的高可用性得以保障.
                    中间件方法是独立于平台和应用程序的可用性解决方案. 在云环境中, 这些中间件可以作为平台即服务
                 (platform as a service, PaaS) 提供. 文献  [62] 中提出的  Cloud-Niagara 中间件是一种确保基于云的应用程序的容错
                 性的高可用低延迟中间件. 其架构分为应用层, 中间件层和基础设施层. 应用层运行用户的应用程序并提供对底层
                 容错机制的透明支持; 中间件层实现容错和高可用机制; 基础设施层负责底层的云计算资源和服务. Cloud-Niagara
                 使用有效的描述性集理论来建模云环境上运行的实际应用的故障检测模型. 在检测到系统故障后, Cloud-Niagara
                 中间件通过确定性算法自动分配备份节点到系统中, 确保云应用能够在发生故障时平滑过渡, 持续运行. 文中指
                 出, 实现中间件目标的关键在于无延迟通知和资源监控, 这是通过识别故障性质的分析模型来实现的. 针对故障的
                 检测, 该文献提出了一种基于         watchdog、检查点和日志的确定性算法. 文献           [63] 的  OpenStack  是一个用于公共和
                 私有云的开源平台, 用于控制大量计算、存储和网络资源. OpenStack                 有多个组件, 每个组件负责云环境的特定方
                 面, 在  HA  方面, 通过  Heat 组件可以从  3  个级别监控资源和应用程序: 应用程序级别、实例级别和堆栈级别                     (VM
                 组). 如果出现失败, Heat 会尝试在当前水平上解决问题. 如果问题仍然存在, 它将尝试在更高的层面上去解决. 但
                 是, 重新启动资源最多可能需要           1 min  的时间. 文献   [64] 在应用程序中实现       HA  的解决方案是在云中部署
                 SAForum  中间件. HA  的专用中间件提供了一种替代解决方案, 该解决方案基于监视应用程序, 并通过隔离其故障
                 组件来对其故障做出反应, 并将服务故障转移到可以恢复服务供应的冗余副本.
                    云计算框架提供了成本效率, 更好的资源利用率和可扩展性. 可用性仍然是云面临的主要挑战之一. Heat 等解
                 决方案已被提出, 并与       OpenStack  等云控制器集成. 这些解决方案可以保护服务免受应用程序和基础设施故障的
                 影响. 然而, 应用程序的恢复与底层基础设施的恢复联系在一起, 因此, 服务恢复和中断时间可能是相当大的. 文
                 献  [65] 提出了一种架构, 它集成了现有的高可用性中间件解决方案                 OpenSAF  和  OpenStack, 用于管理应用程序和
                 基础设施的可用性. 目标是在发生故障的情况下, 减少基础设施即服务                      (infrastructure as a service, IaaS) 云服务模
                 型中  VM  服务的中断时间以及       VM  中运行的应用程序所提供服务的中断时间, 以提高部署在云中的服务的可用
                 性. 该方案取得了比      Heat 更好的效果   (主要是因为更快的故障检测和故障转移恢复选项, 允许应用程序服务的恢
                 复独立于故障组件和底层的修复), 并在冗余模型和恢复操作方面提供了灵活性.
                     尽管迄今为止大多数基于云的应用程序都是企业级的, 但在云中托管实时流应用程序的需求正在增加, 这需
                 要同时满足高可用性和低延迟的要求. 当前的云计算研究很少集中在以优化数据中心资源消耗的方式为这些应用
                 提供高可用性和实时保证的解决方案上, 文献               [66] 应对这一挑战提出了一个容错云计算基础设施的中间件框架
                 的体系结构细节, 该框架可以根据用户定义的灵活算法自动部署虚拟机的副本. 该中间件扩展了                               Remus VM  故障
                 转移解决方案, 并与      OpenNebula 云基础架构软件和     Xen  管理程序集成, 提出了一个可插拔的框架的设计, 使应用
                 程序开发人员能够提供他们的策略来选择物理主机进行副本                     VM  放置.
                  2.3.3    虚拟化
                    在云计算中采用服务器虚拟化的主要因素是在虚拟化提供的物理资源上重新分配工作负载的灵活性                                    [67] . 允
                 许云提供商在不停止开发人员应用程序              (在虚拟机上运行) 的情况下执行维护, 并通过虚拟机迁移实施更好的资
                 源使用策略. 虚拟化还可以用于在          VM  级别实现   HA  机制, 例如故障和攻击隔离、检查点和回滚作为恢复机制. 除
                 此之外, 虚拟化还可以通过虚拟化网络功能在网络级别上使用, 以实现相同的目标. 为了给非                            HA  应用迁移到云端
                 提供通用的可用性解决方案, 人们提出了各种基于虚拟化技术的可用性解决方案. 在这些解决方案中, 故障检测和
                 故障服务的恢复是在虚拟机          (VM) 级别执行的. 在云环境中, 这些基于虚拟化的解决方案可以在                   IaaS  提供. 例如,
                 VMware 提出了两种可用性解决方案: VMware HA          和  VMware Fault Tolerance (FT). 这两种解决方案都可以保护
                 应用程序免受虚拟机故障的影响, 并通过重新启动发生故障的虚拟机或将其故障转移到另一台主机来恢复服务.
                 Amazon EC2  等  IaaS  提供商也提供可用性机制来保护虚拟机的可用性. 但是, 用户有责任正确使用这些机制.
                    文献  [68] 中的  Remus 是一个为运行在     Xenon  上的普通虚拟机提供透明高可用性的软件系统. 它通过将正在
                 运行的虚拟机的副本持续实时迁移到备份服务器来实现这一点, 如果主服务器出现故障, 备份服务器会自动激活.
   268   269   270   271   272   273   274   275   276   277   278