CN109918355A - 实现基于对象存储服务的nas的虚拟元数据映射系统和方法 - Google Patents

实现基于对象存储服务的nas的虚拟元数据映射系统和方法 Download PDF

Info

Publication number
CN109918355A
CN109918355A CN201910163461.3A CN201910163461A CN109918355A CN 109918355 A CN109918355 A CN 109918355A CN 201910163461 A CN201910163461 A CN 201910163461A CN 109918355 A CN109918355 A CN 109918355A
Authority
CN
China
Prior art keywords
node
virtual
file
metadata
nas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910163461.3A
Other languages
English (en)
Other versions
CN109918355B (zh
Inventor
黄艺海
甘晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Qianyun Data Technology Co Ltd
Original Assignee
Hangzhou Qianyun Data Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Qianyun Data Technology Co Ltd filed Critical Hangzhou Qianyun Data Technology Co Ltd
Priority to CN201910163461.3A priority Critical patent/CN109918355B/zh
Publication of CN109918355A publication Critical patent/CN109918355A/zh
Application granted granted Critical
Publication of CN109918355B publication Critical patent/CN109918355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种实现基于对象存储服务的NAS的虚拟元数据映射系统和方法。所述的虚拟元数据映射系统位于NAS服务模块的底层,为NAS服务模块做后端支撑,所述的虚拟元数据映射系统将对象存储服务进行元数据虚拟映射来达到模拟POSIX文件系统元数据,所述的虚拟元数据映射系统包括一个可持久化元数据分级排序表;所述的分级排序表采用的表索引值是每个表节点的父目录索引号、该表节点代表的文件或者目录的索引号和该表节点代表的文件或者目录名,表的分级采用虚拟文件系统的目录结构来进行分级,在每一个分级表中再利用表节点里的文件或者目录名来进行排序,表节点里的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点。

Description

实现基于对象存储服务的NAS的虚拟元数据映射系统和方法
技术领域
本发明涉及一种实现基于对象存储服务的NAS的虚拟元数据映射系统和方法。
背景技术
对象存储服务是由网络服务商提供的一种海量、弹性、高可用、高性价比的存储服务,是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地在任意可以连接至Internet的电脑上,通过接口调用来访问和管理存储在对象存储服务中的数据。
对象存储服务把存储作为一种服务资源进行按需付费,即使用多少存储支付多少费用。用户购买存储无需提前规划,只需花极少的钱就可以获得一个几乎无限的存储空间,可以随时根据需要调整对资源的占用,并只需为真正使用的资源付费。
但是对象存储服务对于大多数用户而言界面是不友好的,因为对象存储服务存取数据完全是采用HTTP/HTTPS的API请求完成,不要说一般用户使用,就连没有进行专门开发的软件也无法很好地使用这个存储服务。
NAS(Network Attached Storage)网络存储基于标准网络协议实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份。一般企业级NAS支持CIFS、NFS和FTP等协议,企业内部用户通过常用的操作系统可以直接对NAS进行文件存取,各种企业应用软件也可以无需修改很轻松地访问NAS存储。
NAS一般而言展现为一个可以进行统一授权管理的POSIX文件系统。既然是一种POSIX文件系统,那么就需要支持标准的目录分级结构、目录遍历、文件读写、重命名等等操作。
然而,一般来说NAS采用文件系统格式化磁盘阵列作为存储后端,对于存储后端采用基于对象存储服务的NAS来说,要实现与后端的对象存储服务对接需要做很多工作。因为这个对接无法通过简单的读写接口调用来完成,这两种存储的实现原理和对外提供服务的API有很大的不同。最重要的就是对象存储是散列单元存储,是扁平化存储,不存在分级目录的概念。因此,NAS服务模块不可能直接利用对象存储作为存储后端,需要通过转换,但简单的协议转换会因为对象存储服务的性能问题导致NAS服务的质量降低。
发明内容
针对现有技术存在的问题,本发明提供一种实现基于对象存储服务的NAS的虚拟元数据映射系统和方法,能够利用对象存储服务的灵活性和扩展性提供一个简单易用、高弹性和高可靠性的NAS系统,同时保障NAS服务模块不会因为对象存储服务的性能问题导致NAS服务的质量降低,能够高效稳定地访问和管理存储在对象存储服务中的数据,使用方便。
本发明采取的技术方案是:一种实现基于对象存储服务的NAS的虚拟元数据映射系统,所述的虚拟元数据映射系统用于桥接NAS接口和后端的对象存储服务,所述的虚拟元数据映射系统位于NAS服务模块的底层,为NAS服务模块做后端支撑,所述的虚拟元数据映射系统将对象存储服务进行元数据虚拟映射来达到模拟POSIX文件系统元数据,所述的虚拟元数据映射系统包括一个可持久化元数据分级排序表;
所述的分级排序表采用的表索引值是每个表节点的父目录索引号、该表节点代表的文件或者目录的索引号和该表节点代表的文件或者目录名,表的分级采用虚拟文件系统的目录结构来进行分级,在每一个分级表中再利用表节点里的文件或者目录名来进行排序,表节点里的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点(这个节点不代表任何虚拟文件系统的文件或者目录,仅仅是下级表的头节点)。
每个子表都按照随机跳跃的方式来插入,每次新建一个文件或者目录的时候,在对应的子表中新增一个节点,根据目录或者文件不同,每个节点存在的层级也不同。
每个节点有两个指针,一个指针指向兄弟节点,另外一个指向下层节点,下层节点是本节点的复制节点,节点的跳跃方式为加权跳跃。
所述的加权跳跃就是将目录节点跳跃基数设置为5,文件节点跳跃基数设置为0,在形成这个子表的过程中,如果要插入一个目录节点,那么用随机数(范围0~5)加上5作为此目录节点的层级数,反之如果要插入一个文件节点,那么用随机数(范围0~5)作为此文件节点的层级数。
所谓节点的层级数就是这个节点的被复制的个数,节点有多少个层级,它就可以在多少个层级中被检索到。由于在查询路径时,目录会被经常检索,因此它的层级数比文件的节点至少多5个(就是前面提到的目录节点用随机数加上5作为层级数)。
一种实现高效元数据分级排序表持久化的方法,是根据虚拟元数据映射系统来做软硬件的定制,采用INTEL的64位处理器,定制的工控主板,加一块256GB的PCIE的SSD,并使用3块以上600GB的sas硬盘来组成raid5,裁剪Linux内核,只留下必要的驱动和模块,制作启动镜像,并且使系统启动以后完全运行在内存中,以加快系统运行速度。
NPave高性能虚拟元数据映射系统启动后,将SSD通过ioremap到系统的内存统一寻址空间,所有节点的插入和排序操作都在系统内存中完成,一旦插入部分的排序完成以后,就将内存中这一部分数据移入SSD的寻址空间,一旦需要读取或者查询的时候,都在SSD的寻址空间内完成,这样读写在不同的临界区,可以实现无锁读写,同时,SSD的寻址空间内保存的是常用的表空间,当SSD中部分表空间内容长时间不被使用的时候,就转移部分到SAS硬盘组成的raid5空间,需要查询时,如果需要的表空间内容不在SSD的寻址空间内部,则触发中断,并将内容从SAS硬盘组成的raid5空间中加载到SSD的寻址空间内部。
本发明根据元数据本身的特性和在实现模拟POSIX文件系统的需要,实现了一个我们独创的可持久化元数据分级排序表来达到这个目的,能够利用对象存储服务的灵活性和扩展性提供一个简单易用、高弹性和高可靠性的NAS系统,同时保障NAS服务模块不会因为对象存储服务的性能问题导致NAS服务的质量降低,能够高效稳定地访问和管理存储在对象存储服务中的数据,使用方便。
附图说明
图1是本发明的结构框图。
图2是本发明的目录结构图。
图3是本发明的节点层级结构图。
具体实施方式
下面结合附图,对本发明的技术方案作进一步说明:
如图1所示,本发明的NPave高性能虚拟元数据映射系统,用于桥接NAS接口和后端的对象存储服务,其位于NAS服务模块的底层,为NAS服务模块做后端支撑,让对象存储服务对NAS服务模块来说是透明的。所述的虚拟元数据映射系统将对象存储服务进行元数据虚拟映射来达到模拟POSIX文件系统元数据,所述的虚拟元数据映射系统主要由一个可持久化元数据分级排序表组成;
所述的分级排序表采用的表索引值是每个表节点的父目录索引号、该表节点代表的文件或者目录的索引号和该表节点代表的文件或者目录名,表的分级采用虚拟文件系统的目录结构来进行分级,在每一个分级表中再利用表节点里的文件或者目录名来进行排序,表节点里的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点(这个节点不代表任何虚拟文件系统的文件或者目录,仅仅是下级表的头节点)
每个子表都按照随机跳跃的方式来插入,每次新建一个文件或者目录的时候,在对应的子表中新增一个节点,根据目录或者文件不同,每个节点存在的层级也不同。
每个节点有两个指针,一个指针指向兄弟节点,另外一个指向下层节点,下层节点是本节点的复制节点,节点的跳跃方式为加权跳跃。所述的实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于所述的加权跳跃就是将目录节点跳跃基数设置为5,文件节点跳跃基数设置为0,在形成这个子表的过程中,如果要插入一个目录节点,那么用随机数(范围0~5)加上5作为此目录节点的层级数,反之如果要插入一个文件节点,那么用随机数(范围0~5)作为此文件节点的层级数。所谓节点的层级数就是这个节点的被复制的个数,节点有多少个层级,它就可以在多少个层级中被检索到。由于在查询路径时,目录会被经常检索,因此它的层级数比文件的节点至少多5个(就是前面提到的目录节点用随机数加上5作为层级数)。
如图2所示,表索引值当中的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点(这个节点不代表任何虚拟文件系统的文件或者目录,仅仅是下级表的头节点)。最后每个子表都按照随机跳跃的方式来插入以提高查找效率。每次新建一个文件或者目录的时候,在对应的字表中新增一个节点,根据目录或者文件不同,每个节点存在的层级(layer)也不同,如图3所示:
d代表节点为目录,f代表节点为文件,每个节点有两个指针,一个指针指向兄弟节点,另外一个指向下层节点(下层节点是本节点的复制节点)节点的跳跃方式为加权跳跃。
所谓加权跳跃就是将目录节点跳跃基数设置为5,文件节点跳跃基数设置为0。在形成这个子表的过程中,如果要插入一个目录节点,那么用随机数(范围0~5)加上5作为此目录节点的层级数,反之如果要插入一个文件节点,那么用随机数(范围0~5)作为此文件节点的层级数,所谓节点的层级数就是这个节点的被复制的个数,节点有多少个层级,它就可以在多少个层级中被检索到。。之所以这样做,是考虑到目录会在全路径搜索中被大量多次搜索定位(在全路径搜索过程中,除了最后一层的文件名,前面全都是目录名)。
实现高效元数据分级排序表的持久化,需要根据我们这个NPave高性能虚拟元数据映射系统的特性,来做软硬件的定制。首先我们采用INTEL的64位处理器,定制的工控主板,加一块256GB的PCIE的SSD,并使用3块以上600GB的sas硬盘来组成raid5,裁剪Linux内核,只留下必要的驱动和模块,制作启动镜像,并且使系统启动以后完全运行在内存中,以加快系统运行速度。
NPave高性能虚拟元数据映射系统启动后,将SSD通过ioremap到系统的内存统一寻址空间。所有节点的插入和排序操作都在系统内存中完成,一旦插入部分的排序完成以后,就将内存中这一部分数据移入SSD的寻址空间。一旦需要读取或者查询的时候,都在SSD的寻址空间内完成,这样读写在不同的临界区,可以实现无锁读写。同时,SSD的寻址空间内保存的是常用的表空间,当SSD中部分表空间内容长时间不被使用的时候,就转移部分到SAS硬盘组成的raid5空间。需要查询时,如果需要的表空间内容不在SSD的寻址空间内部,则触发中断,并将内容从SAS硬盘组成的raid5空间中加载到SSD的寻址空间内部。
本发明根据元数据本身的特性和在实现模拟POSIX文件系统的需要,实现了一个我们独创的可持久化元数据分级排序表来达到这个目的,能够保障NAS服务模块不会因为对象存储服务的性能问题导致NAS服务的质量降低,能够利用对象存储服务的灵活性和扩展性提供一个简单易用、高弹性和高可靠性的NAS系统,同时高效稳定地访问和管理存储在对象存储服务中的数据,使用方便。

Claims (6)

1.实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于所述的虚拟元数据映射系统用于桥接NAS接口和后端的对象存储服务,所述的虚拟元数据映射系统位于NAS服务模块的底层,为NAS服务模块做后端支撑,所述的虚拟元数据映射系统将对象存储服务进行元数据虚拟映射来达到模拟POSIX文件系统元数据,所述的虚拟元数据映射系统包括一个可持久化元数据分级排序表;
所述的分级排序表采用的表索引值是每个表节点的父目录索引号、该表节点代表的文件或者目录的索引号和该表节点代表的文件或者目录名,表的分级采用虚拟文件系统的目录结构来进行分级,在每一个分级表中再利用表节点里的文件或者目录名来进行排序,表节点里的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点。
2.根据权利要求1所述的实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于每个子表都按照随机跳跃的方式来插入,每次新建一个文件或者目录的时候,在对应的子表中新增一个节点,根据目录或者文件不同,每个节点存在的层级也不同。
3.根据权利要求2所述的实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于每个节点有两个指针,一个指针指向兄弟节点,另外一个指向下层节点,下层节点是本节点的复制节点,节点的跳跃方式为加权跳跃。
4.根据权利要求3所述的实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于所述的加权跳跃就是将目录节点跳跃基数设置为5,文件节点跳跃基数设置为0,在形成这个子表的过程中,如果要插入一个目录节点,那么用随机数(范围0~5)加上5作为此目录节点的层级数,反之如果要插入一个文件节点,那么用随机数(范围0~5)作为此文件节点的层级数。
5.根据权利要求4所述的实现基于对象存储服务的NAS的虚拟元数据映射系统,其特征在于所述节点的层级数就是这个节点被复制的个数,节点有多少个层级,它就可以在多少个层级中被检索到,由于在查询路径时,目录会被经常检索,目录的层级数比文件的节点至少多5个。
6.一种实现高效元数据分级排序表持久化的方法,其特征在于根据权利要求1所述的虚拟元数据映射系统来做软硬件的定制,采用INTEL的64位处理器,定制的工控主板,加一块256GB的PCIE的SSD,并使用3块以上600GB的sas硬盘来组成raid5,裁剪Linux内核,只留下必要的驱动和模块,制作启动镜像,并且使系统启动以后完全运行在内存中,以加快系统运行速度。
NPave高性能虚拟元数据映射系统启动后,将SSD通过ioremap到系统的内存统一寻址空间,所有节点的插入和排序操作都在系统内存中完成,一旦插入部分的排序完成以后,就将内存中这一部分数据移入SSD的寻址空间,一旦需要读取或者查询的时候,都在SSD的寻址空间内完成,这样读写在不同的临界区,可以实现无锁读写,同时,SSD的寻址空间内保存的是常用的表空间,当SSD中部分表空间内容长时间不被使用的时候,就转移部分到SAS硬盘组成的raid5空间,需要查询时,如果需要的表空间内容不在SSD的寻址空间内部,则触发中断,并将内容从SAS硬盘组成的raid5空间中加载到SSD的寻址空间内部。
CN201910163461.3A 2019-03-05 2019-03-05 实现基于对象存储服务的nas的虚拟元数据映射系统和方法 Active CN109918355B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910163461.3A CN109918355B (zh) 2019-03-05 2019-03-05 实现基于对象存储服务的nas的虚拟元数据映射系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910163461.3A CN109918355B (zh) 2019-03-05 2019-03-05 实现基于对象存储服务的nas的虚拟元数据映射系统和方法

Publications (2)

Publication Number Publication Date
CN109918355A true CN109918355A (zh) 2019-06-21
CN109918355B CN109918355B (zh) 2020-12-15

Family

ID=66963313

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910163461.3A Active CN109918355B (zh) 2019-03-05 2019-03-05 实现基于对象存储服务的nas的虚拟元数据映射系统和方法

Country Status (1)

Country Link
CN (1) CN109918355B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157209A (zh) * 2021-04-09 2021-07-23 北京易华录信息技术股份有限公司 一种文件系统到对象存储的数据重建方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904889A (zh) * 2006-08-11 2007-01-31 中国科学院计算技术研究所 用附着属性存储逻辑文件系统元数据的方法
US20100273533A1 (en) * 2009-04-28 2010-10-28 Samsung Electronics Co., Ltd. Method for operating touch screen and mobile terminal including same
CN104123359A (zh) * 2014-07-17 2014-10-29 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
CN104980401A (zh) * 2014-04-09 2015-10-14 北京亿赛通科技发展有限责任公司 Nas服务器数据安全存储系统、安全存储及读取方法
US20160028761A1 (en) * 2014-07-22 2016-01-28 Nuix Pty Ltd Systems and Methods for Parallelized Custom Data-Processing and Search
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1904889A (zh) * 2006-08-11 2007-01-31 中国科学院计算技术研究所 用附着属性存储逻辑文件系统元数据的方法
US20100273533A1 (en) * 2009-04-28 2010-10-28 Samsung Electronics Co., Ltd. Method for operating touch screen and mobile terminal including same
CN104980401A (zh) * 2014-04-09 2015-10-14 北京亿赛通科技发展有限责任公司 Nas服务器数据安全存储系统、安全存储及读取方法
CN104123359A (zh) * 2014-07-17 2014-10-29 江苏省邮电规划设计院有限责任公司 一种分布式对象存储系统的资源管理方法
US20160028761A1 (en) * 2014-07-22 2016-01-28 Nuix Pty Ltd Systems and Methods for Parallelized Custom Data-Processing and Search
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李永泽: "碧海文件系统元数据节点的优化与分布式实现", 《小型微型计算机系统》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157209A (zh) * 2021-04-09 2021-07-23 北京易华录信息技术股份有限公司 一种文件系统到对象存储的数据重建方法及装置

Also Published As

Publication number Publication date
CN109918355B (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
US11593037B2 (en) File system block-level tiering and co-allocation
US10430398B2 (en) Data storage system having mutable objects incorporating time
JP5276218B2 (ja) リアルタイムでlunをファイルに、またはファイルをlunに変換すること
US10303649B2 (en) Storage media abstraction for uniform data storage
US7395389B2 (en) Extending non-volatile storage at a computer system
US8356050B1 (en) Method or system for spilling in query environments
CN103597440A (zh) 用于创建克隆文件的方法以及采用该方法的文件系统
WO1997016794A1 (en) Storage plane organization and storage systems based thereon
CN109804359A (zh) 用于将数据回写到存储设备的系统和方法
Lovelace et al. VSAM demystified
WO2019212714A1 (en) Data replication in a distributed storage system
US10719554B1 (en) Selective maintenance of a spatial index
US7844596B2 (en) System and method for aiding file searching and file serving by indexing historical filenames and locations
EP1091295A2 (en) Data management system using a plurality of data operation modules
US10521398B1 (en) Tracking version families in a file system
US20070299890A1 (en) System and method for archiving relational database data
US10762050B2 (en) Distribution of global namespace to achieve performance and capacity linear scaling in cluster filesystems
CN111684779B (zh) 分层存储管理系统中的数据迁移
CN109918355A (zh) 实现基于对象存储服务的nas的虚拟元数据映射系统和方法
EP4016312B1 (en) Data operations using a cache table in a file system
Wei et al. A high-bandwidth and low-cost data processing approach with heterogeneous storage architectures
Staelin High-performance file system design
CN113204520B (zh) 一种基于分布式文件系统的遥感数据快速并发读写方法
Mondal et al. Comparative Analysis of Object-Based Big Data Storage Systems on Architectures and Services: A Recent Survey
Nurul IMPROVED TIME COMPLEXITY AND LOAD BALANCE FOR HDFS IN MULTIPLE NAMENODE

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant