专利名称:数据存储方法及装置的制作方法
技术领域:
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法及装置。
背景技术:
随着高性能计算由传统的主机方式向网络化集群演变,传统的基于主机的存储架构已逐渐向网络化存储发展,计算和存储分离的趋势越来越明显。对象存储文件系统能够有效结合存储区域网络(SAN)和网络附加存储(NAS)系统的优点,支持直接访问磁盘以提高性能,且通过共享的文件和元数据来简化管理,其在可扩展性、性能、易用性等方面都有显著提高,随着网络化存储技术的不断成熟,对象存储文件系统已成为重要的发展方向。对象是对象存储文件系统中数据存储的基本单位,一个对象实际上就是文件数据和一组属性的组合,这些属性可以定义基于文件的独立冗余磁盘阵列(Redundant Arrayof Inexpensive Disks, RAID)参数、数据分布和服务质量等,对象通过与存储系统通信维护自己的属性。在存储设备中,所有对象都有一个对象标识,通过对象标识命令访问该对象。配额是操作系统的一个可选的功能,它允许管理员限制分派给用户或目录所使用的磁盘空间大小,以防止某个用户或目录占用过多可用的磁盘空间。当用户在磁盘分区上拷贝或存储一个新文件时,他就拥有对这个文件的所有权,这时磁盘配额程序就将此文件的大小计入该用户的磁盘配额空间内。传统的磁盘配额机制一般从“占用磁盘大小”和“所有文件的数量”两个方面来对用户进行限制。通过设置用户在分区中最多使用的块数量就能达到控制磁盘占用的目的,无法对目录进行相关的配额控制。而近些年来文件系统管理的存储空间不断增长。特别是在分布式存储系统中,往往是一套存储系统可以管理数十拍字节(Petabyte,PB)的存储空间,上面可以运行多种业务。因此对配额的控制需要也更加丰富,单一的用户级别的配额管理灵活性较低,已经无法满足现代文件系统的配额管理需求。
发明内容
有鉴于此,本发明提供了一种数据存储方法及装置,适用于为存储空间非常大、运行业务类型较多且需要更灵活的配额控制管理方式的存储系统。为了解决上述问题,第一方面,本发明实施例提供了一种数据存储方法,包括接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据;判断所述待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的大小,所述配额对象集用于管理目录的额定配额;当所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中。结合第一方面,在第一种实现方式中,所述目标文件由设定数量的对象组成;
将所述待写入所述目标文件的数据写入所述目标文件的对象中包括根据所述待写入所述目标文件的数据的大小将所述待写入所述目标文件的数据写入所述目标文件的对应大小的对象中。结合第一方面,在第二种实现方式中,所述目标文件由设定长度的对象组成;将所述待写入所述目标文件的数据写入所述目标文件的对象中包括创建所述待写入所述目标文件的数据对应的对象,并向所创建的对象中写入所述待写入所述目标文件的数据;判断已写入所述目标文件的数据的长度是否达到所述对象的设定长度;当已写入所述目标文件的数据的长度达到所述对象的设定长度时,继续创建所述待写入所述目标文件的数据对应的对象直到将所述待写入所述目标文件的数据全部写入所述目标文件。结合第一方面或第一方面的上述实现方式中的任一种,在第三种实现方式中,在接收对目标文件的写请求之前,还包括接收对目标目录进行配额控制的请求; 根据所述对目标目录进行配额控制的请求,为所述目标目录设置额定配额并创建配额对象集,所述配额对象集中记录了所述目标目录下所有文件和子目录已使用的对象占用空间的统计信息、对象与文件和子目录的所属关系、以及所述目标目录及其所有子目录的所属关系;检查所述目标目录是否为空,并在不为空时遍历所述目标目录,将所述目标目录下所有文件和子目录的相关信息记录在所述配额对象集中。结合第一方面的第三种实现方式,在第四种实现方式中,还包括接收移出目标目录的请求,所述目标目录包含在具有额定配额的目录中;在对应的配额对象集中查找所述目标目录所有相关的对象,删除所有相关对象所对应的数据,并删除所有相关的对象在所述配额对象集中的记录,回收所述目标目录的占用空间。结合第一方面的第三或第四种实现方式,在第五种实现方式中,所述配额对象集包括对象分配表以及目录组织关系表,所述对象分配表用于记录所述目标目录下所有文件和子目录已使用的对象占用空间的统计信息、对象与文件和子目录的所属关系;所述目录组织关系表用于记录所述目标目录及其所有子目录的所属关系。结合第一方面或第一方面的上述实现方式中的任一种,在第六种实现方式中,所述配额对象集包括至少两个配额对象子集,所述配额对象子集用于管理目录的额定配额中的部分配额。第二方面,本发明实施例提供了一种数据存储装置,包括接收单元,用于接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据;判断单元,用于判断所述待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的大小,所述配额对象集用于管理目录的额定配额;存储单元,用于在所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中。
结合第二方面,在第一种实现方式中,所述存储单元根据所述待写入所述目标文件的数据的大小将所述待写入所述目标文件的数据写入所述目标文件的对应大小的对象中。结合第二方面,在第二种实现方式中,所述存储单元还用于创建所述待写入所述目标文件的数据对应的对象,并向所创建的对象中写入所述待写入所述目标文件的数据;所述判断单元还用于判断待写入所述目标文件的数据的长度是否达到所述对象的设定长度;所述存储单元在待写入所述目标文件的数据的长度达到所述对象的设定长度时,继续创建所述待写入所述目标文件的数据对应的对象直到将所述待写入所述目标文件的数据全部写入所述目标文件。结合第二方面或第二方面的上述实现方式中的任一种,在第三种实现方式中,所述接收单元还用于接收对目标目录进行配额控制的请求;所述系统还包括配额控制单元,用于根据所述对目标目录进行配额控制的请求,为所述目标目录设置额定配额并创建配额对象集;并在所述目标目录不为空时遍历所述目标目录,将所述目标目录下所有文件和子目录的相关信息记录在所述配额对象集中。结合第二方面的第三种实现方式,在第四种实现方式中,所述接收单元还用于在接收对目标文件的写请求之后还包括接收移出目标文件的请求;所述配额控制单元还用于在所述配额对象集中查找所述目标文件所有相关的对象,删除所有相关对象所对应的数据,并删除所有相关的对象在所述配额对象集中的记录,回收所述目标文件的占用空间。本发明实施例的方法及装置在使用配额对象集来实现基于对象的文件系统对目录配额的管理的前提下进行数据的存储,更适用于存储空间非常大、运行业务类型较多且需要更灵活的配额控制管理方式的存储系统。根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
包含在说明书中并且构成说明书的一部分的说明书附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。图1为本发明实施例的方法及装置的应用场景示意图;图2为本发明实施例的一种数据存储方法的流程图;图3为本发明实施例的另一种数据存储方法的流程图;图4为本发明实施例的数据存储方法中配额对象集的应用示意图;图5为本发明实施例的数据存储方法中的对象分配表示意图;图6为本发明实施例的数据存储方法中的目录关系表示意图;图7为目标文件由设定长度的对象组成时本发明实施例的数据存储方法示意图;图8为目标文件由设定长度的对象组成时本发明实施例的数据存储方法示意图9为本发明实施例的又一种数据存储方法的流程图;图10本发明实施例的数据存储方法中配额对象集的另一种应用示意图;图11为本发明实施例一种结构的数据存储装置的结构示意图;图12为本发明实施例另一种结构的数据存储装置的结构示意图;图13为本发明实施例又一种结构的数据存储装置的结构示意图。
具体实施例方式以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本发明,在下文的具体实施方式
中给出了众多的具体细节。本领域技术人员应当理解,没有这些具体细节,本发明同样可以实施。在另外一些实例中,对于大家熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。本发明实施例的方法的应用场景为对象存储系统,该对象存储系统中文件系统管理人员对文件系统的目录进行配额管理,限制文件系统中目录的占用空间。该应用场景如图1所示。在图1中,接入端即用户终端,可以包括当前技术已知的任何计算设备,如服务器、台式计算机等等。在其内部,安装有操作系统以及其他应用程序,文件系统即运行在接入端上,文件系统对用户的文件操作(读写等)进行解释,并在元数据服务器和对象存储服务器间通信,完成所请求的操作。元数据服务器用于为接入端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每个文件所对应的存储介质等。对象存储服务器(也称对象存储设备(Object-based Storage Devic e, OSD))是指使用对象对所保存的数据进行管理的设备,每个对象存储服务器都是一个智能设备,具有自己的存储介质、以及网络系统等,负责管理本地的对象,它将数据存放到作为存储介质的磁盘的磁道和扇区,将若干磁道和扇区组合起来构成对象,并且通过此对象向外界提供对数据的访问。对象由用户数据、构成对象的磁盘的磁道的物理位置)和属性构成。存储介质是对象存储服务器的一部分,用于存储数据。如图2所示,本发明实施例提供的数据存储方法,包括S201.接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据;S202.判断所述待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的大小;S203.当所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中,所述配额对象集用于管理目录的额定配额,其中记录了所述目标目录下所有文件和子目录已使用的对象占用空间的统计信息、对象与文件和子目录的所属关系、以及所述目标目录及其所有子目录的所属关系。
本发明实施例的方法在使用配额对象集来实现基于对象的文件系统对目录配额 的管理的前提下进行数据的存储,更适用于为存储空间非常大、运行业务类型较多且需要 更灵活的配额控制管理方式的存储系统。
如图3所示,在本发明实施例的方法中,步骤S201之前,
还包括
S301.接收对目标目录进行配额控制的请求;
S302.根据所述对目标目录进行配额控制的请求,为所述目标目录设置额定配额 并创建配额对象集;
S303.检查所述目标目录是否为空,并在不为空时遍历所述目标目录,将所述目标 目录下所有文件和子目录的相关信息记录在所述配额对象集中。
该配额对象集可通过若干表结构对目标目录进行额定配额的空间的管理,以在子 目录迁入/迁出时可以快速计算出迁入/迁出的容量。在本发明实施例的方法中,该配额 对象集包括对象分配表以及目录组织关系表,该对象分配表中包含如下信息当前对象分 配表中已经使用的对象占用空间的统计信息,以及对象与文件和子目录的所属关系。其中, 若在该文件系统的设计中,文件由若干等长对象组成,则该占用空间的统计可以简化为对 象数量的统计;若对文件系统设计中,文件由设定数量的对象组成,则该占用空间的统计可 以简化为对象长度的统计。需要说明的是,一个文件可对应多个对象,在本发明实施例的方 法中,对象的长度表示其用于存储的物理空间的大小,也即表示其所能存储的数据的大小。 通常,文件由等长的对象组成时,对组成该文件的对象的数量不做限制;文件由设定数量的 对象组成时,对组成该文件的对象的长度不做限制。
记录对象与文件和子目录的所属关系(例如每个对象对应的父目录的ID)可以方 便在目录移动时,统计其所使用的所有对象所占有的空间的大小。目录组织关系表记录了 所述目标目录中各子目录的父子关系信息。对象分配表及目录组织关系表可采用多种形 式,包括但不限于数据库、位图、B树等不同的组织方式。
以图4所示的目录A (DIR A)为例,为其设置95G的额定配额,并建立24M的配额 对象集(所记录的内容占用空间大小为24M),用于管理和记录该95G的目录下的所有文件 和子目录。该目录A下的文件由设定长度的对象组成,因此可将对占用空间的统计简化为 对象数量的统计,例如该配额对象集的对象分配表具有记录10000个对象与文件和子目录 的所属关系的额定空间,如图4中所示的,当前已记录了 24个对象与文件和子目录的所属 关系。该对分配表中所记录的对象与文件和子目录的所属关系如图5所示。该配额对象集 的目录组织关系表如图6所示。
在本发明实施例的方法中,将已设置了额定配额并建立了配额对象集的目录在下 文中称作配额目录。在配额目录下新增文件或者向既有文件中追加内容(写数据)时,均需 要检查对象分配表是否达到配额限制(空间已满)。如果达到配额限制,则拒绝新增内容写 入,从而达到配额管理的目的。当该配额目录中有子目录迁出时,需要对目录组织关系表进 行扫描,快速找到相关的对象并移除,根据该目录组织关系表所记载的各目录的父子关系, 很快的统计出移除子目录的大小,回收相关对象所占用的空间,从而调整配额目录的配额 信息。
具言之,在步骤S201中,若该目标文件由设定长度的对象组成,也即每个对象所 能存储的数据的大小一定时,则如图7所示,在步骤S203中,将所述待写入所述目标文件的 数据写入所述目标文件的对象中的步骤具体包括
S701.为待写入的数据创建同样具有该设定长度的对象,记录所创建的对象占用 的空间及其与文件和子目录的所属关系;
S702.向所创建的对象中写入待写入的数据;
S703.判断已写入的数据是否达到该设定长度,若达到,则执行步骤S704,否则, 继续执行步骤S702 ;
S704.判断待写入的数据是否已全部写完,若未写完,则返回执行步骤S701,继续 为待写入的数据创建对象,若已写完,则结束。
例如,当文件由多个对应存储空间均为IM的对象组成,且需要向目标文件中写入 3M的数据时,需要为待写入的数据创建3个对象,每个对象中写入IM的数据。
在需增加目标文件时,基于对象的文件系统执行上述步骤中的步骤S701至步骤 S704,写入目标文件对应的数据。
在步骤S201中,若该目标文件由设定数量的对象组成,即对象的长度不一定时, 则如图8所示,在步骤S203中,将所述待写入所述目标文件的数据写入所述目标文件的对 象中的步骤具体包括
S801.判断所述目标文件对应的对象是否已达到设定数量,若是,则执行步骤 S803,否则执行步骤S802 ;
S802.为待写入的数据创建对应长度的对象,并将该待写入的数据写入所创建的 对象中;
S803.向配额对象集申请变更任一目标对象的长度,变更的长度为使得变更后的 对象所对应的物理空间足够容纳该待写入的数据;
S804.修改所述目标对象的长度,并记录修改后的目标对象占用的空间,将待写入 数据写入该目标对象。
例如,需要向目标文件中写入3M的数据时,若构成目标文件的对象的长度均不能 满足其所对应的物理空间足够再容纳3M的数据,则可选择任一对象作为目标对象,来变更 其长度,使其变更后所对应的物理空间足够容纳该3M的数据。
在本发明实施例的方法中,还包括如图9所示的步骤
S901.接收移出目标目录的请求,所示目标目录包含在具有额定配额的目录中;
S902.在对应的配额对象集中查找所述目标目录所有相关的对象,删除所有相关 对象所对应的数据,并删除所有相关的对象在所述配额对象集中的记录,统计并回收目标 目录的占用空间。
其中,步骤S902中可具体包括
递归查找目录组织关系表,找到所有目标目录的子目录;
查找对象分配表,统计目标目录的大小,将所有子目录相关的对象移出该对象分 配表。
综上,本发明实施例的方法通过目录组织关系表及对象分配表,可以统计配额目 录下任意子目录下所有文件占用的空间,并加速配额目录中文件的迁入、迁出操作。
此外,为了避免性能瓶颈,本发明实施例的方法中的配额对象集可以为分布式设 计,如图10所示,每个配额对象集包括至少两个子集。每个子集分别用于记录配额目录下 已使用的部分对象占用空间的统计信息、对象与文件和/或子目录的所属关系等,且每个 子集所对应的配额可相同或不全相同。如图10中所示,每个配额对象子集包括一个对象分 配表;所有配额对象子集共享一个目录关系表。
如图11所示,本发明实施例还提供了一种数据存储装置1100,该装置包括接收 单元1110、判断单元1120以及存储单元1130。
其中,接收单元1110用于接收对目标文件的写请求。判断单元1120用于判断所 述写请求包括待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的 大小,将所述待写入所述目标文件的数据写入所述目标文件的对象中;存储单元1130用于 在所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时。
本发明实施例的装置在使用配额对象集来实现基于对象的文件系统对目录配额 的管理的前提下进行数据的存储,更适用于为存储空间非常大、运行业务类型较多且需要 更灵活的配额控制管理方式的存储系统。
此外,在本发明实施例的数据存储装置中,在目标文件由设定数量的对象组成时, 存储单元1130根据所述待写入所述目标文件的数据的大小将所述待写入所述目标文件的 数据写入所述目标文件的对应大小的对象中。在目标文件由设定长度的对象组成时,存储 单元1130还用于创建所述待写入所述目标文件的数据对应的对象,并向所创建的对象中 写入所述待写入所述目标文件的数据;判断单元1120还用于判断待写入所述目标文件的 数据的长度是否达到所述对象的设定长度;存储单元1130在待写入所述目标文件的数据 的长度达到所述对象的设定长度时,继续创建所述待写入所述目标文件的数据对应的对象 直到将所述待写入所述目标文件的数据全部写入所述目标文件。
此外,接收单元1120还用于接收对目标目录进行配额控制的请求。此时,如图12 所示,本发明实施例的另一种结构的数据存储装置1200在图11所示的各单元的基础上还 包括配额控制单元1210,用于根据所述对目标目录进行配额控制的请求,为所述目标目录 设置额定配额并创建配额对象集;并在所述目标目录不为空时遍历所述目标目录,将所述 目标目录下所有文件和子目录的相关信息记录在所述配额对象集中。
接收单元1120还用于在接收对目标文件的写请求之后还包括接收移出目标文件 的请求。此时,配额控制单元1210还用于在所述配额对象集中查找所述目标文件所有相关 的对象,删除所有相关对象所对应的数据,并删除所有相关的对象在所述配额对象集中的 记录,回收所述目标文件的占用空间。
如图13为本发明实施例提供的又一种数据存储装置1300的结构示意图,本发明 具体实施例并不对该装置的具体实现做限定。如图13所示,该装置1300可以包括
处理器(processor)1310、通信接口(Communications Interface) 1320、存储器 (memory) 1330、以及通信总线1340。其中
处理器1310、通信接口 1320、以及存储器1330通过通信总线1240完成相互间的通信。
通信接口 1320,用于与比如客户端等的网元通信。
处理器1310,用于执行程序1332,具体可以执行上述图2至图9所示的方法实施例中的相关步骤。
具体地,程序1332可以包括程序代码,所述程序代码包括计算机操作指令。
处理器1310可能是一个中央处理器CPU,或者是特定集成电路ASICXApplication Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1330,用于存放程序1332。存储器1330可能包含高速RAM存储器,也可能 还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序1332具 体可以包括
接收单元,用于接收对目标文件的写请求,所述目标文件包含在具有额定配额的 目录中,所述写请求包括待写入所述目标文件的数据;
判断单元,用于判断所述写请求包括待写入所述目标文件的数据的大小是否满足 配额对象集记录的剩余空间的大小,将所述待写入所述目标文件的数据写入所述目标文件 的对象中;
存储单元,用于在所述待写入所述目标文件的数据的大小不超过配额对象集记录 的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中。
程序1332中各单元的具体实现可以参见图10至11所示实施例中的相应单元,在 此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备 和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个 人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取 存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通 技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种数据存储方法,其特征在于,包括 接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据; 判断所述待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的大小,所述配额对象集用于管理目录的额定配额; 当所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中。
2.根据权利要求1所述的方法,其特征在于,所述目标文件由设定数量的对象组成; 将所述待写入所述目标文件的数据写入所述目标文件的对象中包括 根据所述待写入所述目标文件的数据的大小将所述待写入所述目标文件的数据写入所述目标文件的对应大小的对象中。
3.根据权利要求1所述的方法,其特征在于,所述目标文件由设定长度的对象组成; 将所述待写入所述目标文件的数据写入所述目标文件的对象中包括 创建所述待写入所述目标文件的数据对应的对象,并向所创建的对象中写入所述待写入所述目标文件的数据; 判断已写入所述目标文件的数据的长度是否达到所述对象的设定长度; 当已写入所述目标文件的数据的长度达到所述对象的设定长度时,继续创建所述待写入所述目标文件的数据对应的对象直到将所述待写入所述目标文件的数据全部写入所述目标文件。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在接收对目标文件的写请求之前,还包括 接收对目标目录进行配额控制的请求; 根据所述对目标目录进行配额控制的请求,为所述目标目录设置额定配额并创建配额对象集,所述配额对象集中记录了所述目标目录下所有文件和子目录已使用的对象占用空间的统计信息、对象与文件和子目录的所属关系、以及所述目标目录及其所有子目录的所属关系; 检查所述目标目录是否为空,并在不为空时遍历所述目标目录,将所述目标目录下所有文件和子目录的相关信息记录在所述配额对象集中。
5.根据权利要求4中所述的方法,其特征在于,还包括 接收移出目标目录的请求,所述目标目录包含在具有额定配额的目录中; 在对应的配额对象集中查找所述目标目录所有相关的对象,删除所有相关对象所对应的数据,并删除所有相关的对象在所述配额对象集中的记录,回收所述目标目录的占用空间。
6.根据权利要求4或5所述的方法,其特征在于,所述配额对象集包括对象分配表以及目录组织关系表,所述对象分配表用于记录所述目标目录下所有文件和子目录已使用的对象占用空间的统计信息、对象与文件和子目录的所属关系;所述目录组织关系表用于记录所述目标目录及其所有子目录的所属关系。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述配额对象集包括至少两个配额对象子集,所述配额对象子集用于管理目录的额定配额中的部分配额。
8.一种数据存储装置,其特征在于,包括 接收单元,用于接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据; 判断单元,用于判断所述待写入所述目标文件的数据的大小是否满足配额对象集记录的剩余空间的大小,所述配额对象集用于管理目录的额定配额; 存储单元,用于在所述待写入所述目标文件的数据的大小不超过配额对象集记录的剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中。
9.根据权利要求8所述的装置,其特征在于,所述存储单元根据所述待写入所述目标文件的数据的大小将所述待写入所述目标文件的数据写入所述目标文件的对应大小的对象中。
10.根据权利要求8所述的装置,其特征在于,所述存储单元还用于创建所述待写入所述目标文件的数据对应的对象,并向所创建的对象中写入所述待写入所述目标文件的数据; 所述判断单元还用于判断待写入所述目标文件的数据的长度是否达到所述对象的设定长度; 所述存储单元在待写入所述目标文件的数据的长度达到所述对象的设定长度时,继续创建所述待写入所述目标文件的数据对应的对象直到将所述待写入所述目标文件的数据全部写入所述目标文件。
11.根据权利要求8至10中任一项所述的装置,其特征在于, 所述接收单元还用于接收对目标目录进行配额控制的请求; 所述系统还包括 配额控制单元,用于根据所述对目标目录进行配额控制的请求,为所述目标目录设置额定配额并创建配额对象集;并在所述目标目录不为空时遍历所述目标目录,将所述目标目录下所有文件和子目录的相关信息记录在所述配额对象集中。
12.根据权利要求11中所述的装置,其特征在于, 所述接收单元还用于在接收对目标文件的写请求之后还包括接收移出目标文件的请求; 所述配额控制单元还用于在所述配额对象集中查找所述目标文件所有相关的对象,删除所有相关对象所对应的数据,并删除所有相关的对象在所述配额对象集中的记录,回收所述目标文件的占用空间。
全文摘要
本发明提供了一种数据存储方法及装置,涉及数据存储技术领域。该方法包括接收对目标文件的写请求,所述目标文件包含在具有额定配额的目录中,所述写请求包括待写入所述目标文件的数据;判断所述待写入所述目标文件的数据的大小是否满足配额对象集中剩余空间的大小;当所述待写入所述目标文件的数据的大小不超过配额对象集中剩余空间的大小时,将所述待写入所述目标文件的数据写入所述目标文件的对象中,所述配额对象集用于管理目录的额定配额。本发明实施例提供的方法及装置适用于为存储空间非常大、运行业务类型较多且需要更灵活的配额控制管理方式的存储系统。
文档编号G06F3/06GK103064639SQ20121058737
公开日2013年4月24日 申请日期2012年12月28日 优先权日2012年12月28日
发明者胡波 申请人:华为技术有限公司