[go: up one dir, main page]

CN109669640B - 一种数据存储方法、装置、电子设备及介质 - Google Patents

一种数据存储方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN109669640B
CN109669640B CN201811581419.5A CN201811581419A CN109669640B CN 109669640 B CN109669640 B CN 109669640B CN 201811581419 A CN201811581419 A CN 201811581419A CN 109669640 B CN109669640 B CN 109669640B
Authority
CN
China
Prior art keywords
file
stored
storage space
granularity
allocation
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
CN201811581419.5A
Other languages
English (en)
Other versions
CN109669640A (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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN201811581419.5A priority Critical patent/CN109669640B/zh
Publication of CN109669640A publication Critical patent/CN109669640A/zh
Priority to PCT/CN2019/105060 priority patent/WO2020134183A1/en
Priority to EP19905839.7A priority patent/EP3861430A4/en
Priority to US17/317,843 priority patent/US11977516B2/en
Application granted granted Critical
Publication of CN109669640B publication Critical patent/CN109669640B/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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file 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/0608Saving storage space on 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F3/0643Management of files
    • 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
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据存储技术领域,尤其涉及一种数据存储方法、装置、电子设备及介质,该方法包括:当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。在本发明中,通过将分配粒度设置为包括至少两个物理地址上连续的文件系统块,可以实现为待存储文件写入的数据分配物理地址上连续的存储空间,不仅能够减少空间分配次数,还可以增加待存储文件写入的数据在物理地址上连续性,在降低文件系统的碎片率的同时,还能够降低磁盘寻找损耗,减少CPU开销,从而提升文件系统的读写性能。

Description

一种数据存储方法、装置、电子设备及介质
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储方法、装置、电子设备及介质。
背景技术
文件系统是操作系统中负责管理和存储文件信息的软件机构,可提供文件创建、存取、修改、查询、删除等功能。目前文件系统中以文件系统块作为最小粒度,为待存储文件分配存储空间,其中linux环境下的文件系统可支持的文件系统块大小包括512Bytes、1KB、2KB或4KB。
由于在实际操作中,文件系统无法获知每个待存储文件写入的数据量,所以在为待存储文件进行空间分配时,每次只能为其分配一个文件系统块,直到该待存储文件写入的数据全部写入。因此当文件系统同时为多个待存储文件分配存储空间时,不仅会造成写入的数据在物理地址上交错分布,而且还会浪费文件系统开销。长期以往,随着文件系统中新老文件的不断增删,上述交错分布的情况会越来越严重,导致文件系统中的碎片率越来越高,使硬盘在进行数据的读取时,耗费大量的时间在硬盘磁头寻找和数据等待上,严重影响文件系统性能。
因此,如何降低因多次分配造成的文件系统开销浪费,以及文件系统的碎片率,提高文件系统的性能,是一个值得研究的问题。
发明内容
本发明公开了一种数据存储方法、装置、电子设备及介质,以克服现有技术中文件系统进行数据存储时因空间分配次数较多,而造成的文件系统开销浪费、碎片率高、影响文件系统性能的问题。
为达到上述目的,依据本发明的一个方面,提供了一种数据存储方法,所述方法包括:
当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
具体地,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
当所述分配粒度为针对不同文件类型设置的第二数值时,所述根据预先保存的分配粒度,为所述待存储文件分配存储空间包括:
识别待存储文件的文件类型;
根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;
根据所述目标第二数值,为所述待存储文件分配存储空间。
具体地,当检测到的待存储文件为拷贝文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
获取所述待存储文件的文件大小;
根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
具体地,当检测到的待存储文件为持续写入的新文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;
B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;
C、确定为所述待存储文件写入的数据分配存储空间结束。
具体地,当检测到的待存储文件为目录文件时,所述根据当前保存的分配粒度,为所述待存储文件分配存储空间之前,所述方法还包括:
确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;
判断所述分配粒度与所述目标分配粒度是否一致;
如果是,则执行后续步骤。
具体地,如果所述分配粒度与所述目标分配粒度不一致,所述方法还包括:
将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
依据本发明的另一个方面,还提供了一种数据存储装置,所述装置包括:
分配模块,用于当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
写入模块,用于获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
具体地,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
所述分配模块,具体用于识别所述待存储文件的文件类型;根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;根据所述目标第二数值,为所述待存储文件分配存储空间。
具体地,当检测到待存储文件为拷贝文件时,所述分配模块,具体用于获取所述待存储文件的文件大小;根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
具体地,当检测到待存储文件为持续写入的新文件时,所述分配模块,具体用于A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;C、确定为所述待存储文件写入的数据分配存储空间结束。
具体地,当所述待存储文件为目录文件时,所述装置还包括:
判断模块,用于确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;判断所述分配粒度与所述目标分配粒度是否一致;如果是,则执行后续步骤。
具体地,所述装置还包括:
修改模块,用于如果所述分配粒度与所述目标分配粒度不一致,将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
依据本发明的另一个方面,还提供了一种电子设备,所述电子设备包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述数据存储方法中的步骤。
依据本发明的另一个方面,还提供了一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述数据存储方法中的步骤。
本发明的有益效果如下:
本发明提供了一种数据存储方法、装置、电子设备及介质,该方法包括:当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。在本发明中,通过将用于分配存储空间的分配粒度设置为包括至少两个物理地址上连续的文件系统块,可以实现为待存储文件写入的数据分配物理地址上连续的存储空间,不仅能够减少空间分配次数,还可以增加待存储文件写入的数据在物理地址上连续性,在降低文件系统的碎片率的同时,还能够降低磁盘寻找损耗,减少CPU开销,从而提升文件系统的读写性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中提供的数据存储方法的流程图;
图2为本发明实施例中提供的文件系统内部各模块的连接示意图;
图3为本发明实施例中提供的文件系统进行数据存储的流程图;
图4为本发明实施例中提供的XFS系统进行数据存储的流程图;
图5为本发明实施例中提供的数据存储装置的结构框图;
图6为本发明实施例中提供的电子设备。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
依据本发明实施例的一个方面,提供了一种数据存储方法,图1为本发明实施例提供的数据存储方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤S101:当监测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间。
其中,分配粒度是指文件系统为待存储文件写入的数据分配内存空间时,每次分配的存储空间的大小。在本发明实施例中,所述分配粒度包括至少两个物理地址上连续的文件系统块,因此与现有技术相比,本发明实施例中的不仅增大了文件系统的分配粒度,使其突破了现有技术中文件系统块的大小,还能够保证文件系统为待存储文件写入的数据分配的存储空间在物理地址上连续。
其中,假如针对某个待存储的文件,某次写入的数据量为32KB,如果现有技术中的分配粒度为4KB,那么在极端情况下,文件系统需要为该文件待写入的数据量分配8次,由于文件系统每次只能分配一个文件系统块,所以文件系统8次分配的文件系统块的物理地址并不一定连续,因此会导致该文件的数据在物理地址上交错分布。
然而在本发明实施例中,由于分配粒度包括至少两个物理地址上连续的文件系统块,因此当分配粒度为8KB时,那么文件系统则需要为该文件待写入的数据量分配4次,而当分配粒度为16KB时,那么文件系统则需要为该文件待写入的数据量分配2次,较优的,当分配粒度为32KB时,那么文件系统则只需要为该文件待写入的数据量分配1次。
因此通过上述对比可知,当分配粒度越大,且越接近待存储文件写入的数据量,则进行空间分配的次数也就越少,并越能够在极大程度上为待存储文件写入的数据分配物理地址上连续的存储空间,以降低文件系统的碎片率。
步骤S102:获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
由于文件系统能够给为待存储文件写入的数据分配物理地址上连续的存储空间,因此当将该待存储文件的数据写入文件系统分配的存储空间后,就能够实现对待存储文件写入的数据进行连续存储,当需要读取该文件的数据时,即可减少硬盘磁头寻找和数据等待时间,从而提高文件系统性能。
因此在本发明实施例中,通过将分配粒度设置为包括至少两个物理地址上连续的文件系统块,可以实现为待存储文件写入的数据分配物理地址上连续的存储空间,不仅能够减少空间分配次数,还可以增加待存储文件写入的数据在物理地址上连续性,在降低文件系统的碎片率的同时,还能够降低磁盘寻找损耗,减少CPU开销,从而提升文件系统的读写性能。
实施例二:
由于应用场景的不同,本发明实施例中提供了两种基于不同分配粒度模式进行空间分配的方式,具体地,分配粒度模式包括单粒度模式和多粒度模式。
其中单粒度模式就是指,文件系统采用统一的分配粒度为所有待存储文件写入的数据分配存储空间。而多粒度模式则是指,文件系统根据待存储文件的类型,采用不同的分配粒度为待存储文件写入的数据分配存储空间。
因此在上述实施例的基础上,在本发明实施例中,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值。
当文件系统采用单粒度模式进行空间分配时,文件系统不会区分待存储文件的类型。以设置的分配粒度为16MB为例,此时无论写入文件系统的是什么类型的待存储文件,其发生空间分配时,均以16MB的分配粒度进行分配。
而当文件系统采用多粒度模式进行空间分配时,即当所述分配粒度为针对不同文件类型设置的第二数值时,所述根据预先保存的分配粒度,为所述待存储文件分配存储空间包括:
识别待存储文件的文件类型;
根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;
根据所述目标第二数值,为所述待存储文件分配存储空间。
由于待存储文件的文件类型可划分为视频文件、图片文件、数据库文件及其他不可预知类型的文件,因此可针对不同的文件类型设置不同的分配粒度。由于一般情况下,视频文件的数据量较大,所以可将视频文件的分配粒度设置为64MB;而图片文件的数据量较小,所以可将图片文件的分配粒度设置为2MB;而针对数据库文件来说,可将数据库文件的分配粒度设置为32MB;而针对其他类型的文件,可以将其分配粒度统一设置为16MB。
所以当文件系统检测到存在待存储文件时,需要先根据待存储文件的属性,确定该待存储文件的文件类型,然后再确定与该待存储文件的文件类型所对应的分配粒度,并根据该分配粒度为其分配存储空间。
假如文件系统检测到存在待存储文件的文件类型为视频文件,则以32MB的分配粒度为该待存储文件写入的数据分配存储空间;假如文件系统检测到存在待存储文件的文件类型为图片文件,则以2MB的分配粒度为该待存储文件写入的数据分配存储空间;假如文件系统检测到存在待存储文件的文件类型为数据库文件,则以16MB的分配粒度为该待存储文件写入的数据分配存储空间,假如文件系统检测到存在待存储文件的文件类型为视频文件或图片文件或数据库文件之外的其他文件,则以16MB的分配粒度为该待存储文件写入的数据分配存储空间。
当然可以理解的是,上述仅为本发明实施例中对针对以上两种分配粒度模式下,进行存储空间分配时所列举的实施例,而在实际应用时,可根据用户的需求对分配粒度的大小进行设置,所以在本发明实施例中,对分配粒度的大小并不作统一要求或者规定。
由上述可知,通过将分配粒度根据文件类型设置为不同数值或者将分配粒度设置为同一数值,均可以满足不同应用场景的需求,从而提高了基于以上两种分配粒度模式进行空间分配时的实用性。
实施例三:
在实际应用中,不论是文件拷贝还是新文件的存储,都需要为对应的文件分配存储空间,因此在上述各实施例的基础,在本发明实施例中,当检测到的待存储文件为拷贝文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
获取所述待存储文件的文件大小;
根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
也就是说,如果待存储文件为拷贝文件,那么通过该拷贝文件的属性即可获取该文件的实际大小,假如该文件的实际大小为32MB,且当前保存的分配粒度为16MB,文件系统通过计算即可确定为该文件分配的存储空间的数量,也就是32/16=2,那么文件系统则为该文件分配2个存储空间。然而假如该文件的实际大小为50MB,50/16=3.125,并不能整除,因此为了保证该文件写入的数据能够被全部存储,那么文件系统则为该文件分配4个存储空间。所以文件系统为待存储文件写入的数据分配的存储空间必须是分配粒度的整数倍,且给该待存储文件写入的数据分配的存储空间应大于或等于该文件实际写入的数据量。
由于当待存储文件为拷贝文件时,可以一次性为该待存储文件写入的数据分配存储空间,因此在为其分配存储空间时,大大增加存储空间在物理地址上连续的概率,达到降低文件系统的碎片率的目的,并且能够降低磁盘寻找损耗,减少CPU开销,从而提升文件系统的读写性能。
实施例四:
在上述各实施例的基础,在本发明实施例中,当检测到的待存储文件为持续写入的新文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;
B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;
C、确定为所述待存储文件写入的数据分配存储空间结束。
也就是说,当前待存储文件为持续写入的新文件时,由于文件系统无法获知该文件的实际文件大小,因此文件系统只能一次为该文件分配存储空间。具体地,当检测待存储文件时,先优先为该文件分配一个分配粒度的存储空间,假如当前保存的分配粒度为16MB,那么则为该文件分配一个16MB的存储空间,然后判断该文件本次写入的数据是否能够将该存储空间写满,也就是说,假如该文件本次写入的数据量为8MB,由于8MB小于16MB,因此文件系统当前为该文件写入的数据分配的存储空间即可满足该文件的存储需求,并确定分配存储空间结束;假如当该文件的数据被写入到文件系统分配的存储空间后,还存在为存储数据,此时文件系统会再次为其分配一个存储空间,直至该文件停止写入。
其中,由于本发明实施例中采用的分配粒度包括至少两个物理地址上连续的文件系统块,所以每次在为待存储文件写入的数据分配存储空间时,可以使每次分配的存储空间在物理地址上连续,并减少空间分配次数,因此也能够达到降低文件系统的碎片率的目的,从而降低磁盘寻找损耗,减少CPU开销,提升文件系统的读写性能。
实施例五:
图2为文件系统内部各模块的连接示意图,由图2可知,文件系统内部包括第一用户模块201、第二用户模块202、与第一用户模块201连接的配置管理模块203以及分别与第二用户模块202、配置管理模块203连接的分配实施模块204。
具体地,在本发明实施例中,第一用户模块201和第二用户模块202既可以是用户态模块,也可以是内核模块。其中,用户态为上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源和I/O资源等。内核态为控制计算机的硬件资源,并提供上层应用程序运行的环境。当然可以理解的是,在本发明实施例中,对于第一用户模块201和第二用户模块202为用户态模块还是和内核模块并不进行具体限定。
具体地,在本发明实施例中,第一用户模块201,用于通过配置管理模块203提供的配置接口设置或查询分配粒度相关信息。其中,配置接口可通过procfs、ioctl、文件系统工具及接口等方式实现。
配置管理模块203,用于根据第一用户模块201配置的分配粒度进行存储或者传递给分配实施模块204。
第一用户模块201,用于通过分配实施模块204提供的写入接口写入待存储文件的数据,并通过分配实施模块204对待存储文件写入的数据进行空间分配。
分配实施模块204,用于从配置管理模块203获取已保存的分配粒度,并根据第二用户模块202写入的数据量,为待存储文件写入的数据分配存储空间。
具体地,文件系统在为待存储文件分配存储空间时,其流程如图3所示,即:
第一用户模块201通过配置接口设置文件系统的分配粒度模式和分配粒度大小,配置管理模块203对第一用户模块201设置的分配粒度大小进行保存,并作用于分配实施模块204,当第二用户模块202写入待存储文件的数据时,分配实施模块204结合配置管理模块203中保存的分配粒度和第二用户模块202写入的数据量,为该待存储文件写入的数据分配存储空间。
具体地,分配实施模块204在为待存储文件写入的数据分配存储空间时,可遵循如下规则:
当待存储文件写入的数据量小于或等于分配粒度时,则为该待存储文件分配1个分配粒度大小的存储空间,当待存储文件写入的数据量大于分配粒度时,则为该待存储文件分配的存储空间为待存储文件分配粒度整数倍。
具体地,分配实施模块204在为待存储文件写入的数据分配存储空间时,可使用文件系统固有的块分配方式和预分配机制,或结合文件系统的缓存机制等方式实现,当然可以理解的是,在本发明实施例中,对于分配实施模块204进行空间分配时的分配方式并不进行具体限定。
其中,由于上述列举的块分配方式和预分配机制,或结合文件系统的缓存机制等方式,均为现有技术常用的空间分配方式,因此在本发明实施例中不再赘述。
实施例六:
由于待存储的文件可能是某个文件夹下的目录文件,而文件系统针对每个文件夹也保存有对应的分配粒度,以使得在该文件夹下的所有文件进行存储时,都按照保存的分配粒度进行存储。
因此,在上述各实施例基础上,在本发明实施例中,当检测到的待存储文件为目录文件时,所述根据当前保存的分配粒度,为所述待存储文件分配存储空间之前,所述方法还包括:
确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;
判断所述分配粒度与所述目标分配粒度是否一致;
如果是,则执行后续步骤。
也就是说,假如待存储文件为视频文件时,其中文件系统针对视频文件设置的分配粒度为64MB,如果该待存储文件为文件夹A下的目录文件,且文件系统针对文件夹A设置的分配粒度也为64MB,此时即可以分配粒度为64MB为该视频文件分配存储空间。
然而,假如文件系统针对文件夹A设置的分配粒度为128MB,则说明用户可能对文件系统中的分配粒度做出了相应的修改,因此为保证分配粒度的一致性,则应该将问文件夹A的分配粒度修改为64MB。
因此,在本发明实施例中,如果所述分配粒度与所述目标分配粒度不一致,所述方法还包括:
将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
下面以文件系统为XFS为例,并结合图4说明基于XFS系统实现根据分配粒度进行空间分配的优选方案:
其中,根据XFS进行数据存储的流程可知,XFS在对待存储文件写入的数据进行存储之前,会针对待存储文件建立相应的索引节点(inode)。其中,索引节点包括属性区域和拓展属性区域,属性区域用于存储文件的大小以及文件类型,拓展属性区域用于存储针对每个文件设置的偏好区段属性,或者针对每个文件夹设置的偏好区段继承属性,其中,偏好区段属性为针对每个文件保存的分配粒度,而偏好区段继承属性为针对每个文件夹保存的分配粒度。
即假如视频文件的分配粒度为32MB,如果检测到待存储文件为视频文件时,则将该视频文件的偏好区段属性设置为32MB,以作为对该视频文件进行存储时的分配标记,以使得后续在对该视频文件进行存储时,参考该视频文件的偏好区段属性进行空间分配。假如针对某个文件夹保存的分配粒度为16MB,则将该文件夹的偏好区段继承属性设置为16MB,并作为针对该文件夹下的文件进行存储时的分配标记,当存在文件为该文件夹下的目录文件时,参考该文件夹的偏好区段继承属性进行空间分配。
首先,在通过XFS进行数据存储时,为了增加待存储文件写入的数据在物理地址上连续存储的概率,因此作为较优方案,可以在XFS的系统空间中保留部分空闲存储空间。当然需要说明的是,在本发明实施例中,对于是否预留部分空闲存储空间并不进行具体限定。
当待存储文件写入数据时,可先优先判断该待存储文件是否为普通文件,其中普通文件用来存放不同类型的数据,比如二进制数据、数据库等其他类型的数据。如果是,则直接根据预先保存的分配粒度为该待存储文件写入的数据分配存储空间。
而如果该待存储文件不是普通文件,则说明该待存储文件有可能是目录文件,或其他类型的文件,此时则需要从该待存储文件的索引节点中获取该待存储文件的属性信息,以获取该待存储文件的文件类型。其中假如该待存储文件为目录文件,则需要确定该待存储文件所在文件夹,并根据该文件夹的偏好区段继承属性,否则,只需要获取该待存储文件的偏好区段属性。
若该待存储文件并非首次写入,那么该待存储文件的偏好区段属性已经存在,因此需要根据偏好区段属性为该待存储文件后续写入的数据进行空间分配。若该待存储文件为首次写入,则需要判断该文件是否为目录文件,如果否,则需要根据当前保存的分配粒度,设置该文件的偏好区段属性,以使得后续再针对该文件的空间分配时仍按照该文件的偏好区段属性进行空间分配,如果是,则需要确定该文件所在的文件夹,并设置该文件夹的偏好区段继承属性,那么相应的该文件的偏好区段属性应该与其所在文件夹的偏好区段继承属性相同。
其中,当该待存储文件为首次写入时,文件系统还可以设置该待存储文件的FALLOC_FL_KEEP_SIZE属性,以保证首次写入数据时,分配的存储空间为当前保存的分配粒度,并使得后续写入的数据通过stat系列函数(stat,fstat,lstat,fstatat)获取到当前写入数据的实际大小。
其中在分配存储空间的过程中,通过设置偏好区段属性或偏好区段继承属性,可以保证XFS块分配器按偏好区段设置的大小为文件分配连续存储空间。由于预分配及偏好区段大小与文件关联,且保存在该待存储文件inode的拓展属性区域,因此无需增加额外的配置文件。
在本发明实施例中,通过将分配粒度设置为包括至少两个物理地址上连续的文件系统块,可使得在根据分配粒度对待存储文件的存储空间进行分配时,突破文件系统块大小或者linux页大小,为待存储文件写入的数据分配物理地址上连续的存储空间,不仅能够减少空间分配次数,还可以增加待存储文件写入的数据在物理地址上连续性,在降低文件系统的碎片率的同时,还能够降低磁盘寻找损耗,减少CPU开销,从而提升文件系统的读写性能。
实施例七:
依据本发明实施例的另一个方面,还提供了一种数据存储装置,如图5所示,该装置包括:
分配模块501,用于当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
写入模块502,用于获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
具体地,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
所述分配模块501,具体用于识别待存储文件的文件类型;根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;根据所述目标第二数值,为所述待存储文件分配存储空间。
具体地,当检测到待存储文件为拷贝文件时,所述分配模块501,具体用于获取所述待存储文件的文件大小;根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
具体地,当检测到待存储文件为持续写入的新文件时,所述分配模块501,具体用于A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;C、确定为所述待存储文件写入的数据分配存储空间结束。
具体地,当所述待存储文件为目录文件时,所述装置还包括:
判断模块503,用于确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;判断所述分配粒度与所述目标分配粒度是否一致;如果是,则执行后续步骤。
具体地,所述装置还包括:
修改模块504,用于如果所述分配粒度与所述目标分配粒度不一致,将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
实施例八:
依据本发明实施例的另一个方面,还提供了一种电子设备,如图6所示,所述电子设备包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;
所述存储器603中存储有计算机程序,当所述程序被所述处理器601执行时,使得所述处理器601执行以下步骤:
当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
具体地,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
当所述分配粒度为针对不同文件类型设置的第二数值时,所述根据预先保存的分配粒度,为所述待存储文件分配存储空间包括:
识别所述待存储文件的文件类型;
根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;
根据所述目标第二数值,为所述待存储文件分配存储空间。
具体地,当检测到的待存储文件为拷贝文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
获取所述待存储文件的文件大小;
根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
具体地,当检测到的待存储文件为持续写入的新文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;
B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;
C、确定为所述待存储文件写入的数据分配存储空间结束。
具体地,当检测到的待存储文件为目录文件时,所述根据当前保存的分配粒度,为所述待存储文件分配存储空间之前,所述方法还包括:
确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;
判断所述分配粒度与所述目标分配粒度是否一致;
如果是,则执行后续步骤。
具体地,如果所述分配粒度与所述目标分配粒度不一致,所述方法还包括:
将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
上述各实施例中的电子设备提到的通信总线604可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602,用于上述电子设备与其他设备之间的通信。
存储器603可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器603还可以是至少一个位于远离前述处理器的存储装置。
上述处理器601可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例九:
依据本发明实施例的另一个方面,还提供了一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行以下步骤:
当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
获取所述待存储文件写入的数据,将所述数据写入分配的存储空间。
具体地,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
当所述分配粒度为针对不同文件类型设置的第二数值时,所述根据预先保存的分配粒度,为所述待存储文件分配存储空间包括:
识别所述待存储文件的文件类型;
根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;
根据所述目标第二数值,为所述待存储文件分配存储空间。
具体地,当检测到的待存储文件为拷贝文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
获取所述待存储文件的文件大小;
根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
具体地,当检测到的待存储文件为持续写入的新文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;
B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;
C、确定为所述待存储文件写入的数据分配存储空间结束。
具体地,当检测到的待存储文件为目录文件时,所述根据当前保存的分配粒度,为所述待存储文件分配存储空间之前,所述方法还包括:
确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;
判断所述分配粒度与所述目标分配粒度是否一致;
如果是,则执行后续步骤。
具体地,如果所述分配粒度与所述目标分配粒度不一致,所述方法还包括:
将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
上述实施例中的计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD)等。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (14)

1.一种数据存储方法,其特征在于,所述方法包括:
当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;其中,在分配存储空间的过程中,通过设置偏好区段属性或偏好区段继承属性,按照偏好区段的大小为所述待存储文件分配连续的存储空间;
获取所述待存储文件写入的数据,将所述待存储文件写入的数据写入分配的存储空间。
2.如权利要求1所述的方法,其特征在于,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
当所述分配粒度为针对不同文件类型设置的第二数值时,根据预先保存的分配粒度,为所述待存储文件分配存储空间包括:
识别所述待存储文件的文件类型;
根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;
根据所述目标第二数值,为所述待存储文件分配存储空间。
3.如权利要求1所述的方法,其特征在于,当检测到的待存储文件为拷贝文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
获取所述待存储文件的文件大小;
根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
4.如权利要求1所述的方法,其特征在于,当检测到的待存储文件为持续写入的新文件时,所述根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间包括:
A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;
B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;
C、确定为所述待存储文件写入的数据分配存储空间结束。
5.如权利要求1所述的方法,其特征在于,当检测到的待存储文件为目录文件时,所述根据当前保存的分配粒度,为所述待存储文件分配存储空间之前,所述方法还包括:
确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;
判断所述分配粒度与所述目标分配粒度是否一致;
如果是,则执行后续步骤。
6.如权利要求5所述的方法,其特征在于,如果所述分配粒度与所述目标分配粒度不一致,所述方法还包括:
将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
7.一种数据存储装置,其特征在于,所述装置包括:
分配模块,用于当检测到待存储文件时,根据当前保存的分配粒度,为所述待存储文件写入的数据分配存储空间,其中,所述分配粒度包括至少两个物理地址上连续的文件系统块;
写入模块,用于获取所述待存储文件写入的数据,将所述待存储文件写入的数据写入分配的存储空间;
所述分配模块,具体用于通过设置偏好区段属性或偏好区段继承属性,按照偏好区段的大小为所述待存储文件分配连续的存储空间。
8.如权利要求7所述的装置,其特征在于,所述分配粒度为固定的第一数值,或者针对不同文件类型设置的第二数值;
所述分配模块,具体用于识别所述待存储文件的文件类型;根据针对不同文件类型设置的第二数值,确定与所述待存储文件的文件类型对应的目标第二数值;根据所述目标第二数值,为所述待存储文件分配存储空间。
9.如权利要求7所述的装置,其特征在于,当检测到待存储文件为拷贝文件时,所述分配模块,具体用于获取所述待存储文件的文件大小;根据所述待存储文件的文件大小以及预先保存的分配粒度,计算获取针对所述待存储文件分配的存储空间的数量,并为所述待存储文件写入的数据分配对应数量的存储空间。
10.如权利要求7所述的装置,其特征在于,当检测到待存储文件为持续写入的新文件时,所述分配模块,具体用于A、为所述待存储文件分配一个所述分配粒度的存储空间,并将所述待存储文件的本次写入的数据写入到该存储空间中;B、判断所述待存储文件本次写入的数据是否能够将该存储空间写满,如果是,执行A,如果否,执行C;C、确定为所述待存储文件写入的数据分配存储空间结束。
11.如权利要求7所述的装置,其特征在于,当所述待存储文件为目录文件时,所述装置还包括:
判断模块,用于确定所述待存储文件对应的文件夹,并获取针对所述文件夹预先保存的目标分配粒度;判断所述分配粒度与所述目标分配粒度是否一致;如果是,则执行后续步骤。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:
修改模块,用于如果所述分配粒度与所述目标分配粒度不一致,将所述目标分配粒度修改为所述分配粒度,使所述文件夹的目标分配粒度与所述分配粒度保持一致。
13.一种电子设备,其特征在于,所述电子设备包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1-6任一项所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行权利要求1-6任一项所述方法的步骤。
CN201811581419.5A 2018-12-24 2018-12-24 一种数据存储方法、装置、电子设备及介质 Active CN109669640B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811581419.5A CN109669640B (zh) 2018-12-24 2018-12-24 一种数据存储方法、装置、电子设备及介质
PCT/CN2019/105060 WO2020134183A1 (en) 2018-12-24 2019-09-10 Systems and methods for data storage
EP19905839.7A EP3861430A4 (en) 2018-12-24 2019-09-10 DATA STORAGE SYSTEMS AND METHODS
US17/317,843 US11977516B2 (en) 2018-12-24 2021-05-11 Systems and methods for data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811581419.5A CN109669640B (zh) 2018-12-24 2018-12-24 一种数据存储方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN109669640A CN109669640A (zh) 2019-04-23
CN109669640B true CN109669640B (zh) 2023-05-23

Family

ID=66145910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811581419.5A Active CN109669640B (zh) 2018-12-24 2018-12-24 一种数据存储方法、装置、电子设备及介质

Country Status (4)

Country Link
US (1) US11977516B2 (zh)
EP (1) EP3861430A4 (zh)
CN (1) CN109669640B (zh)
WO (1) WO2020134183A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
CN110209351B (zh) * 2019-05-10 2021-02-19 星辰天合(北京)数据科技有限公司 分布式存储数据处理方法和装置
CN110688345A (zh) * 2019-09-26 2020-01-14 重庆大学 一种内存文件系统的多粒度结构化空间管理机制
CN112579527B (zh) * 2019-09-30 2024-12-03 北京金山云网络技术有限公司 一种文件存储方法、装置及电子设备
CN111309267B (zh) * 2020-02-26 2023-10-03 Oppo广东移动通信有限公司 存储空间的分配方法、装置、存储设备及存储介质
CN113157953B (zh) * 2021-02-24 2022-04-29 山东大学 一种跨终端图片传输方法及系统
CN113094374A (zh) * 2021-04-27 2021-07-09 广州炒米信息科技有限公司 分布式存储和检索方法、装置及计算机设备
CN114064588B (zh) * 2021-11-24 2023-04-25 建信金融科技有限责任公司 存储空间调度方法及系统
CN115190089B (zh) * 2022-05-26 2024-03-22 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质
CN116028327B (zh) * 2023-02-20 2023-06-13 成都佰维存储科技有限公司 文件系统读写性能测试方法、装置、可读存储介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082927A (zh) * 2007-07-02 2007-12-05 浙江大学 一种基于ContextFS上下文文件系统的文件服务方法
CN101674334A (zh) * 2009-09-30 2010-03-17 华中科技大学 一种网络存储设备的访问控制方法
CN106557367A (zh) * 2015-09-30 2017-04-05 联想(新加坡)私人有限公司 用于为计算资源提供粒度化服务质量的装置、方法和设备
CN108959055A (zh) * 2018-07-25 2018-12-07 郑州云海信息技术有限公司 xfs文件系统的读写性能测试方法、装置及设备

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802599A (en) * 1994-02-08 1998-09-01 International Business Machines Corporation System and method for allocating storage in a fragmented storage space
US5651133A (en) * 1995-02-01 1997-07-22 Hewlett-Packard Company Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system
US7218845B2 (en) * 1996-04-15 2007-05-15 Autodesk Canada Co. Reading image frames as files
US5940838A (en) * 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system and method anticipating cache usage patterns
CA2290498A1 (en) * 1998-03-19 1999-09-23 Koninklijke Philips Electronics N.V. Recording/reproduction and/or editing of real time information on/from a disc like record carrier
JP4009840B2 (ja) * 2002-06-27 2007-11-21 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム
US7089392B2 (en) * 2003-05-09 2006-08-08 International Business Machines Corporation Method, system, and program for allocating storage units to a data set
US7146455B2 (en) * 2003-05-19 2006-12-05 Accton Technology Corporation System and method for optimized access to memory devices requiring block writing
US7814128B2 (en) * 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
US7865485B2 (en) * 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
US7424482B2 (en) * 2004-04-26 2008-09-09 Storwize Inc. Method and system for compression of data for block mode access storage
CN100418071C (zh) 2005-07-08 2008-09-10 北京北大方正电子有限公司 一种媒体文件系统的建立方法
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US7516108B2 (en) * 2005-12-22 2009-04-07 International Business Machines Corporation Block allocation times in a computer system
US20070208893A1 (en) * 2006-02-23 2007-09-06 Microsoft Corporation File-based compression on a fat volume
WO2007138601A2 (en) * 2006-05-31 2007-12-06 Storwize Ltd. Method and system for transformation of logical data objects for storage
US7599972B2 (en) * 2006-08-25 2009-10-06 Qnx Software Systems Gmbh & Co. Kg File system having variable logical storage block size
US9454536B1 (en) * 2006-09-28 2016-09-27 Emc Corporation Space compaction and defragmentation mechanisms in data space
JP5095978B2 (ja) * 2006-10-13 2012-12-12 株式会社リコー 画像形成装置
US20080155205A1 (en) * 2006-12-22 2008-06-26 Parag Gokhale Systems and methods of data storage management, such as dynamic data stream allocation
US8285758B1 (en) * 2007-06-30 2012-10-09 Emc Corporation Tiering storage between multiple classes of storage on the same container file system
US8275967B2 (en) * 2008-03-13 2012-09-25 Bright Technologies, Inc. Storage of sequentially sensitive data
WO2009122743A1 (ja) * 2008-04-04 2009-10-08 パナソニック株式会社 アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム
TWI476676B (zh) * 2008-09-29 2015-03-11 Sandisk Il Ltd 用於使用不同叢集尺寸的儲存裝置之檔案系統
KR20100054402A (ko) * 2008-11-14 2010-05-25 삼성전자주식회사 스토리지를 갖는 컴퓨팅 장치와, 상기 스토리지에 대한 관리 장치 및 방법과, 파일 시스템이 기록된 기록 매체
JP5106576B2 (ja) * 2009-06-04 2012-12-26 パナソニック株式会社 記録装置、記録方法およびプログラム
US8396899B2 (en) * 2009-11-23 2013-03-12 Dell Products L.P. Efficient segment detection for deduplication
US9021229B2 (en) * 2010-04-14 2015-04-28 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
US9218135B2 (en) * 2010-06-16 2015-12-22 Microsoft Technology Licensing, Llc Hierarchical allocation for file system storage device
CN101976223B (zh) * 2010-10-09 2012-12-12 成都市华为赛门铁克科技有限公司 自动精简配置方法和装置
US8407265B1 (en) * 2010-11-19 2013-03-26 Emc Corporation Hierarchical mapping of free blocks of cylinder groups of file systems built on slices of storage and linking of the free blocks
CN102650931B (zh) * 2012-04-01 2015-07-08 华为技术有限公司 一种写入数据的方法及系统
US20130311745A1 (en) * 2012-09-17 2013-11-21 Antony Harris Storage of sequentially sensitive data
US9361215B2 (en) * 2013-05-31 2016-06-07 Apple Inc. Memory allocation improvements
KR102033323B1 (ko) * 2014-03-05 2019-10-17 한국전자통신연구원 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
CN103902669B (zh) * 2014-03-17 2017-06-16 华中科技大学 一种基于不同存储介质的分离式文件系统
US9323462B2 (en) * 2014-04-08 2016-04-26 International Business Machines Corporation File system snapshot data management in a multi-tier storage environment
CN104461914A (zh) 2014-11-10 2015-03-25 浪潮电子信息产业股份有限公司 一种自动精简配置的自适应优化方法
WO2017107015A1 (zh) * 2015-12-21 2017-06-29 华为技术有限公司 存储空间的分配方法及存储设备
CN106446138B (zh) * 2016-09-20 2020-11-20 北京奇虎科技有限公司 数据包的存储方法及装置
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
US10776342B2 (en) * 2016-11-18 2020-09-15 Tuxena, Inc. Systems and methods for recovering lost clusters from a mounted volume
CN108470855A (zh) * 2018-05-28 2018-08-31 京东方科技集团股份有限公司 一种柔性显示装置的制作方法和柔性显示装置
CN109669640B (zh) 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质
US20210144226A1 (en) * 2019-11-13 2021-05-13 Microsoft Technology Licensing, Llc Partial downloads of compressed data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101082927A (zh) * 2007-07-02 2007-12-05 浙江大学 一种基于ContextFS上下文文件系统的文件服务方法
CN101674334A (zh) * 2009-09-30 2010-03-17 华中科技大学 一种网络存储设备的访问控制方法
CN106557367A (zh) * 2015-09-30 2017-04-05 联想(新加坡)私人有限公司 用于为计算资源提供粒度化服务质量的装置、方法和设备
CN108959055A (zh) * 2018-07-25 2018-12-07 郑州云海信息技术有限公司 xfs文件系统的读写性能测试方法、装置及设备

Also Published As

Publication number Publication date
US20210263893A1 (en) 2021-08-26
EP3861430A4 (en) 2021-11-17
EP3861430A1 (en) 2021-08-11
WO2020134183A1 (en) 2020-07-02
US11977516B2 (en) 2024-05-07
CN109669640A (zh) 2019-04-23

Similar Documents

Publication Publication Date Title
CN109669640B (zh) 一种数据存储方法、装置、电子设备及介质
CN110471861B (zh) 一种闪存设备中的数据存储方法及闪存设备
CN106326133B (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN110297603B (zh) 基于固态硬盘的随机写性能提升方法、装置和计算机设备
CN103853665B (zh) 存储空间分配方法及设备
CN111930643B (zh) 一种数据处理方法及相关设备
CN106557427B (zh) 共享内存数据库的内存管理方法及装置
CN104866428A (zh) 数据存取方法和数据存取装置
WO2016138785A1 (zh) 一种运行进程的方法及装置
EP4390648A1 (en) Data processing method and apparatus, processor, and hybrid memory system
CN111324303A (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
CN111309267A (zh) 存储空间的分配方法、装置、存储设备及存储介质
CN115712500A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
CN107203341A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
US10073851B2 (en) Fast new file creation cache
US20140289739A1 (en) Allocating and sharing a data object among program instances
CN113434470B (zh) 数据分布方法、装置及电子设备
CN110737607A (zh) 管理hmb内存的方法、装置、计算机设备及存储介质
CN110312986B (zh) 用于在固态设备上存储数据的流的机会性使用
WO2017142525A1 (en) Allocating a zone of a shared memory region
US11226738B2 (en) Electronic device and data compression method thereof
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
CN113050874A (zh) 一种内存设置方法以及装置
CN113849311B (zh) 内存空间管理方法、装置、计算机设备和存储介质
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质

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