更新时间:2026-07-10 GMT+08:00
分享

存算分离

存算分离(Storage-Compute Separation)是一种将数据存储与计算能力解耦的架构设计,在TaurusDB中,存储层和计算层可以独立扩展和管理。这种架构使计算资源可根据业务需求灵活调整,而存储资源可独立扩展,无需考虑计算节点的影响,从而提高资源利用率,降低总体拥有成本,支持更灵活的部署和扩展策略。

为什么需要存算分离

传统数据库架构中,计算与存储紧密耦合,资源分配固定且难以调整。企业需要根据业务峰值预留足够资源,导致日常资源闲置浪费;与此同时,当业务突发性增长超出预期时,又面临资源瓶颈,系统性能急剧下降,甚至可能引发服务中断。这种业务负载波动与固定资源分配之间的矛盾,已成为制约企业IT效能提升的关键瓶颈。

企业面临两难抉择:一方面,需要严格控制IT成本,避免资源闲置浪费;另一方面,必须确保系统在高负载下仍能保持稳定性能,保障业务连续性和用户体验。这种矛盾在电商大促、节日营销、活动推广等流量激增场景下尤为突出,直接影响业务成果和客户满意度。

华为云TaurusDB DFV存储基于创新的存算分离架构,打破了传统数据库的计算与存储耦合桎梏。通过将计算层与存储层解耦,实现两者的独立扩展与精细化管理,使两者可以独立扩展和管理:

  • 计算层弹性伸缩:可根据实时业务负载动态调整计算资源,实现秒级扩缩容,精准匹配业务需求。
  • 存储层独立扩展:存储容量可按需线性扩展,不受计算节点限制,满足海量数据增长需求,实现资源的按需分配。

这种架构不仅提高了资源利用率,降低了总体拥有成本,还简化了运维工作,让企业能够更专注于业务创新,快速响应市场变化。

存算分离的优势是什么

  • 计算与存储解耦:计算层和存储层在架构上相互独立,可以分别进行管理和扩展,互不影响。
  • 资源独立扩展:计算资源和存储资源均可根据业务需求灵活调整,且存储资源可独立扩展,无需相互影响。
  • 高可用架构:通过多副本机制和数据冗余存储,确保数据的安全性和可靠性。
  • 资源利用率高:避免了因固定资源分配造成的闲置浪费,从而提升了整体资源利用效率。

存算分离的使用场景

  • 电商平台促销活动支撑电商平台在促销活动期间面临流量激增的挑战,日常访问量波动大,需要应对突发的高并发访问。采用TaurusDB存算分离架构,存储层与计算层解耦,能够独立扩展计算资源以应对流量高峰,同时保持存储层的稳定性和数据一致性。这种架构使系统能够灵活应对促销期间的突发流量,确保订单系统、商品库存管理和用户数据存储服务的稳定运行,避免了因存储和计算资源耦合导致的性能瓶颈,同时保障了促销活动期间的业务连续性。
  • 移动应用后端服务:移动应用用户规模快速增长,访问量难以预测,同时需要保证低延迟的响应速度。TaurusDB存算分离架构为移动应用提供用户数据管理、消息推送和内容存储等后端服务,存储层可独立扩展确保数据高可用性,计算层可根据实际负载动态调整资源。这种架构简化了运维复杂度,使系统能够快速响应业务变化,同时存储和计算资源可分别针对数据持久性和计算性能进行优化,有效提升了用户体验和服务响应速度。
  • 数据分析平台:数据分析师经常需要处理大量历史数据,查询模式复杂多变,导致计算资源需求波动较大。TaurusDB存算分离架构为数据分析平台提供数据存储和分析服务,存储层针对大数据量进行优化,确保数据持久性和高效访问,计算层可根据查询复杂度和并发度动态调整。这种架构支持计算引擎共享同一存储层,从而提高数据共享和复用效率。同时,存储和计算资源可独立升级,不影响整体服务可用性,进而显著提升数据处理效率和分析灵活性。

存算分离的工作原理

架构从上到下分为3个部分:计算层、存储抽象层(Storage Abstraction Layer, 简称SAL)和存储层。

  • 计算层:主要由一个主节点和多个只读节点组成。主节点负责提供业务的读写能力,而只读节点则用于分担读取负载,提高系统的整体性能和可用性。
  • SAL层:位于计算层和存储节点的中间层,主要给InnoDB层提供日志和数据的存储服务。将原始数据库基于表文件的操作抽象为对应分布式存储,向下对接DFV,向上提供高效调度的数据库存储服务,是数据库高性能的核心。
  • 存储层:基于华为DFV存储,提供分布式、强一致和高性能的存储能力,此层来保障数据的可靠性以及横向扩展能力,保证数据的可靠性不低于99.999999999%。包括两个主要的存储子服务:Log Store和Page Store。
    • Log Store:用来持久化日志的服务。
    • Page Store:提供一致性多版本页面能力的存储服务。为便于管理页面数据,我们采用分片方式存储多个Page数据,每个分片(Slice)的大小固定为10GB。
图1 架构图

存算分离与存算一体的区别

存算分离架构与存算一体架构是两种不同的数据库服务实现方式。它们共同为应用提供数据存储和计算能力,核心目标一致,均致力于保障数据安全并提供高效的数据访问和处理能力。在应用领域上,两者存在广泛重叠,均可应用于OLTP(在线事务处理)、OLAP(在线分析处理)等多种场景;同时,它们在基础功能方面也具有相似性,均支持事务处理、数据持久化、备份恢复等核心数据库功能,为各类业务场景提供稳定可靠的数据服务支撑。

核心差异

  1. 资源扩展模式
    • 存算分离:存储资源与计算资源完全解耦,可根据业务需求独立扩展存储容量或计算能力,二者互不影响。
    • 存算一体:存储与计算资源耦合为一个整体进行扩展,增加或减少资源时需同时考虑两者。
  2. 资源利用率
    • 存算分离:可根据实际负载分别优化存储和计算资源,避免资源闲置,提高整体资源利用率。
    • 存算一体:存储和计算资源必须按照峰值需求配置,容易导致资源闲置或不足,资源利用率相对较低。
  3. 故障隔离与恢复
    • 存算分离:存储层和计算层的故障相互隔离,单一组件的故障不会导致整个系统不可用,恢复过程更为灵活。
    • 存算一体:存储与计算紧密耦合,任一组件发生故障都可能影响整个系统的可用性,并且恢复过程较为复杂。

差异原因

造成存算分离与存算一体核心差异的根本原因主要有:

  1. 设计理念不同:存算分离基于资源解耦和独立优化的设计理念,旨在最大化资源利用率和系统弹性;而存算一体则基于资源整合和简化管理的理念,强调部署便捷性和运维的统一性。
  2. 技术架构不同:存算分离需要分布式存储和计算分离的技术支持,从而实现存储与计算的完全分离;而存算一体则通常采用传统的单体架构设计,将存储和计算紧密耦合在一起。
表1 存算分离与存算一体的区别

对比维度

存算分离

存算一体

资源扩展模式

存储和计算资源可以独立扩展

存储和计算资源作为一个整体扩展

资源利用率

可根据负载分别优化,利用率高

需按峰值配置,利用率相对较低

故障隔离与恢复

存储层和计算层故障相互隔离

存储和计算耦合,故障影响范围大

相关文档