CN107346209B - 一种多磁盘聚合式数据存储系统及其实现方法与应用方法 - Google Patents

一种多磁盘聚合式数据存储系统及其实现方法与应用方法 Download PDF

Info

Publication number
CN107346209B
CN107346209B CN201610299085.7A CN201610299085A CN107346209B CN 107346209 B CN107346209 B CN 107346209B CN 201610299085 A CN201610299085 A CN 201610299085A CN 107346209 B CN107346209 B CN 107346209B
Authority
CN
China
Prior art keywords
data
file
module
disk
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
Application number
CN201610299085.7A
Other languages
English (en)
Other versions
CN107346209A (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.)
Shanghai Xiao Yun Info Tech Co ltd
Original Assignee
Shanghai Xiao Yun Info Tech 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 Shanghai Xiao Yun Info Tech Co ltd filed Critical Shanghai Xiao Yun Info Tech Co ltd
Priority to CN201610299085.7A priority Critical patent/CN107346209B/zh
Publication of CN107346209A publication Critical patent/CN107346209A/zh
Application granted granted Critical
Publication of CN107346209B publication Critical patent/CN107346209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种多磁盘聚合式数据存储系统及其实现方法与应用方法,采用以松耦合方式聚合多个存储单元形成存储系统;选取任一存储单元存储命名空间和存储数据的元数据;存储数据以不同的布局方式存储在其它多个存储单元中;分别创建元数据管理模块和数据管理模块来管理元数据和存储数据;对外提供统一命名空间模块以管理命名空间和元数据管理模块,并支持面向目录、文件或对象的数据访问;本发明公开的多磁盘聚合式数据存储系统不再依赖于RAID,可支持存储容量扩展、数据容错,能够简化存储系统管理,提高可扩展性,并提升存储系统数据访问性能。

Description

一种多磁盘聚合式数据存储系统及其实现方法与应用方法
技术领域
本发明涉及计算机领域,尤其涉及一种多磁盘聚合式数据存储系统及其实现方法与应用方法。
背景技术
存储系统有DAS(直连附加存储:Direct Attached Storage)、NAS(网络附加存储:Network Attached Storage)和SAN(存储局域网络:Storage Area Network)等多种类型。为了实现大容量的存储,以及防止存储器件如磁盘或固态盘损坏而丢失数据,上述各类存储系统中普遍使用RAID(冗余磁盘阵列:Redundant Arrays of Independent Disks)技术来组织多个磁盘。虽然RAID能提高可靠性,但存在如下不足或问题:
●存储系统管理复杂。RAID中所有磁盘必须具有相同容量和性能,创建以后就不能再修改,让存储系统的容量规划和扩容变得困难;
●容错级别在创建RAID时设定,无法针对数据本身的特性或要求支持不同的容错级别;
●创建RAID的时间高达数小时,数据重建时间更长;
●当访问数据流增加时,RAID读写性能会大幅下降;在极端情形下多张磁盘组成的RAID的性能甚至低于单个磁盘的性能。
DualFS【DualFS:A New Journaling File System for Linux】对存储系统的结构进行了探索优化,将文件系统的元数据(metadata)保存到一个独立的磁盘设备中,将数据存储到RAID中。这种方法能够有效提高元数据访问的性能,如遍历目录,但RAID面临的问题在dualFS中依然存在。
发明内容
鉴于目前存在的上述不足,本发明提供一种多磁盘聚合式数据存储系统及其实现方法与应用方法,不再依赖于RAID,可支持存储容量扩展、数据容错,能够简化存储系统管理,提高可扩展性,并提升存储系统数据访问性能。
为达到上述目的,本发明采用如下技术方案:
一种多磁盘聚合式数据存储系统实现方法,所述多磁盘聚合式数据存储系统实现方法包括以下步骤:
以松耦合方式聚合多个存储单元形成存储系统;
选取任一存储单元存储命名空间和存储数据的元数据;
存储数据以不同的布局方式存储在其它多个存储单元中;
分别创建元数据管理模块和数据管理模块来管理元数据和存储数据;
对外提供统一命名空间模块以管理命名空间和元数据管理模块,并支持面向目录、文件或对象的数据访问。
依照本发明的一个方面,所述存储数据的元数据保存在索引节点中,索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号。
依照本发明的一个方面,以存储在元数据磁盘上的索引节点号作为文件数据在相应数据磁盘上的名。
依照本发明的一个方面,每个目录或文件可以独立选择数据布局方式,数据布局方式包括单体、镜像和条带化。
依照本发明的一个方面,所述统一命名空间模块对上层软件提供文件或对象访问接口,屏蔽存储系统的内部结构,根据文件读写请求访问相应的元数据管理模块和数据管理模块。
依照本发明的一个方面,所述元数据管理模块管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据。
依照本发明的一个方面,所述数据管理模块管理存储数据,每个数据管理模块是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址。
依照本发明的一个方面,在数据存储单元上,所有数据为扁平结构,在逻辑上无层次目录结构。
一种多磁盘聚合式数据存储系统,包括硬件部分和管理数据的软件;该硬件部分包括处理器、内存、用于存储数据的若干个磁盘,磁盘通过I/O总线接入到系统中;所述管理数据的软件包括统一命名空间模块、元数据管理模块和数据管理模块,其中:
统一命名空间模块管理命名空间和元数据,对上层软件提供文件或对象访问接口,屏蔽存储系统的内部结构,根据文件读写请求访问相应的元数据管理模块和数据管理模块;
元数据管理模块管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据;
数据管理模块管理存储数据,每个数据管理模块是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址。
一种多磁盘聚合式数据存储系统的数据存取方法,所述数据存取方法包括:数据读取方法和数据写入方法;其中:
数据读取方法包括以下步骤:
1)上层软件模块调用统一命名空间模块的open函数,参数包括文件名和读写模式;
2)统一命名空间模块模块将请求转交个元数据管理模块模块;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块将文件的inode编号和内容返回给统一命名空间模块模块;
5)统一命名空间模块为该文件分配文件描述符fd,建立fd和inode的映射;
6)统一命名空间模块给上层软件模块返回文件描述符fd;
7)上层软件调用统一命名空间模块的read函数,参数包括fd,偏移量和数据大小等;
8)统一命名空间模块模块查找fd到inode的映射表,得到该文件的inode;
9)统一命名空间模块根据inode中保存的数据布局模式,以及数据所在磁盘的数据管理模块标识,以inode作为对象名,调用相应数据管理模块的读接口,来读取数据;
10)统一命名空间模块将读到的数据返回给上层软件。
数据写入方法包括以下步骤:
1)上层软件调用统一命名空间模块的open函数,参数包括文件名、读写模式,和文件权限等;
2)统一命名空间模块调用元数据管理模块的open函数;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块为该文件分配inode,将inode id和内容返回给统一命名空间模块模块;
5)统一命名空间模块根据每个数据管理模块磁盘的空闲容量大小和当前读写负载情况,选择一个空闲容量较大、负载较轻的数据管理模块;
6)统一命名空间模块在选择的数据管理模块上以inode作为对象名创建一个新的数据对象;
7)统一命名空间模块模块在inode中保存该文件的布局模式,和数据所在磁盘的数据管理模块id;
8)统一命名空间模块为该文件分配文件描述符fd,在内存中建立fd到inode的映射;
9)统一命名空间模块向应用软件返回文件描述符fd;
10)上层软件调用统一命名空间模块模块的write函数,参数包括文件描述符fd,数据缓冲区地址和数据长度等;
11)统一命名空间模块根据fd查找其对应的inode;
12)统一命名空间模块读取inode内容,得到该文件的数据布局方式和数据所在的数据管理模块id;
13)统一命名空间模块向数据管理模块中写入数据;
14)统一命名空间模块向上层软件返回写入的字节数;
15)上层软件调用统一命名空间模块的close函数关闭文件,参数包括fd;
16)统一命名空间模块根据fd查找文件对应的inode;
17)统一命名空间模块向元数据管理模块更新inode中的文件大小和修改时间;
18)统一命名空间模块关闭文件,释放文件描述符;
19)统一命名空间模块返回结果给上层软件。
本发明实施的优点:本发明所述的技术方案将命名空间/元数据、文件本身的数据分开管理,保存在不同的磁盘中;每个磁盘为独立的存储单元,具有独立的磁盘空间管理和数据管理,不同磁盘之间完全独立;存储系统可支持多个磁盘,不同磁盘的容量不要求完全相同;系统在运行过程中可在线加入新的磁盘,可以只加入一块磁盘,不要求成组加入,新添加磁盘后,无强制性数据迁移。文件的元数据保存在索引节点中;索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号;数据布局方式支持单体、镜像、条带化等多种方式;每个目录和文件的布局方式可以独立设置;以文件在元数据磁盘上的索引节点编号作为文件数据在相应数据磁盘上的名,在数据磁盘上,所有数据为扁平结构,在逻辑上无层次目录结构,支持存储容量扩展、数据容错,能够简化存储系统管理,提高可扩展性,并提升存储系统数据访问性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的一种多磁盘聚合式数据存储系统实现方法示意图;
图2为本发明所述存储系统的硬件组成图;
图3为本发明所述软件部分的结构示意图;
图4为本发明inode字段的示意图;
图5为发明数据结构示意图;
图6为本发明读打开文件流程图;
图7为本发明读文件流程图;
图8为本发明写打开文件流程图;
图9为本发明写文件流程图;
图10为本发明关闭文件流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1-5所示,一种多磁盘聚合式数据存储系统实现方法,所述多磁盘聚合式数据存储系统实现方法包括以下步骤:
步骤S1:以松耦合方式聚合多个存储单元形成存储系统;
所述步骤S1以松耦合方式聚合多个存储单元形成存储系统的具体实施方式可为:存储系统可包括多个磁盘;不同磁盘的容量不要求完全相同;每个磁盘为独立数据存储单元,具有独立的磁盘空间管理和数据管理,不同磁盘之间完全独立;系统在运行过程中可在线加入新的磁盘,可以只加入一块磁盘,不要求成组加入;新添加磁盘后,无强制性数据迁移;不同磁盘可算不同的存储单元,多个存储单元以松耦合方式协同工作。
步骤S2:选取任一存储单元存储命名空间和存储数据的元数据;
所述步骤S2选取任一存储单元存储命名空间和存储数据的元数据的具体实施方式可为:将存储数据的元数据与数据分开,并将元数据保存在索引节点中,索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号;以存储在元数据磁盘上的索引节点号作为文件数据在相应数据磁盘上的名;将元数据与命名空间存储在存储系统中选取的任一存储单元中存储,以与存储数据独立开来。
步骤S3:存储数据以不同的布局方式存储在其它多个存储单元中;
所述步骤S3存储数据以不同的布局方式存储在其它多个存储单元中的具体实施方式可为:存储数据如文件或对象以单多种布局方式写入到多个存储单元中,每个目录或文件可以独立选择数据布局方式;数据布局方式包括mono(单体)、mirror(镜像)或者stripe(条带化)等多种方式。
步骤S4:分别创建元数据管理模块和数据管理模块来管理元数据和存储数据;
所述步骤S4分别创建元数据管理模块和数据管理模块来管理元数据和存储数据具体可包括:
创建元数据管理模块(Metadata Management Module)以下可简称MDM,MDM管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据,如大小、访问权限、时间戳等。MDM不管理文件本身的数据。系统中有1个磁盘或磁盘分区专门用于存储MDM的数据,该磁盘中也存储了其它数据磁盘的信息。
创建数据管理模块(Data Management Module)以下可简称DMM,DMM用于管理文件的数据。存储系统中除了安装操作系统的磁盘和存储MDM数据的磁盘外,其它所有磁盘都用于存储文件的数据,每个磁盘都唯一对应于一个DMM,不同的DMM之间完全独立。每个DMM是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址。
步骤S5:对外提供统一命名空间模块以管理命名空间和元数据管理模块,并支持面向目录、文件或对象的数据访问。
所述步骤S5具体可包括:建立统一命名空间模块(Unified Name Space Module)以下可简称UNSM,UNSM模块对上层软件提供文件或对象访问接口,如应用层的POSIX访问接口,或操作系统层的VFS(虚拟文件系统:Virtual File System),屏蔽存储系统的内部结构;根据文件读写请求访问相应的MDM和DMM。
UNSM管理命名空间和元数据。命名空间主要由目录组成。一个目录文件包括多个目录项,目录项的内容包括如下字段:
目录/文件名、类型、对应的inode(索引节点)编号。
类型字段表明该目录项为目录还是普通文件。
每个文件/目录在存储系统中具有唯一的数据结构inode(索引节点)存储其元数据。
inode包括的字段见图4。
Mode:文件权限,分为读、写、执行,共9个比特位,对别对应于owner、group、other三种角色对该文件拥有的权限;
Owners:所有者和组标识号;
Timestamps:文件创建、修改、最后访问时间;
Count:文件引用计数;
Size:文件大小;
Stripe:文件布局方式,可以为mono(单体)、mirror(镜像)、stripe(条带化);
DMM ids:该文件的数据所在数据磁盘的标识号。
存储系统支持多种数据布局方式。在mono方式中,一个文件的数据只存储到一个DMM磁盘中;在mirror方式中,一个文件的数据同时保持到2个不同的DMM磁盘中,以实现容错;stripe方式中,一个文件的数据以条带化方式写入到多个不同的DMM磁盘中,其中1~2个磁盘中存储该条带化数据的冗余编码,以实现容错。
其中,在数据存储单元上,所有数据为扁平结构,在逻辑上无层次目录结构。
本发明实施例将命名空间/元数据、文件本身的数据分开管理,保存在不同的磁盘中;每个磁盘为独立的存储单元,具有独立的磁盘空间管理和数据管理,不同磁盘之间完全独立;存储系统可支持多个磁盘,不同磁盘的容量不要求完全相同;系统在运行过程中可在线加入新的磁盘,可以只加入一块磁盘,不要求成组加入,新添加磁盘后,无强制性数据迁移。文件的元数据保存在索引节点中;索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号;数据布局方式支持单体、镜像、条带化等多种方式;每个目录和文件的布局方式可以独立设置;以文件在元数据磁盘上的索引节点编号作为文件数据在相应数据磁盘上的名,在数据磁盘上,所有数据为扁平结构,在逻辑上无层次目录结构,支持存储容量扩展、数据容错,能够简化存储系统管理,提高可扩展性,并提升存储系统数据访问性能。
实施例二
如图1-5所示,一种多磁盘聚合式数据存储系统,其硬件部分如图2所示,包括处理器(CPU)、内存(DRAM),用于存储数据的多个磁盘或固态盘。处理器(CPU),为所述存储系统执行各种计算和处理程序;磁盘通过I/O总线,如SATA接入到系统中,存储系统也可以包括1个或多个网络接口,以支持通过网络方式,如FC(光纤通道)、以太网、Infiniband等来访问存储系统中的数据。
存储系统中运行有管理数据的软件,参见图3,所述管理数据的软件包括以下3个组件:
●UNSM(统一命名空间模块:Unified Name Space Module)
●MDM(元数据管理模块:Metadata Management Module)
●DMM(数据管理模块:Data Management Module)
UNSM模块对上层软件提供文件或对象访问接口,如应用层的POSIX访问接口,或操作系统层的VFS(虚拟文件系统:Virtual File System),屏蔽存储系统的内部结构;根据文件读写请求访问相应的MDM和DMM。
UNSM管理命名空间和元数据,参见图4和图5,命名空间主要由目录组成,一个目录文件包括多个目录项,目录项的内容包括如下字段:目录/文件名、类型、对应的inode(索引节点)编号;文件的元数据保存在索引节点中,所述索引节点包括文件的数据布局方式和数据所在磁盘的标识号。类型字段表明该目录项为目录还是普通文件,每个目录/文件名在存储系统中具有唯一的数据结构inode(索引节点)存储其元数据。
inode包括的字段见图4,其中:
Mode:文件权限,分为读、写、执行,共9个比特位,分别对应于owner、group、other三种角色对该文件拥有的权限;
Owners:所有者和组标识号;
Timestamps:文件创建、修改、最后访问时间;
Count:文件引用计数;
Size:文件大小;
Stripe:文件的数据布局方式;
DMM ids:该文件的数据所在数据磁盘的标识号。
MDM管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据,如大小、访问权限、时间戳等。MDM不管理文件本身的数据。系统中有1个磁盘或磁盘分区专门用于存储MDM的数据,该磁盘中也存储了其它数据磁盘的信息。
DMM用于管理文件本身的数据,存储系统中除了安装操作系统的磁盘和存储MDM数据的磁盘外,其它所有磁盘都用于存储文件的数据,每个磁盘都唯一对应于一个DMM,不同的DMM之间完全独立。每个DMM是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址。
访问文件时首先从存储元数据管理模块的磁盘中获得该文件的数据布局方式与数据所在磁盘的的信息,然后从相应的磁盘中读取文件的数据。
存储系统支持多种数据布局方式,文件的数据布局方式为单体、镜像或者条带化,每个目录或文件可以独立选择数据布局方式。在mono方式中,一个文件的数据只存储到一个DMM磁盘中;在mirror方式中,一个文件的数据同时保持到2个不同的DMM磁盘中,以实现容错;stripe方式中,一个文件的数据以条带化方式写入到多个不同的DMM磁盘中,其中1~2个磁盘中存储该条带化数据的冗余编码,以实现容错。
实施例三
如图6-10所示,一种多磁盘聚合式数据存储系统的数据存取方法,所述数据存取方法包括:数据读取方法和数据写入方法;其中:
数据读取方法包括以下步骤:
1)上层软件模块调用统一命名空间模块的open函数,参数包括文件名和读写模式;
2)统一命名空间模块模块将请求转交个元数据管理模块模块;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块将文件的inode编号和内容返回给统一命名空间模块模块;
5)统一命名空间模块为该文件分配文件描述符fd,建立fd和inode的映射;
6)统一命名空间模块给上层软件模块返回文件描述符fd;
7)上层软件调用统一命名空间模块的read函数,参数包括fd,偏移量和数据大小等;
8)统一命名空间模块模块查找fd到inode的映射表,得到该文件的inode;
9)统一命名空间模块根据inode中保存的数据布局模式,以及数据所在磁盘的数据管理模块标识,以inode作为对象名,调用相应数据管理模块的读接口,来读取数据;
10)统一命名空间模块将读到的数据返回给上层软件。
数据写入方法包括以下步骤:
1)上层软件调用统一命名空间模块的open函数,参数包括文件名、读写模式,和文件权限等;
2)统一命名空间模块调用元数据管理模块的open函数;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块为该文件分配inode,将inode id和内容返回给统一命名空间模块模块;
5)统一命名空间模块根据每个数据管理模块磁盘的空闲容量大小和当前读写负载情况,选择一个空闲容量较大、负载较轻的数据管理模块;
6)统一命名空间模块在选择的数据管理模块上以inode作为对象名创建一个新的数据对象;
7)统一命名空间模块模块在inode中保存该文件的布局模式,和数据所在磁盘的数据管理模块id;
8)统一命名空间模块为该文件分配文件描述符fd,在内存中建立fd到inode的映射;
9)统一命名空间模块向应用软件返回文件描述符fd;
10)上层软件调用统一命名空间模块模块的write函数,参数包括文件描述符fd,数据缓冲区地址和数据长度等;
11)统一命名空间模块根据fd查找其对应的inode;
12)统一命名空间模块读取inode内容,得到该文件的数据布局方式和数据所在的数据管理模块id;
13)统一命名空间模块向数据管理模块中写入数据;
14)统一命名空间模块向上层软件返回写入的字节数;
15)上层软件调用统一命名空间模块的close函数关闭文件,参数包括fd;
16)统一命名空间模块根据fd查找文件对应的inode;
17)统一命名空间模块向元数据管理模块更新inode中的文件大小和修改时间;
18)统一命名空间模块关闭文件,释放文件描述符;
19)统一命名空间模块返回结果给上层软件。
本发明实施的优点:本发明所述的技术方案将命名空间/元数据、文件本身的数据分开管理,保存在不同的磁盘中;每个磁盘为独立的存储单元,具有独立的磁盘空间管理和数据管理,不同磁盘之间完全独立;存储系统可支持多个磁盘,不同磁盘的容量不要求完全相同;系统在运行过程中可在线加入新的磁盘,可以只加入一块磁盘,不要求成组加入,新添加磁盘后,无强制性数据迁移。文件的元数据保存在索引节点中;索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号;数据布局方式支持单体、镜像、条带化等多种方式;每个目录和文件的布局方式可以独立设置;以文件在元数据磁盘上的索引节点编号作为文件数据在相应数据磁盘上的名,在数据磁盘上,所有数据为扁平结构,在逻辑上无层次目录结构,支持存储容量扩展、数据容错,能够简化存储系统管理,提高可扩展性,并提升存储系统数据访问性能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (3)

1.一种多磁盘聚合式数据存储系统实现方法,其特征在于,所述多磁盘聚合式数据存储系统实现方法包括以下步骤:
以松耦合方式聚合多个存储单元形成存储系统;
选取任一存储单元存储命名空间和存储数据的元数据;
存储数据以不同的布局方式存储在其它多个存储单元中;
分别创建元数据管理模块和数据管理模块来管理元数据和存储数据,其中,所述数据管理模块用于管理文件本身的数据,存储系统中除了安装操作系统的磁盘和存储元数据管理模块的数据的磁盘外,其它所有磁盘都用于存储文件的数据,每个磁盘都唯一对应于一个数据管理模块,不同的数据管理模块之间完全独立;每个数据管理模块是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址;
对外提供统一命名空间模块以管理命名空间和元数据管理模块,并支持面向目录、文件或对象的数据访问;
所述存储数据的元数据保存在索引节点中,索引节点内容包括该文件的数据布局方式和数据所在磁盘的标识号;
以存储在元数据磁盘上的索引节点号作为文件数据在相应数据磁盘上的名;
每个目录或文件为独立选择数据布局方式,数据布局方式包括单体、镜像和条带化;
所述统一命名空间模块对上层软件提供文件或对象访问接口,屏蔽存储系统的内部结构,根据文件读写请求访问相应的元数据管理模块和数据管理模块;
所述元数据管理模块管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据,包括:大小、访问权限和时间戳,元数据管理模块不管理文件本身的数据;系统中有1个磁盘或磁盘分区专门用于存储元数据管理模块的数据,该磁盘中也存储了其它数据磁盘的信息;
统一命名空间模块管理命名空间和元数据,命名空间主要由目录组成,一个目录文件包括多个目录项,目录项的内容包括如下字段:目录/文件名、类型、对应的inode索引节点编号;文件的元数据保存在索引节点中,所述索引节点包括文件的数据布局方式和数据所在磁盘的标识号, 类型字段表明该目录项为目录还是普通文件,每个目录/文件名在存储系统中具有唯一的数据结构inode索引节点存储其元数据;
inode索引节点包括的字段如下:
Mode:文件权限,分为读、写、执行,共9个比特位,分别对应于owner、group、other三种角色对该文件拥有的权限;
Owners:所有者和组标识号;
Timestamps:文件创建、修改、最后访问时间;
Count:文件引用计数;
Size:文件大小;
Stripe:文件的数据布局方式;
DMMids:该文件的数据所在数据磁盘的标识号。
2.一种多磁盘聚合式数据存储系统,包括硬件部分和管理数据的软件;该硬件部分包括处理器、内存、用于存储数据的若干个磁盘,磁盘通过I/O总线接入到系统中;其特征在于,所述管理数据的软件包括统一命名空间模块、元数据管理模块和数据管理模块,其中:
统一命名空间模块管理命名空间和元数据,对上层软件提供文件或对象访问接口,屏蔽存储系统的内部结构,根据文件读写请求访问相应的元数据管理模块和数据管理模块;
元数据管理模块管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据,包括:大小、访问权限和时间戳,元数据管理模块不管理文件本身的数据;系统中有1个磁盘或磁盘分区专门用于存储元数据管理模块的数据,该磁盘中也存储了其它数据磁盘的信息;
数据管理模块管理存储数据,所述数据管理模块用于管理文件本身的数据,存储系统中除了安装操作系统的磁盘和存储元数据管理模块的数据的磁盘外,其它所有磁盘都用于存储文件的数据,每个磁盘都唯一对应于一个数据管理模块,不同的数据管理模块之间完全独立;每个数据管理模块是完整独立的存储单元,记录有磁盘的空间分配状态,所存储的数据,数据的磁盘块地址;
所述元数据管理模块管理元数据,包括目录层次结构,每个目录下的文件名,以及文件的元数据,包括:大小、访问权限和时间戳,元数据管理模块不管理文件本身的数据;系统中有1个磁盘或磁盘分区专门用于存储元数据管理模块的数据,该磁盘中也存储了其它数据磁盘的信息;
统一命名空间模块管理命名空间和元数据,命名空间主要由目录组成,一个目录文件包括多个目录项,目录项的内容包括如下字段:目录/文件名、类型、对应的inode索引节点编号;文件的元数据保存在索引节点中,所述索引节点包括文件的数据布局方式和数据所在磁盘的标识号, 类型字段表明该目录项为目录还是普通文件,每个目录/文件名在存储系统中具有唯一的数据结构inode索引节点存储其元数据;
inode索引节点包括的字段如下:
Mode:文件权限,分为读、写、执行,共9个比特位,分别对应于owner、group、other三种角色对该文件拥有的权限;
Owners:所有者和组标识号;
Timestamps:文件创建、修改、最后访问时间;
Count:文件引用计数;
Size:文件大小;
Stripe:文件的数据布局方式;
DMMids:该文件的数据所在数据磁盘的标识号。
3.一种基于权利要求2所述的多磁盘聚合式数据存储系统的数据存取方法,其特征在于,所述数据存取方法包括:数据读取方法和数据写入方法;其中:
数据读取方法包括以下步骤:
1)上层软件模块调用统一命名空间模块的open函数,参数包括文件名和读写模式;
2)统一命名空间模块模块将请求转交个元数据管理模块;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块将文件的inode编号和内容返回给统一命名空间模块模块;
5)统一命名空间模块为该文件分配文件描述符fd,建立fd和inode编号的映射;
6)统一命名空间模块给上层软件模块返回文件描述符fd;
7)上层软件调用统一命名空间模块的read函数,参数包括文件描述符fd,偏移量和数据大小;
8)统一命名空间模块模块查找fd到inode的映射表,得到该文件的inode编号;
9)统一命名空间模块根据inode编号中保存的数据布局模式,以及数据所在磁盘的数据管理模块标识,以inode编号作为对象名,调用相应数据管理模块的读接口,来读取数据;
10)统一命名空间模块将读到的数据返回给上层软件;
数据写入方法包括以下步骤:
1)上层软件模块调用统一命名空间模块的open函数,参数包括文件名、读写模式,和文件权限;
2)统一命名空间模块调用元数据管理模块的open函数;
3)元数据管理模块对文件名、访问权限进行检查,如失败,则返回错误;
4)元数据管理模块为该文件分配inode编号,将inode编号和内容返回给统一命名空间模块模块;
5)统一命名空间模块根据每个数据管理模块磁盘的空闲容量大小和当前读写负载情况,选择一个空闲容量较大、负载较轻的数据管理模块;
6)统一命名空间模块在选择的数据管理模块上以inode编号作为对象名创建一个新的数据对象;
7)统一命名空间模块模块在inode编号中保存该文件的布局模式和数据所在磁盘的数据管理模块id;
8)统一命名空间模块为该文件分配文件描述符fd,在内存中建立文件描述符fd到inode编号的映射;
9)统一命名空间模块向应用软件返回文件描述符fd;
10)上层软件调用统一命名空间模块模块的write函数,参数包括文件描述符fd、数据缓冲区地址和数据长度;
11)统一命名空间模块根据文件描述符fd查找其对应的inode编号;
12)统一命名空间模块读取inode编号的内容,得到该文件的数据布局方式和数据所在的数据管理模块id;
13)统一命名空间模块向数据管理模块中写入数据;
14)统一命名空间模块向上层软件返回写入的字节数;
15)上层软件调用统一命名空间模块的close函数关闭文件,参数包括文件描述符fd;
16)统一命名空间模块根据文件描述符fd查找文件对应的inode编号;
17)统一命名空间模块向元数据管理模块更新inode编号中的文件大小和修改时间;
18)统一命名空间模块关闭文件,释放文件描述符fd;
19)统一命名空间模块返回结果给上层软件模块。
CN201610299085.7A 2016-05-08 2016-05-08 一种多磁盘聚合式数据存储系统及其实现方法与应用方法 Active CN107346209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610299085.7A CN107346209B (zh) 2016-05-08 2016-05-08 一种多磁盘聚合式数据存储系统及其实现方法与应用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610299085.7A CN107346209B (zh) 2016-05-08 2016-05-08 一种多磁盘聚合式数据存储系统及其实现方法与应用方法

Publications (2)

Publication Number Publication Date
CN107346209A CN107346209A (zh) 2017-11-14
CN107346209B true CN107346209B (zh) 2022-05-20

Family

ID=60253144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610299085.7A Active CN107346209B (zh) 2016-05-08 2016-05-08 一种多磁盘聚合式数据存储系统及其实现方法与应用方法

Country Status (1)

Country Link
CN (1) CN107346209B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102503177B1 (ko) * 2018-03-05 2023-02-24 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN109800185B (zh) * 2018-12-29 2023-10-20 上海霄云信息科技有限公司 一种数据存储系统中的数据缓存方法
CN111435286B (zh) * 2019-01-14 2023-12-05 深圳市茁壮网络股份有限公司 一种数据存储方法、装置和系统
CN110365767B (zh) * 2019-07-12 2021-08-20 成都安恒信息技术有限公司 一种运维审计系统的单次运维多tcp连接聚合方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096557A (zh) * 2010-12-31 2011-06-15 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN102375701A (zh) * 2010-08-20 2012-03-14 株式会社日立制作所 松耦合多存储环境的分层存储池管理和控制
CN103761059A (zh) * 2014-01-24 2014-04-30 中国科学院信息工程研究所 一种用于海量数据管理的多盘位存储方法及系统
CN103812939A (zh) * 2014-02-17 2014-05-21 李漾 一种大数据存储系统
CN104991747A (zh) * 2015-07-30 2015-10-21 湖南亿谷科技发展股份有限公司 数据管理方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449730B2 (en) * 1995-10-24 2002-09-10 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
JPH11312113A (ja) * 1998-04-28 1999-11-09 Nec Corp 疎結合マルチプロセッサシステム
US7739543B1 (en) * 2003-04-23 2010-06-15 Netapp, Inc. System and method for transport-level failover for loosely coupled iSCSI target devices
CN102855284B (zh) * 2012-08-03 2016-08-10 北京联创信安科技股份有限公司 一种集群存储系统的数据管理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102375701A (zh) * 2010-08-20 2012-03-14 株式会社日立制作所 松耦合多存储环境的分层存储池管理和控制
CN102096557A (zh) * 2010-12-31 2011-06-15 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN103761059A (zh) * 2014-01-24 2014-04-30 中国科学院信息工程研究所 一种用于海量数据管理的多盘位存储方法及系统
CN103812939A (zh) * 2014-02-17 2014-05-21 李漾 一种大数据存储系统
CN104991747A (zh) * 2015-07-30 2015-10-21 湖南亿谷科技发展股份有限公司 数据管理方法及系统

Also Published As

Publication number Publication date
CN107346209A (zh) 2017-11-14

Similar Documents

Publication Publication Date Title
US6564228B1 (en) Method of enabling heterogeneous platforms to utilize a universal file system in a storage area network
US8996490B1 (en) Managing logical views of directories
CN103229173B (zh) 元数据管理方法及系统
CN107168657B (zh) 一种基于分布式块存储的虚拟磁盘分层缓存设计方法
US9582213B2 (en) Object store architecture for distributed data processing system
US6584582B1 (en) Method of file system recovery logging
CN103812939B (zh) 一种大数据存储系统
US8046534B2 (en) Managing snapshots in storage systems
CN102184260B (zh) 一种云计算环境下的海量数据存取方法
US9189494B2 (en) Object file system
CN103106286B (zh) 元数据的管理方法和装置
CN107346209B (zh) 一种多磁盘聚合式数据存储系统及其实现方法与应用方法
US20130103644A1 (en) Writable snapshots
CN100452046C (zh) 一种海量文件的存储方法及系统
CN103455577A (zh) 云主机镜像文件的多备份就近存储和读取方法及系统
CN111881107B (zh) 支持多文件系统挂载的分布式存储方法
CN111984191A (zh) 一种支持分布式存储的多客户端缓存方法及系统
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN113946291A (zh) 数据访问方法、装置、存储节点及可读存储介质
US10409687B1 (en) Managing backing up of file systems
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
US10521398B1 (en) Tracking version families in a file system
CN111381766B (zh) 一种磁盘动态加载的方法和云存储系统
US20070299890A1 (en) System and method for archiving relational database data
CN111274259A (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