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

向清平 等: 分布式数据库高可用研究进展                                                             271


                 其主要功能包括: 备份虚拟机是主虚拟机             (磁盘/内存/网络) 的精确副本; 备份完全是最新的, 即使活动的 TCP 会话
                 也能不间断地维持; 无须以任何方式修改即可保护现有访客. Remus 以主动-被动配置运行配对服务器. 采用了两
                 种主要技术: 使用虚拟化基础架构来简化整个系统的复制、异步复制允许主服务器继续运行的同时异步执行与复
                 制服务器的同步      [69] .
                    但是, 在文献    [68] 中提到  Remus 和类似  VM  检查点系统下的数据库系统所经历的性能开销的两个原因. 首
                 先, 数据库系统密集使用内存, 因此在检查点期间需要从主                  VM  传输到备份   VM  的状态量很大. 其次, 数据库工作
                 负载可能对网络延迟很敏感, 而用于确保客户端与服务器通信能够在故障中幸存的机制会增加通信路径的延迟.
                 RemusDB [70] 采用  Remus 来解决这两个问题. 在这两种情况下, 都会产生开销, 因为           Remus 提供对   DBMS  完全透明
                 的高可用性. 这种完全透明的限制可以放宽, 从而大大减少开销. 文中提出了一种主动-备用                           HA  解决方案, 该解决
                 方案基于在虚拟机中运行         DBMS, 并将与   HA  相关的大部分复杂性从       DBMS  中排除, 而是依赖于虚拟化层的功能.
                 虚拟化层捕获活动主机        (包括  DBMS) 上整个   VM  状态的变化, 并将其传播到备用主机, 并在备用主机上应用到备
                 份  VM. 虚拟化层还检测故障并管理从活动主机到备用主机的故障转移, 这对                      DBMS  是透明的. 在故障转移期间,
                 将维护所有事务      ACID  属性并保留客户端连接, 从而使故障对           DBMS  客户端透明.
                    在云计算和虚拟化环境中, 传统的容错技术常常面临性能开销大、延迟高的问题. 文献                                 [71] 中提出的
                 Phantasy  是旨在通过异步预取技术, 减少容错机制带来的延迟, 实现低开销的高可用性的虚拟化软件系统. 首先确
                 定了现有方法中的两个瓶颈, 即软件中跟踪脏页的开销和检查点系统状态中的长顺序依赖. 为了解决这些瓶颈, 设
                 计了一种新的机制, 在基于虚拟化的容错系统中使用                 PML (page-modification logging) 和网络  (RDMA) 的特性实
                 现高效低延迟容错. 首先使用         PML  来降低脏页跟踪开销, 然后在        RDMA  的帮助下, 使用拉取模型异步地预取脏页
                 而不破坏主要的      VM  执行, 以缩短检查点执行中的顺序依赖性. 即通过主动地将                   PML  记录的脏页拉取到次级
                 VM, 从而推测性地预取      PML  记录的脏页, 而不中断主       VM  的执行.
                    云资源使用量的大幅增加导致服务可用性下降, 从而导致中断、资源争用和过度功耗. 现有的方法主要通过
                 提供多云、虚拟机迁移以及运行每个虚拟机的多个副本来解决这一问题, 这会导致云数据中心的高昂费用, 在此
                 背景下, 文献   [72] 提出了基于   VM  重要性排名和资源估计的高可用性管理模型, 通过优化云数据中心的成本来增
                 强用户的服务可用性, 其估计基于服务器故障的资源争用, 并预先组织所需的资源以维持所需的服务可用性水平,
                 为每个虚拟机引入并计算重要性排名参数, 执行关键或非关键任务, 然后根据其重要性和用户指定的约束选择可
                 接受的高可用性策略.
                    数据库系统中使用多种类型的           HA  技术, 有时会组合使用. 在共享访问方法中, 两个或多个数据库服务器实例
                 共享一个保存数据库的公共存储基础架构. 存储基础设施冗余地存储数据, 例如通过将数据镜像到多个设备上, 以
                 确保数据的可靠性. 此外, 服务器访问存储数据的存储互连                  (例如  SAN) 必须通过使用冗余访问路径来提高可靠
                 性. 如果数据库服务器发生故障, 可以访问同一数据库的其他服务器可以接管故障服务器的工作负载. 如                                 Oracle
                 RAC  实现了跨服务器实例的虚拟共享缓冲池、Microsoft SQL Server 中的故障转移集群以及通过                    MySQL Cluster
                 中的  NDB  后端  API 访问的同步数据节点.
                    云服务正在成为向需要更高可用性服务的用户提供计算服务的最流行的手段之一. 虚拟化是云基础设施的关
                 键使能因素之一. 虚拟机的可用性和托管软件组件的可用性是云中实现高可用服务的基本要素. 目前已有一些虚
                 拟化厂商推出的可用性解决方案, 如           VMware HA  和  VMware FT. 同时, SAForum  规范和  OpenSAF  作为一个兼容
                 的实现, 为服务高可用性提供了一个基于标准的开放解决方案. 为解决虚拟化环境中的高可用性, 文献                                [73] 中选
                 择了开源的高可用性解决方案           OpenSAF  和  VMware 作为虚拟化解决方案, 最初的实验表明, VMware HA          对故障
                 的响应能力不如      OpenSAF. 为了结合它们的特点并利用它们的优势, 设计了两种新的架构, 使用非裸机和裸机管
                 理程序来解决所发现的缺点. 主要的目标是通过                OpenSAF  来管理  VM  的生命周期, 以减少     VM  在发生故障时的
                 停机时间和修复时间, 同时运行在          VM  中的服务继续提供服务. 目前为止, 已经实现并实验了使用非裸机管理程序
                 的架构.
   269   270   271   272   273   274   275   276   277   278   279