CN109918355B - 实现基于对象存储服务的nas的虚拟元数据映射系统和方法 - Google Patents
实现基于对象存储服务的nas的虚拟元数据映射系统和方法 Download PDFInfo
- Publication number
- CN109918355B CN109918355B CN201910163461.3A CN201910163461A CN109918355B CN 109918355 B CN109918355 B CN 109918355B CN 201910163461 A CN201910163461 A CN 201910163461A CN 109918355 B CN109918355 B CN 109918355B
- Authority
- CN
- China
- Prior art keywords
- node
- directory
- file
- virtual
- metadata
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种实现基于对象存储服务的NAS的虚拟元数据映射系统和方法。所述的虚拟元数据映射系统位于NAS服务模块的底层,为NAS服务模块做后端支撑,所述的虚拟元数据映射系统将对象存储服务进行元数据虚拟映射来达到模拟POSIX文件系统元数据,所述的虚拟元数据映射系统包括一个可持久化元数据分级排序表;所述的分级排序表采用的表索引值是每个表节点的父目录索引号、该表节点代表的文件或者目录的索引号和该表节点代表的文件或者目录名,表的分级采用虚拟文件系统的目录结构来进行分级,在每一个分级表中再利用表节点里的文件或者目录名来进行排序,表节点里的父目录的索引号作为指针指向上级目录表,同时表节点还有一个指针指向子表的虚拟头节点。
Description
技术领域
本发明涉及一种实现基于对象存储服务的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内核,只留下必要的驱动和模块,制作启动镜像,并且使系统启动以后完全运行在内存中,以加快系统运行速度;
虚拟元数据映射系统启动后,将SSD通过ioremap到系统的内存统一寻址空间,所有节点的插入和排序操作都在系统内存中完成,一旦插入部分的排序完成以后,就将内存中这一部分数据移入SSD的寻址空间,一旦需要读取或者查询的时候,都在SSD的寻址空间内完成,这样读写在不同的临界区,可以实现无锁读写,同时,SSD的寻址空间内保存的是常用的表空间,当SSD中部分表空间内容长时间不被使用的时候,就转移部分到SAS硬盘组成的raid5空间,需要查询时,如果需要的表空间内容不在SSD的寻址空间内部,则触发中断,并将内容从SAS硬盘组成的raid5空间中加载到SSD的寻址空间内部。
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 CN109918355A (zh) | 2019-06-21 |
CN109918355B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157209B (zh) * | 2021-04-09 | 2024-07-02 | 北京易华录信息技术股份有限公司 | 一种文件系统到对象存储的数据重建方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904889A (zh) * | 2006-08-11 | 2007-01-31 | 中国科学院计算技术研究所 | 用附着属性存储逻辑文件系统元数据的方法 |
CN104123359A (zh) * | 2014-07-17 | 2014-10-29 | 江苏省邮电规划设计院有限责任公司 | 一种分布式对象存储系统的资源管理方法 |
CN104980401A (zh) * | 2014-04-09 | 2015-10-14 | 北京亿赛通科技发展有限责任公司 | Nas服务器数据安全存储系统、安全存储及读取方法 |
CN107209715A (zh) * | 2015-08-20 | 2017-09-26 | 华为技术有限公司 | 文件数据访问方法和计算机系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100118366A (ko) * | 2009-04-28 | 2010-11-05 | 삼성전자주식회사 | 휴대 단말기의 터치스크린 운용 방법 및 이를 지원하는 휴대 단말기 |
US10826930B2 (en) * | 2014-07-22 | 2020-11-03 | Nuix Pty Ltd | Systems and methods for parallelized custom data-processing and search |
-
2019
- 2019-03-05 CN CN201910163461.3A patent/CN109918355B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904889A (zh) * | 2006-08-11 | 2007-01-31 | 中国科学院计算技术研究所 | 用附着属性存储逻辑文件系统元数据的方法 |
CN104980401A (zh) * | 2014-04-09 | 2015-10-14 | 北京亿赛通科技发展有限责任公司 | Nas服务器数据安全存储系统、安全存储及读取方法 |
CN104123359A (zh) * | 2014-07-17 | 2014-10-29 | 江苏省邮电规划设计院有限责任公司 | 一种分布式对象存储系统的资源管理方法 |
CN107209715A (zh) * | 2015-08-20 | 2017-09-26 | 华为技术有限公司 | 文件数据访问方法和计算机系统 |
Non-Patent Citations (1)
Title |
---|
碧海文件系统元数据节点的优化与分布式实现;李永泽;《小型微型计算机系统》;20140930;第35卷(第9期);第1989-1993页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109918355A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7069380B2 (en) | File access method in storage-device system, and programs for the file access | |
US8621174B2 (en) | Relocating data within a file system | |
US10303649B2 (en) | Storage media abstraction for uniform data storage | |
JP5276218B2 (ja) | リアルタイムでlunをファイルに、またはファイルをlunに変換すること | |
CN103597440A (zh) | 用于创建克隆文件的方法以及采用该方法的文件系统 | |
CN112463753B (zh) | 一种区块链数据存储方法、系统、设备及可读存储介质 | |
EP1837783A1 (en) | Managing data in a file system | |
EP4016312B1 (en) | Data operations using a cache table in a file system | |
US20080250017A1 (en) | System and method for aiding file searching and file serving by indexing historical filenames and locations | |
US20200042229A1 (en) | Tape drive data reclamation | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
JP2024525170A (ja) | データ圧縮方法及び装置 | |
CN109918355B (zh) | 实现基于对象存储服务的nas的虚拟元数据映射系统和方法 | |
CN116848517A (zh) | 使用基于数据指纹的数据地址的高速缓存编索引 | |
US11989159B2 (en) | Hybrid snapshot of a global namespace | |
CN113204520A (zh) | 一种基于分布式文件系统的遥感数据快速并发读写方法 | |
US7185020B2 (en) | Generating one or more block addresses based on an identifier of a hierarchical data structure | |
US11966637B1 (en) | Method and system for storing data in portable storage devices | |
US20070299890A1 (en) | System and method for archiving relational database data | |
CN111522514A (zh) | 集群文件系统、数据处理方法、计算机设备及存储介质 | |
US11537597B1 (en) | Method and system for streaming data from portable storage devices | |
CN116880780A (zh) | 树的数据写入方法、装置、机器可读介质及存储器 |
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 |