本文系统解析YashanDB自研YFS集群文件系统的技术架构,深入探讨DIRECT IO、条带化、软RAID等核心存储优化机制,为数据库IO优化提供全面的技术参考。

 

一、引言:数据库存储的”最后一公里”瓶颈

在数据库性能优化的漫长旅途中,人们往往将注意力集中在SQL优化、索引设计、内存调优等层面,却容易忽略一个根本性的问题——当数据最终要落盘时,存储层能否跟上计算层的节奏?

这就好比修建了一条十车道的高速公路,却在终点设置了一个单通道收费站。无论前端计算多么高效,如果存储IO成为瓶颈,整个系统的性能天花板便被牢牢锁死。数据库存储正是这条高速公路的”最后一公里”,而如何突破这一瓶颈,正是YFS文件系统诞生的核心使命。

YFS文件系统(YashanDB File System)是崖山数据库自研的集群文件系统,专为共享存储架构设计,旨在为数据库提供高效、可靠、可扩展的底层存储支撑。它通过DIRECT IO绕过操作系统缓存、通过条带化实现并行IO、通过软RAID保障数据冗余,构建了一套完整的数据库IO优化方案。

 

二、核心概念解析:从共享存储到集群文件系统

2.1 共享存储架构

共享存储(Shared Storage)是数据库集群的一种经典架构模式。在这种架构下,多个数据库节点通过高速网络共同访问同一组物理存储设备。与Shared-Nothing架构不同,共享存储架构将数据集中管理,避免了数据在节点间迁移的开销,天然适合对数据一致性和事务完整性要求极高的场景。

共享存储架构的核心优势在于:

数据单一来源:所有节点访问同一份数据,无需复杂的数据同步机制

故障切换快速:节点故障时,其他节点可直接接管,无需数据重建

弹性扩展灵活:计算层和存储层可独立扩展

2.2 集群文件系统的角色

在共享存储架构中,集群文件系统扮演着关键的协调者角色。传统的本地文件系统(如ext4、XFS)只能被单个节点独占使用,无法满足多节点并发访问的需求。集群文件系统则需要解决多节点间的并发控制、锁管理、缓存一致性等一系列复杂问题。

YFS作为YashanDB专用的集群文件系统,与YAC共享集群(YashanDB Active-active Cluster)深度集成,为数据库提供了一套从文件管理到物理IO的完整存储解决方案。

2.3 数据库存储的分层模型

一个完整的数据库存储体系通常包含以下层次:

image.png

YFS正是在这个分层模型中承上启下的关键一层,它的设计质量直接决定了数据库的IO性能上限。

 

三、技术原理深度剖析

3.1 DIRECT IO:绕过操作系统页缓存的高效路径

传统IO的双重缓存问题

在传统的数据库IO路径中,数据从磁盘读取后,首先经过操作系统内核的页缓存(Page Cache),然后再被拷贝到数据库自身的缓冲池(Buffer Pool)中。这意味着同一份数据可能在内存中存在两份拷贝:

操作系统页缓存中的拷贝

数据库缓冲池中的拷贝

这种”双重缓存”带来了三个显著问题:

1. 内存浪费:宝贵的内存资源被重复占用,有效利用率降低

2. CPU开销:数据在内核空间和用户空间之间需要额外的拷贝操作

3. 一致性风险:两份缓存之间可能出现不一致状态

DIRECT IO的工作机制

DIRECT IO(直接IO)是一种绕过操作系统页缓存的IO方式。当数据库启用DIRECT IO后,IO请求直接从用户空间传递到块设备驱动,省去了内核页缓存这一中间环节。

YFS在DIRECT IO的实现上具有以下技术特点:

零拷贝路径:数据从存储设备直接加载到数据库缓冲池,减少至少1次内存拷贝操作

精确控制:数据库完全掌控数据的缓存策略,能够根据访问模式进行针对性优化

内存独占:释放的页缓存空间可全部用于数据库缓冲池,有效内存容量提升约30%-50%

通过DIRECT IO,YFS将IO路径从”磁盘→内核缓存→用户空间”简化为”磁盘→用户空间”,每百万次IO操作可节省约15%-25%的CPU开销。

3.2 条带化:并行IO的基石

条带化原理

条带化(Striping)是将连续的逻辑数据块分散写入多个物理磁盘的技术。其核心思想是:单块磁盘的IO带宽有限,但多块磁盘并行工作可以汇聚带宽,从而突破单盘性能瓶颈。

以一个简单的例子说明:假设将1MB的数据以64KB的条带单元分散写入8块磁盘,那么:

单盘IO路径:1MB ÷ 单盘带宽 ≈ 10ms

条带化IO路径:128KB ÷ 单盘带宽 ≈ 0.8ms(8块盘并行)

理论上,8块磁盘的条带化可将顺序IO吞吐量提升至单盘的8倍。

YFS的条带化策略

YFS实现了智能的条带化策略,其技术细节包括:

可配置的条带宽度:根据业务场景选择不同的条带单元大小。OLTP场景通常采用较小的条带单元(如64KB),以优化随机IO;OLAP场景则采用较大的条带单元(如1MB),以优化顺序扫描。

动态负载均衡:YFS实时监控各磁盘的IO负载,将新的IO请求优先调度到负载较低的磁盘,避免热点磁盘成为瓶颈。测试数据表明,动态负载均衡可使磁盘利用率的方差降低60%以上。

故障感知调度:当某块磁盘出现性能下降或即将故障时,YFS能够自动将IO流量迁移到健康磁盘,保障业务连续性。

3.3 YFS软RAID:V23.5版本的重要升级

在YashanDB V23.5版本中,YFS新增了软RAID能力,这是该版本在存储层的重要技术升级。相比传统的硬件RAID,YFS软RAID具有以下优势:

灵活的冗余策略:支持在磁盘组级别配置不同的冗余策略,用户可以根据数据重要性选择高冗余或高性能模式,无需受限于硬件RAID卡的固定配置。

在线容量管理:YFS支持在线增减盘操作,包括:

在线创建磁盘组

向磁盘组增加故障组

向故障组增加磁盘

这些操作无需停机、无需数据迁移中断业务,实现了真正的在线扩容。

硬件资源高效利用:通过软RAID与DIRECT IO的协同优化,YFS实现了硬件有效资源利用率超过75%的优秀表现,远高于传统存储方案中40%-50%的典型利用率。

3.4 故障组与空间管理

YFS引入了故障组(Failure Group)的概念,将物理磁盘按照故障域进行逻辑分组。故障组的设计遵循一个核心原则:同一份数据的多个副本必须分布在不同的故障组中,确保单个故障组的故障不会导致数据丢失。

典型的空间组织结构为:

磁盘组(Disk Group)

├── 故障组A(Failure Group A)

│   ├── 磁盘1

│   └── 磁盘2

├── 故障组B(Failure Group B)

│   ├── 磁盘3

│   └── 磁盘4

└── 故障组C(Failure Group C)

├── 磁盘5

└── 磁盘6

每个故障组通常对应一台存储设备或一个机柜,确保物理层面的故障隔离。在三副本模式下,任意一个故障组整体失效时,数据仍然可用且能够自动修复。

 

四、应用场景分析

4.1 高并发OLTP场景

在金融交易、电商下单等高并发OLTP场景中,数据库面临大量小随机IO的挑战。YFS通过以下机制应对:

DIRECT IO减少延迟:绕过内核缓存,单次IO延迟降低约20%-30%

小条带宽度:采用64KB条带单元,将随机IO均匀分布到多块磁盘

故障感知调度:实时避开性能下降的磁盘,保障尾延迟稳定

在2节点鲲鹏环境下,YashanDB结合YFS存储方案实现了约450万tpmC的TPC-C性能,这一成绩超过了同等规模的x86环境,充分证明了软硬件协同优化的效能。

4.2 大规模数据仓库场景

在数据仓库和OLAP场景中,IO特征以大块顺序读为主。YFS的优化策略包括:

大条带宽度:采用1MB条带单元,最大化顺序IO吞吐量

并行扫描:充分利用多块磁盘的聚合带宽,全表扫描性能提升3-5倍

空间预分配:减少文件碎片,保障大块数据的连续存储

4.3 混合负载场景

在HTAP混合负载场景下,YFS需要同时处理OLTP的随机小IO和OLAP的顺序大IO。YFS通过IO优先级队列和智能调度算法,确保两种IO类型互不干扰,各自获得合理的资源分配。

 

五、YFS技术优势总结

下表系统总结了YFS集群文件系统的核心技术优势及其量化收益:

image.png

 

六、行业实践与代表产品

6.1 YashanDB共享集群方案

作为YFS的核心载体,YashanDB共享集群(YAC)在多个行业场景中得到了验证:

金融行业关键系统:某城商行采用YashanDB共享集群替代原有国际主流数据库共享集群方案,基于国产鲲鹏服务器和YFS存储架构,实现了关键交易系统的国产化迁移。迁移后系统TPC-C性能达到约450万tpmC(2节点鲲鹏)超过原x86环境下的表现,同时硬件有效资源利用率从原来的不足50%提升至超75%,显著降低了硬件采购和运维成本。

政务云平台:某省级政务云采用YashanDB共享集群承载多个委办局的业务系统。通过YFS的在线增减盘能力,平台实现了按需扩容,在业务高峰期灵活增加存储资源,高峰期过后释放资源,存储成本降低约40%。

6.2 技术对标与选型参考

在数据库存储架构的选型中,YFS集群文件系统的定位可以从以下维度理解:

对标国际主流数据库ASM:YFS的功能定位类似于国际主流数据库的ASM(Automatic Storage Management),但YFS作为完整的集群文件系统,提供了更丰富的文件管理能力

对标GPFS/Lustre:在集群文件系统领域,YFS更专注于数据库场景,相比通用并行文件系统,在数据库IO模式下有更深度的优化

国产化优势:YFS作为纯自研组件,不依赖任何国外文件系统技术栈,适合作为信创替代方案的核心组件

6.3 未来展望

随着NVMe、持久内存(PMEM)等新型存储介质的普及,YFS的技术演进方向将聚焦于:

1. NVMe-oF支持:通过NVMe over Fabrics协议实现更低延迟的远程存储访问

2. 持久内存优化:利用PMEM的字节寻址特性,进一步降低IO路径开销

3. 智能分层存储:根据数据热度自动在不同存储介质间迁移,实现性能与成本的最优平衡