CN108959300B - 文件存储方法和存储装置 - Google Patents
文件存储方法和存储装置 Download PDFInfo
- Publication number
- CN108959300B CN108959300B CN201710360832.8A CN201710360832A CN108959300B CN 108959300 B CN108959300 B CN 108959300B CN 201710360832 A CN201710360832 A CN 201710360832A CN 108959300 B CN108959300 B CN 108959300B
- Authority
- CN
- China
- Prior art keywords
- file
- storage
- domains
- domain
- file system
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件存储方法,包括:文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;所述文件系统根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;所述文件系统将所述文件创建到所述目标域中;所述文件系统根据所述文件存储路径将所述文件添加到目录树中。本发明实施例还公开了一种存储设备。采用本发明实施例方便对存储设备中文件和目录的管理。
Description
技术领域
本发明涉及存储设备领域,尤其涉及一种文件存储方法和存储装置。
背景技术
存储系统可分为硬件设备、驱动、文件系统等多个层次。其中,文件系统作为存储系统软件的一个重要组成部分,对存储系统的结构和功能都具有非常大的影响。同时操作系统和大部分的应用与外部存储设备的交互主要是通过文件系统来完成的,因此文件系统也是操作系统中一个必不可少的模块。
在存储设备上建立文件系统时,通常可以配置很多存储特性参数,比如日志模式、大文件优化和加密等等,为不同的应用场景使用不同的配置,可以优化文件系统读写性能、减少存储空间损耗,在性能、可靠性、安全性、空间占用之间取得一个最佳的均衡。但是,存储特性都是与文件系统绑定的,存储特性无法细化到每一个文件。在实际的应用场景下,人们不止需要文件系统级别的存储特性优化,还需要细化到每一个文件,让不同的文件具备不同读写性能、日志模式、安全级别等等。传统的文件系统实现n种需求就是建立n个不同配置的文件系统,然后把文件存储于具体某个符合需求的文件系统中。由于存储设备中存在n个文件系统,对存储设备中的目录和文件管理复杂。
发明内容
本发明实施例提供一种文件存储方法和存储装置,采用本发明实施例的方案,方便对存储设备中文件和目录的管理。
第一方面,本发明实施例提供一种文件存储方法,包括:
文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
所述文件系统根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
所述文件系统将所述文件创建到所述目标域中;
所述文件系统根据所述文件存储路径将所述文件添加到目录树中。通过将文件存储到与其文件存储特性符合度最高的域存储特性对应的域中,并将文件存储路径指示的目录添加到目录树中,实现操作一个目录树可以实现对M个域中文件和目录的管理,方便有效。
在一种可行的实施例中,所述文件系统接收应用发送的文件创建请求之前,所述方法还包括:
所述文件系统确定对所述存储设备划分成域的数量M;
所述文件系统对所述存储设备进行格式化,以获取M个域;
所述文件系统对所述M个域中的每个域设置域存储特性。通过对存储设备进行格式化成M个域,并为每个域配置域存储特性,为后续文件存储做准备。
在一种可行的实施例中,所述文件系统确定对存储设备划分成域的数量M具体包括:
所述文件系统确定所述存储设备的存储特性维度数量j和所述每个存储特性维度包括的参数的数量;
所述文件系统根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
在一种可行的实施例中,在所述文件系统对所述M个域中的每个域设置域存储特性之后,所述方法还包括:
所述文件系统将所述M个域挂载到一个目录树上。通过将M个域挂载到一个目录树上,方便后续对M个域中目录和文件的操作。
在一种可行的实施例中,所述文件系统根据所述文件存储路径将所述文件添加到目录树中之前,所述方法还包括:
当确定所述目录树中未包括所述文件存储路径中所指示的全部目录时,所述文件系统确定所述目录树中缺失目录的数量N;
所述文件系统从所述M个域中,选取存储文件和目录数量最少的N个域;
所述文件系统在所述N个域中创建所述N个缺失目录,并根据所述文件存储路径将所述N个缺失目录添加到所述目录树中。通过将上述文件存储路径指示的目录添加到目录树中,进一步方便后续对M个域中目录和文件的操作
第二方面,本发明实施例提供了一种存储装置,包括:
接收模块,用于接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
第一选取模块,用于根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
创建模块,用于将所述文件创建到所述目标域中;
添加模块,用于根据所述文件存储路径将所述文件添加到目录树中。
在一种可行的实施例中,所述接收模块接收应用程序发送的文件创建请求之前,所述存储装置还包括:
第一确定模块,用于确定对所述存储设备划分成域的数量M;
格式化模块,用于对所述存储设备进行格式化,以获取M个域;
设置模块,用于对所述M个域中的每个域设置域存储特性。
在一种可行的实施例中,所述第一确定模块包括:
第一确定单元,用于确定所述存储设备的存储特性维度数量j和所述每个存储特性维度包括的参数的数量;
第二确定单元,用于根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
在一种可行的实施例中,在设置模块对所述M个域中的每个域设置域存储特性之后,所述存储装置还包括:
挂载模块,用于将所述M个域挂载到一个目录树上。
在一种可行的实施例中,所述添加模块根据所述文件存储路径将所述文件添加到目录树中之前,所述存储装置还包括:
第二确定模块,用于当确定所述目录树中未包括所述文件存储路径中所指示的全部目录时,所述文件系统确定所述目录树中缺失目录的数量N;
第二选取模块,用于从所述M个域中,选取存储文件和目录数量最少的N个域;
创建添加模块,用于在所述N个域中创建所述N个缺失目录,并根据所述文件存储路径将所述N个缺失目录添加到所述目录树中。
可以看出,在本发明实施例的方案中,文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;所述文件系统根据所述文件存储特性从M个域中,选出域存储特性与所述文件存储特性符合度最高的域,作为目标域;所述文件系统将所述文件创建到所述目标域中;所述文件系统根据所述文件存储路径将所述文件添加到目录树中。与现有技术相比,通过将创建在上述M个域中的文件和存储路径添加到一个目录树中,通过操作一个目录树可以实现对M个域中文件和目录的管理,方便有效;并且通过文件存储路径所指示的目录,在目录树中创建目录,实现了按需创建目录,避免了不必要的目录操作。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种文件存储方法所应用的系统框架示意图;
图2为本发明实施例提供的一种文件存储方法流程示意图;
图3为一种目录树结构示意图;
图4为一种目录树在域中分布示意图;
图5为另一种目录树在域中分布示意图;
图6为另一种目录树在域中分布示意图;
图7为本发明实施例提供的另一种文件存储方法流程示意图;
图8为磁盘数据结构示意图;
图9为本发明实施例提供的一种存储装置结构示意图;
图10为本发明实施例提供的一种存储装置局部结构示意图;
图11为本发明实施例提供的另一种存储装置结构示意图。
具体实施方式
下面结合附图对本发明的实施例进行详细描述。
请参见图1,图1为本发明实施例提供的一种文件存储方法所应用的系统框架示意图。如图所示,该系统包括接口101、虚拟文件系统102、文件系统103和存储设备104。上述接口101为符合可移植操作系统接口(Portable Operating System Interface,POSIX)标准的接口。上述文件系统103包括文件与存储资源调度105和域(Domain)106。该文件与存储资源调度105用于的对外与操作系统的虚拟文件系统交互,接收虚拟文件系统的各类接口调用;对内用于管理域106。上述存储设备104可为传统硬盘即硬盘驱动器(Hard Disk Drive,HDD)、固态硬盘(Solid State Drive,SSD)、混合硬盘(Hybrid Hard Drive,HHD)或者其他存储设备。文件系统103将上述存储设备104格式化为多个域106。每个域106具有不同的存储特性,这些存储特性可为性能、日志模式、大文件优化和安全性等等。
应用程序通过上述接口101向虚拟文件系统102发送文件创建请求,该虚拟文件系统102将该文件存储请求发送至文件系统103。文件系统103的文件与存储资源调度105根据存储请求在多个域106中选择一个域创建上述文件以响应上述文件创建请求。
参见图2,图2为本发明实施例提供的一种文件存储方法的流程示意图。如图2所示,该方法包括:
S201、文件系统接收应用程序发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径。
其中,文件系统接收应用发送的文件创建请求之前,所述方法还包括:
所述文件系统确定对存储设备划分成域的数量M;
所述文件系统对所述存储设备进行格式化,以获取M个域;
所述文件系统对所述M个域中的每个域设置域存储特性。
可选地,上述存储设备可为HDD、SSD、HHD或者其他存储设备。
进一步地,上述存储设备为HDD、SSD、HHD中的至少一种。
所述文件系统确定对存储设备划分成域的数量M具体包括:
具体地,所述文件系统确定所述存储设备的存储特性维度数量j和所述每个存储特性维度包括的参数的数量;
所述文件系统根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
上述文件系统对上述M个域中的每个域设置域存储特性具体是上述文件系统根据存储设备的存储特性维度和每个存储特性维度为上述M个域中每个域设置域存储特性。
举例说明,假设上述存储特性包括性能级别、日志模式和大文件优化这三个维度。其中,上述性能级别包括高性能、中性能和低性能;上述日志模式包括回写(writeback)日志模式、顺序(ordered)日志模式和全量(journal)日志模式;上述大文件优化分为开启大文件优化和不开启大文件优化,则上述M=N1*N2*N3=3*3*2=18,上述文件系统需对上述存储设备格式化出18个域。如上述18个域中的域1的域存储特性为低性能、ordered日志模式和不开启大文件优化;域2的存储特性为中性能、writeback日志模式和开启大文件优化。
再举例说明,假设上述存储特性包括性能级别、日志模式、大文件优化和是否加密这四个维度。其中,上述性能级别包括高性能、中性能和低性能;上述日志模式包括writeback日志模式、ordered日志模式和journal日志模式;上述大文件优化分为开启大文件优化和不开启大文件优化;上述是否加密包括加密和不加密两种,则上述M=N1*N2*N3*N4=3*3*2*2=36,上述文件系统需对上述存储设备格式化出36个域。该36个域中的每个域具有不同的存储特性。如上述36个域中的域1的域存储特性为高性能、writeback日志模式、开启大文件优化和加密;域2的域存储特性为中性能、journal日志模式、不开启大文件优化和加密。
可选地,上述文件系统对上述M个域中的每个域设置域存储特性后,将M个域挂载到一个目录树上。
具体地,上述目录树为仅包括一个根目录的目录树。上述文件系统将M个域挂载到一个目录树上可以理解为上述文件系统在上述M个域中第一个域中或者任一域中创建一个根目录,以将上述M个域挂载到一个根目录上。文件系统根据文件创建请求中的文件存储路径将文件和文件存储路径指示的目录添加到该根目录中。
举例说明添加文件后的目录树结构,参见图3,图3为一种目录树结构示意图。如图3所示,该目录树包括根目录、一级目录1、一级目录2、二级目录和文件a。由图3可知,上述根目录下有上述一级目录1和上述一级目录2,该一级目录2下有上述二级目录,该二级目录下有上述文件a。也可以理解为上述根目录指向上述一级目录1和上述一级目录2,该一级目录2指向上述二级目录,该二级目录指向上述文件a。
再举例说明上述目录树在域中的分布情况。参见图4,图4为目录树在域中分布示意图。如图4所示,文件系统将存储设备分为三个域,分别为域0、域1、域2。图4中的根目录和二级目录位于域0中,一级目录1和文件位于域1中,一级目录2位于域2中。上述目录和文件a之间的指向关系保持不变。
其中,上述应用程序可为数据库、万维网(World Wide Web,Web)服务器、分布式文件系统或者其他程序。
上述文件存储特性为该文件具有的存储特性,包括性能、日志模式、是否开启大文件优化和是否加密等等。比如文件1的文件存储特性为高性能、writeback日志模式、开启大文件优化和加密;文件2的文件存储特性为中性能、ordered日志模式、不开启大文件优化和加密;文件3的文件存储特性为低性能、journal日志模式和不加密。
上述文件存储路径标识该文件处于目录树中的具体哪一个目录下面。举例说明,存储路径为“根目录/一级目录2/二级目录”或者“根目录/一级目录1/二级目录”。
S202、所述文件系统根据所述文件存储特性从M个域中,选出域存储特性与所述文件存储特性符合度最高的域,作为目标域。
其中,上述文件系统根据文件存储特性从M个域中,选出存储特性与所述文件存储特性符合度最高的域具体是上述文件系统将上述文件存储特性与上述M个域的存储特性逐一比较,从上述M个域中,选出存储特性与上述文件存储特性符合度最高的域,作为目标域。
举例说明,假设上述M个域的存储特性是从性能和是否开启大文件优化两个参数进行设置的,则M为6。该6个域分别为域A、域B、域C、域D、域E、域F。域A的域存储特性为高性能和开启大文件优化,域B的域存储特性为中性能和开启大文件优化,域C的域存储特性为低性能和开启大文件优化,域D的域存储特性为高性能和不开启大文件优化,域E的域存储特性为中性能和不开启大文件优化,域F的域存储特性为低性能和不开启大文件优化。上述文件存储特性为中性能、ordered日志模式和开启大文件优化,上述文件系统将文件存储特性与上述6个域的域存储特性逐一比较后,确认域A的域存储特性与该文件存储特性的符合度最高,上述文件系统将域A作为目标域,将上述文件创建到目标域中。
S203、所述文件系统将所述文件创建到所述目标域中。
S204、所述文件系统根据所述文件存储路径将所述文件添加到目录树中。
所述文件系统根据所述文件存储路径将所述文件添加到目录树中之前,所述方法还包括:
所述文件系统确定所述目录树中是否包括所述文件存储路径中所指示的全部目录;
当确定所述目录树中未包括所述文件存储路径中所指示的全部目录是,所述文件系统确定所述目录树中缺失目录的数量N;
所述文件系统从所述M个域中,选取存储文件和目录数量最少的N个域;
所述文件系统在所述N个域中创建所述N个缺失目录。
具体地,在上述文件系统将上述文件添加到上述目录树上之前,上述文件系统确定该目录树中是否包含上述文件存储路径中所指示的目录即确定上述目录树中缺失目录的数量N。若上述目录树包含上述文件存储路径中所指示的目录,则上述文件系统将上述文件创建到上述目标域中后,将上述文件存储路径中所指示目录中最底层目录指向上述文件,;反之,则上述文件系统在上述M个域中,选取存储文件和目录数量最少的N个域,在该N个域中创建上述N个缺失目录,并将该N个缺失目录添加到上述目录树中,然后将上述文件存储路径中所指示目录中最底层目录指向上述文件,完成将上述文件添加到上述目录树中。
举例说明,假设上述目录树在域中的分布如图4所示,文件b的文件存储路径为“根目录/一级目录2/二级目录”,上述文件系统将上述文件b创建在域2中。上述文件系统确认域0、域1和域2中包含上述文件存储路径所指示的目录(包括根目录、一级目录1和二级目录),上述文件系统将二级目录指向文件b,如图5所示。
再举例说明,假设上述目录树在域中分布如图6所示,文件b的文件存储路径为“根目录/一级目录2/二级目录/三级目录”,上述文件系统将上述文件b创建在域1中。上述文件系统确认域0、域1和域2中均不包括三级目录即缺失目录数量为1,且该缺失目录为三级目录,则上述文件系统在文件和目录最少的域2中创建三级目录,然后将二级目录指向三级目录,并将三级目录指向文件b,文件存储路径添加到目录树中,如图6所示。
可以看出,在本发明实施例的方案中,文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;所述文件系统根据所述文件存储特性从M个域中,选出域存储特性与所述文件存储特性符合度最高的域,作为目标域;所述文件系统将所述文件创建到所述目标域中;所述文件系统根据所述文件存储路径将所述文件添加到目录树中。与现有技术相比,通过将创建在上述M个域中的文件和存储路径添加到一个目录树中,通过操作一个目录树可以实现对M个域中文件和目录的管理,方便有效;并且通过文件存储路径所指示的目录,在目录树中创建目录,实现了按需创建目录,避免了不必要的目录操作。
参见图7,图7为本发明实施例提供的另一种文件存储方法的流程示意图。如图7所示,该方法包括:
S701、文件系统对存储设备进行格式化,以获取M个域。
可选地,上述存储设备可为HDD、SSD、HHD或者其他存储设备。
进一步地,上述存储设备为HDD、SSD、HHD中的至少一种。
具体地,上述文件系统对存储设备进行格式化具体是上述文件系统通过该文件系统自带的专有格式化软件对上述存储设备中的每一个存储设备进行格式化,以得到M个域。上述专有格式化软件是基于开源的格式化软件二次开发得到的。
其中,上述M个域的空间大小可以是相同的,也可以是不同的。
需要说明的是,上述存储设备中的每个存储设备可格式化为至少一个域,则上述存储设备可格式化为M个域,该M个域被上述文件系统统一管理,实现了异构存储设备的统一联合访问。
其中,上述存储设备中的磁盘数据结构可参见图8,图8为磁盘数据结构示意图。如图8所示,上述M个域中的任意一个域可分为多个块组(Block Group)。多个块组中的任意一个块组又可分为超级块(Super Block,SB)、块组描述符表(Group Descriptor Table,GDT)、块位图(Block Bitmap,BB)、索引节点位图(Inode Bitmap,IB)、索引节点表(InodeTable,IT)和数据块(Data Blocks)。
具体地,上述块组为存储设备或分区之下最大的划分单位,每个块组的大小相同(一般为128MB),每个块组由元数据和数据块组成。该元数据包括SB、GDT、BB、IB和IT。
SB是Ext4文件系统的专用超级块,与虚拟文件系统的通用超级块不同。它存储了整个文件系统的元数据,比如文件系统版本号、上一次挂载的时间、数据块的大小等等。超级块是非常重要的元数据信息,一般在其他块组会有备份;GDT由每个块组中的块组描述符组成。块组描述符存放的是块组的元数据,比如空闲的数据块和索引节点的个数、数据块的起始地址、索引节点表的起始地址等。
块组描述符表在一些块组的起始处也存在备份;BB用于记录所在块组中的数据块的具体占用情况,它的每个位代表了一个数据块,大小为一个数据块,该数据块被占用时置1,数据块空闲时置0;IB的作用与上述BB的作用相同,大小也为一个数据块,每个位代表了相应的索引节点的占用情况;IT由该块组里面的具体索引节点组合而成;数据块用于存储常规文件的数据。
S702、所述文件系统分别对M个域设置M个存储特性。
其中,由于上述M个域具有不同的域存储特性,因此上述域的个数M与存储特性相关。
举例说明,假设上述存储特性包括三种性能级别、三种日志模式和是否开启大文件优化这三个维度。其中,上述三种性能级别包括高性能、中性能和低性能;上述三种日志模式包括writeback日志模式、ordered日志模式和journal日志模式;上述是否大文件优化分为开启大文件优化和不开启大文件优化,则上述M=3×3×2=18,上述文件系统需对上述存储设备格式化出18个域。如上述18个域中的域1的域存储特性为低性能、ordered日志模式和不开启大文件优化;域2的域存储特性为中性能、writeback日志模式和开启大文件优化。
再举例说明,假设上述存储特性包括三种性能级别、日志模式、大文件优化和是否加密这四个参数。其中,上述三种性能级别包括高性能、中性能和低性能;上述三种日志模式包括writeback日志模式、ordered日志模式和journal日志模式;上述是否大文件优化分为开启大文件优化和不开启大文件优化;上述是否加密包括加密和不加密,则上述M=3×3×2×2=36,上述文件系统需对上述存储设备格式化出36个域。该36个域中的每个域具有不同的存储特性。如上述36个域中的域1的域存储特性为高性能、writeback日志模式、开启大文件优化和加密;域2的域存储特性为中性能、journal日志模式、不开启大文件优化和加密。
需要说明的是,上述文件系统在格式化和挂载过程中通过对上述M个域指定不同的存储特性参数组合使得上述M个域中的每个域拥有不同的域存储特性。例如,在格式化时,上述文件系统添加或者不添加-O bigalloc参数即可指定上述域是否进行大文件优化操作;在挂载时,选择不同的存储特性参数值-o data=writeback/ordered/journal即可为上述域指定对应的日志模式。
S703、所述文件系统将所述M个域上挂载到一个目录树上。
其中,上述目录树为仅包括一个根目录的目录树。上述文件系统将M个域挂载到一个目录树上具体是在上述M个域中随机选取一个域并在该域中创建根目录或者在M个域中第一个域中创建根目录。文件系统根据文件创建请求中的文件存储路径将文件和文件存储路径指示的目录添加到该根目录中。
举例说明添加文件后的目录树结构,参见图3,图3为一种目录树结构示意图。如图3所示,该目录树包括根目录、一级目录1、一级目录2、二级目录和文件a。由图3可知,上述根目录下有上述一级目录1和上述一级目录2,该一级目录2下有上述二级目录,该二级目录下有上述文件a。也可以理解为上述根目录指向上述一级目录1和上述一级目录2,该一级目录2指向上述二级目录,该二级目录指向上述文件a。
其中,上述文件系统将上述M个域挂载到一个目录树上是将该目录树中的目录和文件分布到上述M个域中。
举例说明上述目录树在域中的分布情况,参见图4,图4为目录树在域中分布的示意图。如图6所示,文件系统将存储设备分为三个域,分别为域0、域1、域2。图4中的根目录和二级目录位于域0中,一级目录1和文件位于域1中,一级目录2位于域2中。上述目录和文件a之间的指向关系保持不变。
S704、所述文件系统接收到应用程序发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径。
其中,上述应用程序可为数据库、万维网(World Wide Web,Web)服务器、分布式文件系统或者其他程序。
上述文件存储特性为该文件具有的存储特性,包括性能、日志模式、是否开启大文件优化和是否加密等等。比如文件1的文件存储特性为高性能、writeback日志模式、开启大文件优化和加密;文件2的文件存储特性为中性能、ordered日志模式、不开启大文件优化和加密;文件3的文件存储特性为低性能、journal日志模式和不加密。
上述文件存储路径标识该文件处于目录树中的具体哪一个目录下面。举例说明,存储路径为“根目录/一级目录2/二级目录”或者“根目录/一级目录1/二级目录”。
S705、所述文件系统根据文件存储特性从M个域中,选出存储特性与所述文件存储特性符合度最高的域,作为目标域。
其中,上述文件系统根据文件存储特性从M个域中,选出存储特性与所述文件存储特性符合度最高的域具体是上述文件系统将上述文件存储特性与上述M个域的存储特性逐一比较,从上述M个域中,选出存储特性与上述文件存储特性符合度最高的域,作为目标域。
举例说明,假设上述M个域的存储特性是从性能和是否开启大文件优化两个参数进行设置的,则M为6。该6个域分别为域A、域B、域C、域D、域E、域F。域A的域存储特性为高性能和开启大文件优化,域B的域存储特性为中性能和开启大文件优化,域C的域存储特性为低性能和开启大文件优化,域D的域存储特性为高性能和不开启大文件优化,域E的域存储特性为中性能和不开启大文件优化,域F的域存储特性为低性能和不开启大文件优化。上述文件存储特性为中性能、ordered日志模式和开启大文件优化,上述文件系统将文件存储特性与上述6个域的域存储特性逐一比较后,确认域A的域存储特性与该文件存储特性的符合度最高,上述文件系统将域A作为目标域,将上述文件创建到目标域中。
S706、所述文件系统将所述文件创建到目标域中。
S707、所述文件系统将所述文件添加到所述目录树结构中。
其中,在上述文件系统将上述文件添加到上述目录树上之前,上述文件系统确定该目录树中是否包含上述文件存储路径中所指示的目录。若上述目录树包含上述文件存储路径中所指示的目录,则上述文件系统将上述文件创建到上述目标域中后,将上述文件存储路径中所指示目录中最底层目录指向上述文件;反之,则上述文件系统在上述M个域中,选取存储文件和目录数量最少的N个域,在该N个域中创建上述文件存储路径中所指示的目录,然后将上述文件存储路径中所指示目录中最底层目录指向上述文件,完成将上述文件添加到上述目录树中。上述N的取值与需要创建的目录数量有关。
举例说明,假设上述目录树在域中的分布如图4所示,文件b的文件存储路径为“根目录/一级目录2/二级目录”,上述文件系统将上述文件b创建在域2中。上述文件系统确认域0、域1和域2中包含上述文件存储路径所指示的目录(包括根目录、一级目录1和二级目录),上述文件系统将二级目录指向文件b,如图5所示。
再举例说明,假设上述目录树在域中分布如图6所示,文件b的文件存储路径为“根目录/一级目录2/二级目录/三级目录”,上述文件系统将上述文件b创建在域1中。上述文件系统确认域0、域1和域2中均不包括三级目录,则上述文件系统在文件和目录最少的域2中创建三级目录,然后将二级目录指向三级目录,并将三级目录指向文件b,如图6所示。
参见图9,图9为本发明实施例提供的一种存储装置结构示意图。如图9所示,该存储装置900包括:
接收模块901,用于接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径。
可选地,所述接收模块接收应用程序发送的文件创建请求之前,所述存储装置900还包括:
第一确定模块905,用于确定对所述存储设备划分成域的数量M;
格式化模块906,用于对所述存储设备进行格式化,以获取M个域;
设置模块907,用于对所述M个域中的每个域设置域存储特性。
可选地,所述第一确定模块905包括:
第一确定单元9051,用于确定所述存储设备的存储特性维度数量j和所述每个存储特性维度包括的参数的数量;
第二确定单元9052,用于根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
可选地,在设置模块907对所述M个域中的每个域设置域存储特性之后,所述存储装置900还包括:
挂载模块908,用于将所述M个域挂载到一个目录树上。
第一选取模块902,用于根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域。
创建模块903,用于将所述文件创建到所述目标域中。
添加模块904,用于根据所述文件存储路径将所述文件添加到目录树中。
可选地,所述添加模块904根据所述文件存储路径将所述文件添加到目录树中之前,所述存储装置900还包括:
第二确定模块909,用于当确定所述目录树中未包括所述文件存储路径中所指示的全部目录时,所述文件系统确定所述目录树中缺失目录的数量N;
第二选取模块910,用于从所述M个域中,选取存储文件和目录数量最少的N个域;
创建添加模块911,用于在所述N个域中创建所述N个缺失目录,并根据所述文件存储路径将所述N个缺失目录添加到所述目录树中。
需要说明的是,上述各模块(接收模块901,第一选取模块902,创建模块903,添加模块904,第一确定模块905,格式化模块906,设置模块907,挂载模块908,第二确定模块909、第二选取模块910、创建添加模块911)用于执行上述方法的相关步骤。
在本实施例中,存储装置900是以模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specific integrated circuit,ASIC),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
如图11所示,存储装置1100可以以图11中的结构来实现,该存储器1100包括至少一个控制器1101,至少一个数据存储器1102以及至少一个通信接口1103。所述控制器1101、所述1102和所述通信接口1003通过所述通信总线连接并完成相互间的通信。
处理器1101可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口1103,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器1102可以是只读(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。可以是独立存在,通过总线与处理器相连接。也可以和处理器集成在一起。
其中,所述存储器1102用于存储执行以上方案的应用程序代码,并由处理器1101来控制执行。所述处理器1101用于执行所述存储器1102中存储的应用程序代码。
存储器1102存储的代码可执行以上提供的终端设备执行的上述问价存储方法,比如文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;所述文件系统根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;所述文件系统将所述文件创建到所述目标域中;所述文件系统根据所述文件存储路径将所述文件添加到目录树中。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种文件存储方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的存储装置,可通过其它的方式实现。例如,以上所描述的存储装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,存储装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种文件存储方法,其特征在于,包括:
文件系统确定对存储设备划分成域的数量M;
所述文件系统对所述存储设备进行格式化,以获取M个域;
所述文件系统对所述M个域中的每个域设置域存储特性;
文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
所述文件系统根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
所述文件系统将所述文件创建到所述目标域中;
所述文件系统根据所述文件存储路径将所述文件添加到目录树中;
所述文件系统确定对存储设备划分成域的数量M具体包括:
所述文件系统确定所述存储设备的存储特性维度数量j和每个存储特性维度包括的参数的数量;
所述文件系统根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
2.根据权利要求1所述的方法,其特征在于,在所述文件系统对所述M个域中的每个域设置域存储特性之后,所述方法还包括:
所述文件系统将所述M个域挂载到一个目录树上。
3.一种文件存储方法,其特征在于,包括:
文件系统确定对存储设备划分成域的数量M;
所述文件系统对所述存储设备进行格式化,以获取M个域;
所述文件系统对所述M个域中的每个域设置域存储特性;
文件系统接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
所述文件系统根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
所述文件系统将所述文件创建到所述目标域中;
所述文件系统根据所述文件存储路径将所述文件添加到目录树中;
所述文件系统根据所述文件存储路径将所述文件添加到目录树中之前,所述方法还包括:
当确定所述目录树中未包括所述文件存储路径中所指示的全部目录时,所述文件系统确定所述目录树中缺失目录的数量N;
所述文件系统从所述M个域中,选取存储文件和目录数量最少的N个域;
所述文件系统在所述N个域中创建N个缺失目录,并根据所述文件存储路径将所述N个缺失目录添加到所述目录树中。
4.一种存储装置,其特征在于,包括:
第一确定模块,用于确定对存储设备划分成域的数量M;
格式化模块,用于对所述存储设备进行格式化,以获取M个域;
设置模块,用于对所述M个域中的每个域设置域存储特性;
接收模块,用于接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
第一选取模块,用于根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
创建模块,用于将所述文件创建到所述目标域中;
添加模块,用于根据所述文件存储路径将所述文件添加到目录树中;
所述第一确定模块包括:
第一确定单元,用于确定所述存储设备的存储特性维度数量j和每个存储特性维度包括的参数的数量;
第二确定单元,用于根据预设关系式确定对存储设备划分成域的数量M,所述预设关系式为:
M=N1*N2*……*Ni*……*Nj
其中,上述Ni为第i个存储特性维度包括的参数的数量。
5.根据权利要求4所述的存储装置,其特征在于,在设置模块对所述M个域中的每个域设置域存储特性之后,所述存储装置还包括:
挂载模块,用于将所述M个域挂载到一个目录树上。
6.一种存储装置,其特征在于,包括:
第一确定模块,用于确定对存储设备划分成域的数量M;
格式化模块,用于对所述存储设备进行格式化,以获取M个域;
设置模块,用于对所述M个域中的每个域设置域存储特性;
接收模块,用于接收应用发送的文件创建请求,所述文件创建请求包括文件存储特性和文件存储路径;
第一选取模块,用于根据所述文件存储特性从M个域中,选取域存储特性与所述文件存储特性符合度最高的域,作为目标域;
创建模块,用于将所述文件创建到所述目标域中;
添加模块,用于根据所述文件存储路径将所述文件添加到目录树中;
所述添加模块根据所述文件存储路径将所述文件添加到目录树中之前,所述存储装置还包括:
第二确定模块,用于当确定所述目录树中未包括所述文件存储路径中所指示的全部目录时,所述文件系统确定所述目录树中缺失目录的数量N;
第二选取模块,用于从所述M个域中,选取存储文件和目录数量最少的N个域;
创建添加模块,用于在所述N个域中创建N个缺失目录,并根据所述文件存储路径将所述N个缺失目录添加到所述目录树中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710360832.8A CN108959300B (zh) | 2017-05-19 | 2017-05-19 | 文件存储方法和存储装置 |
PCT/CN2018/086342 WO2018210178A1 (zh) | 2017-05-19 | 2018-05-10 | 文件存储方法和存储装置 |
US16/687,070 US11301436B2 (en) | 2017-05-19 | 2019-11-18 | File storage method and storage apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710360832.8A CN108959300B (zh) | 2017-05-19 | 2017-05-19 | 文件存储方法和存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959300A CN108959300A (zh) | 2018-12-07 |
CN108959300B true CN108959300B (zh) | 2022-07-22 |
Family
ID=64273283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710360832.8A Active CN108959300B (zh) | 2017-05-19 | 2017-05-19 | 文件存储方法和存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11301436B2 (zh) |
CN (1) | CN108959300B (zh) |
WO (1) | WO2018210178A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857385B (zh) * | 2018-12-24 | 2022-01-28 | 四川长虹电器股份有限公司 | 应用程序文件打包方法、安装方法及启动方法 |
CN110765094B (zh) * | 2019-10-24 | 2020-08-11 | 重庆紫光华山智安科技有限公司 | 文件创建方法、装置、系统及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932415A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 一种镜像文件存储方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004008348A1 (en) * | 2002-07-16 | 2004-01-22 | Horn Bruce L | Computer system for automatic organization, indexing and viewing of information from multiple sources |
JP2008276488A (ja) * | 2007-04-27 | 2008-11-13 | Hitachi Ltd | ストレージシステムおよびストレージシステムの情報移行方法 |
WO2009102425A1 (en) | 2008-02-12 | 2009-08-20 | Netapp, Inc. | Hybrid media storage system architecture |
CN101763318B (zh) * | 2010-01-21 | 2013-01-02 | 浙江大学 | 一种实现数据转储的方法和装置 |
CN102209088B (zh) * | 2010-03-29 | 2014-02-05 | 上海博泰悦臻网络技术服务有限公司 | 车载音乐的提供、获取方法和装置以及车载音乐传输系统 |
US9218135B2 (en) * | 2010-06-16 | 2015-12-22 | Microsoft Technology Licensing, Llc | Hierarchical allocation for file system storage device |
CN102184211B (zh) * | 2011-05-03 | 2014-08-06 | 华为数字技术(成都)有限公司 | 文件系统和检索、写入、修改或删除文件的方法与装置 |
US8863297B2 (en) * | 2012-01-06 | 2014-10-14 | Mobile Iron, Inc. | Secure virtual file management system |
US9778926B2 (en) * | 2014-10-30 | 2017-10-03 | Google Inc. | Minimizing image copying during partition updates |
CN104537076B (zh) * | 2014-12-31 | 2017-12-08 | 北京奇艺世纪科技有限公司 | 一种文件读写方法及装置 |
-
2017
- 2017-05-19 CN CN201710360832.8A patent/CN108959300B/zh active Active
-
2018
- 2018-05-10 WO PCT/CN2018/086342 patent/WO2018210178A1/zh active Application Filing
-
2019
- 2019-11-18 US US16/687,070 patent/US11301436B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932415A (zh) * | 2012-09-26 | 2013-02-13 | 东软集团股份有限公司 | 一种镜像文件存储方法及装置 |
Non-Patent Citations (2)
Title |
---|
一种基于Erasure Code技术的跨域文件存储系统;项涛等;《科学技术与工程》;20111218(第35期);全文 * |
局域网中文件分布式网络存储的设计和实现;李晨熙等;《天津理工学院学报》;20031031;全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018210178A1 (zh) | 2018-11-22 |
US20200081869A1 (en) | 2020-03-12 |
CN108959300A (zh) | 2018-12-07 |
US11301436B2 (en) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220222157A1 (en) | Policy-based hierarchical data protection in distributed storage | |
US9052962B2 (en) | Distributed storage of data in a cloud storage system | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
RU2658886C1 (ru) | Способ управления файлами, распределенная система хранения и узел управления | |
KR100974149B1 (ko) | 네임스페이스에 대한 정보 유지 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US8495013B2 (en) | Distributed storage system and method for storing objects based on locations | |
US10509701B2 (en) | Performing data backups using snapshots | |
CN111182067A (zh) | 一种基于星际文件系统ipfs的数据写入方法及设备 | |
US20200310980A1 (en) | System and method for mapping objects to regions | |
KR20120018178A (ko) | 객체 저장부들의 네트워크상의 스웜-기반의 동기화 | |
US9323760B1 (en) | Intelligent snapshot based backups | |
WO2019062856A1 (zh) | 数据重构方法及装置、数据存储系统 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
US9400613B1 (en) | Intelligent pairing for snapshot based backups | |
US20150169623A1 (en) | Distributed File System, File Access Method and Client Device | |
CN108959300B (zh) | 文件存储方法和存储装置 | |
CN107948229B (zh) | 分布式存储的方法、装置及系统 | |
CN111813346A (zh) | 基于云平台搭建Ceph分布式存储的方法、系统、设备及介质 | |
CN113296891B (zh) | 基于平台的多场景知识图谱处理方法及装置 | |
US10931750B1 (en) | Selection from dedicated source volume pool for accelerated creation of block data volumes | |
CN108306780B (zh) | 一种基于云环境的虚拟机通信质量自优化的系统和方法 | |
CN108304555A (zh) | 分布式地图数据处理方法 | |
CN108197323A (zh) | 应用于分布式系统地图数据处理方法 | |
US10241878B2 (en) | System and method of data allocation providing increased reliability of storage | |
CN109558082B (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 |