浅谈爱数的存储引擎 OFS(一)

  爱数的备份引擎历经了Turtle引擎、Hercules引擎,现已经发展到第三代引擎---FAST引擎,如引擎名字一样,我们在着手架构和实现此引擎时,就希望能够在性能上有所突破。但在现阶段无新的理论基础以及新算法的诞生,如果希望引擎能够在备份恢复性能上取得新的突破,只能寄希望于引擎架构上的突破,这也是FAST引擎最鲜明的技术特点,在此文章中,将把FAST引擎的关键组件之一:OFS存储引擎进行初步的介绍。

  一、把握趋势的关键点

  当Oracle的埃里森郑重的发誓,Exadata 将会是Oracle最成功的产品,业界还对此不置可否。在完成对Sun公司的收购后,短短一年时间,Oracle就取得了近80%的增长速度,而取得此佳绩最关键的产品线,正是Exadata2,这款集成Oracle数据库、Sun服务器和存储的OLTP专用服务器,帮助用户在更低总体投资成本下获得了不凡的性能。

  Exadata的成功,不仅仅体现了Oracle并购上的整合能力,更重要反应中大型系统通过集成技术架构获得更好投资回报率的技术趋势。通过集成技术架构,不仅仅可以保证系统的每一个组件(硬件模块和软件模块)的运行效率得到充分发挥,而且针对特定应用,进行系统的专用优化,从而取得了显著的性能突破。

  二、OFS 是集成技术架构的产物

  Object File System(简称OFS) 作为FAST引擎的存储系统,它是一个运行在用户态的文件系统,以对象为存储粒度,以 GNS(Global Namespace) 为命名路径,采用树状结构索引,可支持全局范围内对象按类别和时间点进行存储,并且内置重复数据删除、集群式、分布式存储、数据生命周期管理等一系列现代文件系统所具有的技术特点。

  之所以说OFS是集成技术架构的产物,在开始设计第三代备份恢复引擎FAST之前,不仅仅集成技术架构已经成为业内普遍采用的架构,而且根据爱数的业务战略规划,也需要满足如下两个关键需求:

  性能目标:伴随着用户数据量的快速膨胀,FAST引擎作为数据调度的关键组件,要能够满足PB级的数据传输和存储性能目标,而FAST引擎的性能关键部件正是后端的存储系统。

  应用环境:第三代引擎FAST不仅仅要满足爱数在备份容灾业务领域的技术需求,还需要满足归档、非结构化文档存储的业务技术需求,即FAST引擎本身是一个集成应用的引擎,将用于备份容灾、数据归档、非结构化文档存储等。

  正因为如上的一些背景,整个OFS是作为一个专用的存储引擎与FAST集成,通过集成技术架构实现备份容灾、数据归档、非结构化文档存储等应用领域的存储需求,并且通过与FAST集成,在Cache、Scale-out横向扩展等性能优化上将进行应用整合,从而通过更小的付出获得更优的性能目标。

  三、OFS的主要特点和设计目标

  1)用户态文件系统

  有别于传统文件系统,OFS是驻足在已有文件系统之上的 用户态文件系统 ,并且采用专用API访问,不支持POSIX或Windows FS等标准访问接口。此技术方案可保证OFS具有更强移植性(操作系统无关)、简化开发和维护难度、便于跨网络和分布式扩展,以及基于双C技术(Cluster和Cache)来不断优化性能等。

  2)全局对象存储

  OFS适用于网络存储,它以GNS作为对象路径,可保存来自于全局网络环境的数据集中存储,例如备份、归档、共享等数据集中存储应用,并且以对象作为存储粒度,可支持文件、邮件、数据库、表、设备等各类结构化和非结构化的数据对象的存储。

  GNS是全局名字空间 (Global Namespace),它用于在全局范围标识一个对象的名称,这个名称可以在全局范围内唯一代表此对象。传统的命名规则,通常是单系统(一台计算机或服务器)范围的,这种情况下实现集中备份、归档、文档管理等,将面临着名称冲突,不同平台、不同协议命名规则的差异,对于一些非文件数据对象,又面临着没有可参考的命名规则,正因为诸多缺点,在整个引擎的设计中,引进GNS,如下图所示,通过GNS,可以将不同平台、不同协议、不同类型的数据对象命名统一,并且保证在全局范围内可唯一标识。

  3)永远一致的文件系统

  OFS采用全Journal 算法,任何时刻文件系统均处于一致性的状态,即使遇到非正常断电或不正常关机后,也不需执行硬盘检查,即可在复电后2分钟内迅速提供服务。