CN110427340B - 用于文件存储的方法、装置和计算机存储介质 - Google Patents
用于文件存储的方法、装置和计算机存储介质 Download PDFInfo
- Publication number
- CN110427340B CN110427340B CN201810397986.9A CN201810397986A CN110427340B CN 110427340 B CN110427340 B CN 110427340B CN 201810397986 A CN201810397986 A CN 201810397986A CN 110427340 B CN110427340 B CN 110427340B
- Authority
- CN
- China
- Prior art keywords
- size
- candidate
- matching
- sizes
- write requests
- 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
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/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本公开的实施例提供了用于文件存储的方法、装置和计算机可读介质。一种方法包括基于对与统计时段期间的写入请求匹配的分配单元(AU)大小的统计,确定用于数据存储的候选AU大小;以及在创建新文件时,使用所确定的候选AU大小存储该新文件。利用本公开的一些实施例,可以节省存储空间并改善读写性能。
Description
技术领域
本公开的实施例一般涉及数据存储的技术领域,并且具体地涉及用于文件存储的方法、装置和计算机存储介质。
背景技术
本节的介绍旨在促进对本公开的更好的理解。因此,本节的内容应以此为基础进行阅读,而不应被理解为承认哪些属于现有技术中或哪些不属于现有技术。
在文件系统(FS)中,分配单元(AU)是分配用于文件数据存储的最小单位。通常,它对于特定文件系统是固定大小的,在创建新文件系统时被设置,并且在文件系统生命周期期间不能再进行更改。如果可以很好地选择AU并且大部分输入输出(IO)都是与AU对齐的,则文件系统可以提供最佳性能并充分利用磁盘空间。
发明内容
本公开提出用于改善文件存储的方法、装置和计算机存储介质。
在本公开的第一方面,提供了一种用于文件存储的方法。该方法包括:基于对与统计时段期间的写入请求匹配的AU大小的统计,确定用于数据存储的候选AU大小;以及在创建新文件时,使用所确定的候选AU大小存储该新文件。
在一些实施例中,该方法可以进一步包括通过以下操作来获取对与写入请求匹配的AU大小的统计:从预定的AU大小集合中确定与统计时段期间接收的写入请求中的每一个写入请求匹配的AU大小;以及统计该预定的AU大小集合中的每个AU大小与写入请求的匹配概率。
在进一步的实施例中,统计预定的AU大小集合中的每个AU大小与写入请求的匹配概率可以包括:统计与预定的AU大小集合中的每个AU大小匹配的写入请求的个数,或者统计与预定的AU大小集合中的每个AU大小匹配的写入请求的个数与写入请求的总数的比率。
在一些实施例中,从预定的AU大小集合中确定与所述写入请求中的每一个写入请求匹配的AU大小可以包括:针对写入请求中的每一个写入请求,确定要写入的起始位置和长度;以及从预定的AU大小集合中选择能够被起始位置和长度两者整除的最大的AU大小作为与该写入请求匹配的AU大小。
在另一些实施例中,确定用于数据存储的候选分配单元AU大小可以包括:响应于所述匹配概率中的最大匹配概率高于匹配阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及响应于所述匹配概率中的最大匹配概率低于所述匹配阈值,将缺省的AU大小确定为所述候选AU大小。
在又一些实施例中,该方法可以进一步包括:获取该统计时段期间接收的写入请求的总数。
在一些实施例中,确定所述候选AU大小可以包括:响应于写入请求的总数高于总数阈值,将预定的AU大小集合中具有最大匹配概率的AU大小确定为候选AU大小;以及响应于写入请求的总数低于总数阈值,将缺省的AU大小确定为候选AU大小。
在另一些实施例中,确定所述候选AU大小可以包括:响应于所述匹配概率中的最大匹配概率高于匹配阈值并且所述写入请求的总数高于总数阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及响应于所述最大匹配概率低于匹配阈值和/或所述写入请求的总数低于总数阈值,将缺省的AU大小确定为所述候选AU大小。
在一些实施例中,该方法可以进一步包括:在所确定的候选AU大小与缺省的AU大小或者当前使用的AU大小不同时,向用户发送通知。
在另一些实施例中,该统计时段是周期性的,并且使用所确定的候选AU大小存储所述新文件可以包括:使用基于最近的统计时段中的所述统计所确定的候选AU大小来存储新文件。
在一些实施例中,统计时段的长度不小于预定阈值时长。
在另一些实施例中,该方法可以进一步包括:在创建新文件时,将候选AU大小写入新文件的文件索引。
在又一些实施例中,该方法可以进一步包括:检测来自用户的配置信息;并且其中使用所确定的所述候选AU大小存储所述新文件可以包括:响应于所述配置信息指示启用AU大小自动选择功能,使用所确定的所述候选AU大小存储所述新文件。
在本公开的第二方面中,提供了一种设备。该设备包括至少一个处理器,和具有存储于其上的计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置为,与该至少一个处理器一起,使该设备至少执行在本公开的第一方面中描述的方法。
在本公开的第三方面,提供了一种计算机程序产品,其包括指令,当该指令在一个或多个处理器上被执行时,使得根据本公开的第一方面所述的任一方法被执行。
在本公开的第四方面中,提供一种其上存储有计算机程序的计算机可读存储介质。该计算机程序在至少一个处理器上被执行时,促使根据本公开的第一方面所述的任一方法被执行。
附图说明
以下将参考附图描述本公开的一些示例实施例。附图中相同的附图标记表示相同或等同的元件。附图仅用于促进对本公开的实施例的更好理解,并且不一定按比例绘制,在附图中:
图1示出了文件系统、用户应用和存储系统的关系示意图;
图2示出使用固定AU大小来处理小的写入请求的示例;
图3示出使用固定AU大小来处理大的写入请求的示例;
图4示出了根据本公开的实施例的基于统计信息进行文件存储的方法的流程图;
图5示出根据本公开的实施例的用于获取与写入请求匹配的AU大小的统计的操作;
图6示出根据本公开的实施例的基于统计的AU大小处理写入请求的示例;以及
图7示出根据本公开的实施例的设备的简化框图。
具体实施方式
应当理解,本公开中的所有这些实施例仅为使本领域技术人员更好地理解和进一步实施本公开而给出,而不是用于限制本公开的范围。例如,作为一个实施例的一部分示出或描述的特征可以与另一个实施例一起使用以产生又一个实施例。为了清楚起见,在本说明书中描述的实际实现的一些特征可以被省略。
说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是不必每个实施例都包括该特定特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合其它实施例来实现这样的特征、结构或特性是在本领域技术人员的知识范围内的,而无论其是否被明确描述。
应当理解,尽管术语“第一”和“第二”等在本文中可以用于描述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一个元件进行区分。例如,在不脱离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的术语“和/或”包括一个或多个相关联的列出的条目的任意和所有组合。
本文所使用的术语仅用于描述特定实施例的目的,并且不旨在限制示例实施例。如本文所使用的单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,当在本文中使用时,术语“包括”、“包含”、“具有”、指定该特征、元件和/组件等的存在,但不排除一个或多个其它特征、元件、组件和/或其组合的存在或添加。术语“可选”表示所描述的实施例或者实现并非强制性的,其在某些情况下可被省略。
文件系统可以看作是用户和存储系统间的接口,其对存储空间进行管理。在图1中示出了文件系统110、用户应用120和存储系统130的关系示意图。如图1所示,文件系统110可以接收来自应用120的输入输出(IO)请求,并根据IO请求从存储系统130中读取数据或者向存储系统130写入数据。
对于每个接收到的写入请求,FS要分配存储空间。在文件系统中,AU是用于文件数据存储的最小分配单位。对于每个接收到的写入请求,如果该写入请求关联于文件的未分配存储空间的部分,则文件系统需要为其分配至少一个AU。通常,AU大小在创建新文件系统时被设置,并且在该文件系统生命周期期间不能再进行更改。
本公开的发明人意识到现有的AU设置具有若干问题。例如,固定的AU大小可能造成存储空间的浪费。在图2中示出了在AU大小为16KB的文件系统中进行存储分配的示例。在该示例中,假定FS接收到的IO请求为小的(即请求写入的少量数据的)写请求。例如,用户要创建一个新文件并向其中写入1KB的数据。文件系统将为该写操作分配至少16KB的存储空间,因为该FS的AU为16KB。如果用户没有再次向该文件添加写入操作,则分配的存储空间中剩余的15KB存储将被浪费。另外,当用户要读取该1KB数据时,必须读取整个16KB的AU。可见,在使用固定的AU大小服务小的IO操作(即涉及少量数据的IO操作)时可能导致存储空间的浪费和IO操作的低效率。
不仅如此,使用固定的AU大小服务大的IO操作(即涉及大量数据的IO操作)时,可能导致额外的元数据和需要的存储空间的增加。在图3中示意性地示出了在AU大小为16KB的FS中进行存储分配的另一示例。在该示例中,假设FS接收到一个对64KB数据的新写入请求,则FS需要为该写入分配4个AU 310-340和4个指针301-304来存储地址映射信息。
类似地,如果FS接收到一个1MB的新写入请求,则FS需要分配64个AU和64个指针来存储地址映射信息。地址映射信息可以使用直接指针或者间接指针来指示。直接指针的数目有限并且指示的地址范围也有限。因此,如果FS分配的AU数目较多并且不在直接指针指示的地址范围内,则需要使用间接指针来指示。间接指针指向间接块的地址,并且间接块中存储数据的地址。直接指针和间接指针可以作为元数据被存储在文件的文件索引(例如Inode)中。例如,在图3中,Inode中的间接指针305指向存储AU地址指针301-304的间接块350。
可见,使用固定的AU大小服务大的IO时,FS可能需要分配大量的AU和地址指针,并可能导致额外的间接块的分配。如果该写入请求跨交叉间接块,则需要分配的间接块的数目会进一步增加。这导致元数据的增加和对存储资源的占用的增加,即,用以获取映射信息的开销增加。
另外,固定的AU大小也会影响对读取请求的处理效率。例如,在图3的示例中,当读取64KB数据时,FS需要检查所有4个指针301-304,并可能需要读取几个额外的间接指针(例如图3的间接指针305)来获取映射信息。
由以上示例可见,如果用户在FS中使用了不合适的AU大小,则可能导致存储空间的浪费。另外,在AU大小和IO不匹配(IO请求大小小于AU大小,或请求未与AU大小对齐)的情况下,与匹配的情况相比,要处理相同长度的IO,FS可能需要读取/分配更多的元数据块,这导致IO性能下降,因为文件系统需要处理针对元数据的额外IO。
对于很多用例来说,一个文件系统往往需要同时支持多种应用,并且各应用可能使用不同的IO大小,因此,AU大小和IO的不匹配率可能非常高。
为了提供更好的用户体验,一种解决方案是,选择更合适的AU大小。然而,在改变AU大小时,为保持用户数据,客户需要将当前文件系统迁移到新文件系统。迁移通常非常缓慢,并且可能会阻塞新到达的IO的处理。另外,如果源文件系统中有大量数据,则该操作可能会影响生产系统。因此该解决方案的代价太高,对客户可能是不可行的。
本公开提出了用于改善文件存储的新的解决方案。在一些实施例中,提出自适应的文件级的AU大小选择方案。在此方案中,可以基于内部IO统计数据来自动地针对文件选择AU大小。这使得在同一文件系统中,可以对不同的文件使用不同的AU大小。通过该方案,可以提高IO性能、更好地利用存储空间,并且可以避免在发生AU不匹配时对迁移文件系统的需求。
在一些实施例中,管理员可以配置默认的AU大小和AU调整策略。该AU调整策略用于指导何时以及如何调整文件的最佳AU大小。管理员不需要担心支持不同的应用和IO模式,因为文件系统可以自动地根据策略针对文件选择最佳的AU大小。
图4中示出了基于IO统计数据来自动地针对文件选择AU大小的示例方法400的操作。该方法例如可以由图1中所示的文件系统110来实施。为便于描述,以下将参考图1来描述方法400。
如图4所示,在块410,FS 110基于对与统计时段期间的写入请求匹配的AU大小的统计,确定用于数据存储的候选AU大小。
在一些实施例中,该统计可以是FS 111从别的设备获取的。在另一实施例中,该统计可以是由FS 111自己执行的。
作为示例而非限制,FS 111可以在统计时段期间接收写入请求,并且获取与统计时段期间的该写入请求匹配的AU大小的统计。在一些实施例中仅对写入请求进行统计的一个原因是,读取请求不会导致AU分配,从而对存储空间的影响较小。
在一些实施例中,可以在FS 110中记录并统计该统计时段期间接收的所有写请求的信息。为了获得关于接收的写入请求的精确的统计数据,统计入口可以被设置在IO栈中的客户端IO已被解码并且任何聚合/调整大小/压缩操作尚未发生的某处。例如,在FS层对IO进行统计是合适的。在有些FS中,存在通用IO接口层(例如虚拟FS(VFS)层),这种情况下,一种简单的解决方案是将该统计入口设置在该通用IO接口层(例如,将IO大小检查和IO计数器添加到VFS层)。
作为示例而非限制,在一些实施例中,该统计包括与接收的写入请求所要写入的数据的长度和起始位置(本文中也称为偏移量)中的至少一项有关的信息。在一些实施例中,该统计信息包括与写入请求匹配的AU大小的统计。
在图5中示出了可以由FS 110或者其它设备执行的用于获取与写入请求匹配的AU大小的统计的示例操作500。该统计可以由FS 110在图4的块410中使用,用于确定候选AU大小。为便于描述,以下参考FS110来对该示例操作500进行说明。
如图5所示,在块510,FS 110从预定的AU大小集合中确定与统计时段期间接收的写入请求中的每一写入请求匹配的AU大小。该预定的AU大小集合可以包括,例如,8KB、16KB、32KB、64KB、128KB以及1MB的AU大小。然而应该理解,本公开的实施例不限于任何具体的AU大小集合。该集合例如可以根据该文件系统110所支持的应用类型等进行设置。
在一些实施例中,FS110可以基于写入请求所要写入的数据的长度和起始位置来确定与该写入请求匹配的AU大小。太大的AU可能导致存储空间的浪费,而太小的AU可能导致元数据的增加,因此,在一些实施例中,可以将能够被要写入的数据的起始位置(本文中也称为偏移量)和长度两者整除的最大AU大小作为与该写入请求匹配的AU大小。
例如,如果预定的AU大小集合S={8KB、16KB、32KB、64KB、128KB、1MB},并且一个IO请求要写入的数据的偏移量为512KB,长度为64KB,则该IO请求与AU大小64kB对齐。换句话说,64KB被认为是与该IO请求匹配的AU大小。
再例如,如果一个IO请求要写入的数据的偏移量为32KB,长度为24KB,则该IO与AU大小8KB对齐。即,8KB被认为是与该IO请求匹配的AU大小。
如果一个IO请求无法与系统支持的(例如预定AU大小集合中的)任何AU大小对齐,则该IO请求被认为是未对齐的IO。例如,如果一个IO请求要写入的数据的偏移量为12KB,长度为8KB,则该IO无法与{8KB、16KB、32KB、64KB、128KB、1MB}中的任何AU大小对齐,被称为未对齐的IO。类似地,如果一个IO请求要写入的数据的偏移量为8KB,长度为1KB,则该IO也无法与预定的AU大小集合中的任何AU大小对齐,因此也被认为是未对齐的IO。
在块520,FS 111可以统计预定的AU大小集合中的每个AU大小与写入请求的匹配概率。作为示例而非限制,该匹配概率可以包括与预定的AU大小集合中的每个AU大小匹配的写入请求的个数,或者与预定的AU大小集合中的每个AU大小匹配的写入请求的个数与写入请求的总数的比率(例如百分比)。
在一些实施例,可以针对预定的AU大小集合中的每个AU大小设置计数器,以统计该AU大小的匹配概率。在一些实施例中,FS 111还可以统计接收到未对齐的IO的概率。例如,在预定的AU大小集合为S={8KB、16KB、32KB、64KB、128KB、1MB}的实施例中,可以针对集合中的6个AU大小分别设置计数器,来统计其与写入请求的匹配概率,并且设置一个额外的计数器用于统计未对齐的IO的个数或者未对齐的IO占IO总数的比率。
在一些实施例中,对于每个文件系统可以设置一个IO计数器阵列用于上述统计。该计数器阵列不需要被保留在磁盘上,而是可以被保留在内存中,因为当有新的写入时它将被更改。作为示例而非限制,可以由包括多个元素的数组来存储该计数器阵列。例如,可以通过以下结构来定义该计数器阵列:
其中:
nWriteRequestSize[FS_BLOCK_UNALIGN]:未与任何AU大小对齐的IO的数目
nWriteRequestSize[FS_BLOCK_8KB]:与8KB的AU对齐的IO的数目;
nWriteRequestSize[FS_BLOCK_16KB]:与16KB的AU对齐的IO的数目;
nWriteRequestSize[FS_BLOCK_32KB]:与32KB的AU对齐的IO的数目;
nWriteRequestSize[FS_BLOCK_64KB]:与64KB的AU对齐的IO的数目;
nWriteRequestSize[FS_BLOCK_128KB]:与128KB的AU对齐的IO的数目;
nWriteRequestSize[FS_BLOCK_1MB]:与1MB的AU对齐的IO的数目。
针对每个文件系统的计数器阵列可以消耗例如56个字节,因此,即使有数百个文件系统,用于该计数器阵列的总内存消耗也不会太大。因此,由该统计所导致的内存消耗是可接受的。
在本公开的一些实施例中,FS110检查接收的每个写入请求以获得统计信息。例如,如结合图5所述,FS 110可以根据写入请求中的偏移量和长度两者来确定该写入请求是否与预定的AU大小集合中的某个AU大小对齐(即确定与该写入请求的匹配AU大小),并且据此更新计数器。
例如,如果进入的IO请求中的偏移量为512KB,长度为64KB,则该IO与AU大小64kB对齐。因此,将与64KB的AU大小对齐的IO的计数加一。类似地,如果进入的IO请求中的偏移量为32KB,长度为24KB,则该IO与AU大小8KB对齐。因此,将与8KB的AU大小对齐的IO的计数加一。
如前所述,如果IO请求无法与系统支持的任何大小对齐,则该IO被认为是未对齐的IO。在一些实施例中,如果接收到未对齐的IO,则将相应的计数器加1。例如,如果进入的IO请求中的偏移量为12KB,长度为8KB,则该IO无法与预定集合S中的任何AU大小对齐,因此,将未对齐的IO计数加1。类似地,如果进入的IO请求中的偏移量为8KB,长度为1KB,则该IO也无法与预定集合S中的任何AU大小对齐,因此,将未对齐的IO计数加1。
在一些实施例中,可以将计数器中的计数(与各AU大小对齐/匹配的IO数目)作为在图4的块410中用于确定候选AU大小的统计信息。在另一些实施例中,可以通过对计数器中的计数进行处理来获取在块410中使用的统计信息。例如,可以基于与各AU大小对齐/匹配的IO数目来计算与各AU大小对齐的IO的百分比。也就是说,与第k个AU大小对齐的IO的百分比Rk可以被如下计算:
其中Nk表示与第k个AU大小对齐的IO的数目,Ntot表示接收的IO的总数。实际上,该计数值Nk和计算得到的百分比Rk均可以用于表征各AU大小被匹配的概率。
在表1中示出基于计数器中的计数获得的与各AU大小对齐的IO百分比的示例。
表1.与各AU大小对齐的IO百分比
计数器仅用于记录运行时的IO统计信息,该统计信息被用来针对新文件选择更合适的AU大小。然而,这些数据对于系统的其它操作来说可能并不重要,因此,计数器可以被存储在内存中,而不是被保留在磁盘。
现在再次参考图4。在一些实施例中,在块410,可以比较各AU大小与写入请求的匹配概率(例如Nk或者Rk),并且将具有最大匹配概率的AU大小直接确定为候选AU大小。例如,如果各AU大小的匹配概率如表1所示,则具有最大匹配概率(81%)的32KB可以被确定为候选AU大小。
在一些实施例中,可以进一步基于预定的匹配阈值和/或准则来确定候选AU大小。例如,如果各AU大小的匹配概率中的最大匹配概率高于匹配阈值T1(例如但不限于80%),则可以将具有该最大匹配概率的AU大小确定为候选AU大小。这种情况下,可以认为具有该最大匹配概率的AU大小是该统计时段中最合适的AU大小,或者说,在该统计时段中到达的客户IO大小大致与该AU大小对齐。在表1的示例中,与大小为32KB的AU大小对齐的IO数目占总数的81%,超过了预定阈值80%。因此,可以认为32KB是该统计时段中最合适的AU大小。如此得到的最合适的AU大小或者建议的AU大小可以被作为候选AU大小更新到FS 110中的超级块。除此之外,该超级块还可以包含缺省的AU大小,以及文件系统的类型等信息。
另一方面,在一些实施例中,如果匹配概率中的最大匹配概率低于匹配阈值T1,则可以将缺省的AU大小确定为候选AU大小。因为这种情况下,可以认为不存在某个AU大小使得到达的大部分IO与之对齐。
本公开的发明人意识到,在一些情况下,一个统计时段中的IO请求的总数可能较少。这可能导致此期间的统计结果不能反映文件系统的实际使用情况。因此,基于该统计时段中的统计结果可能会得到错误的候选AU大小。在一些实施例中,可以通过设置合适的统计时段的长度来保证足够的IO请求数。例如,该统计时段可以被设置为大于预定阈值时长(例如24小时)。
替代地或者附加地,在一些实施例中,为避免错误的统计结果或者错误的候选AU大小,可以引入另一个总数阈值T2,以检查是否应该将该统计时段的统计结果更新到超级块。例如,可选地,FS 110还可以统计在时段期间接收的写入请求的总数。并且。在块410,FS110可以进一步地基于写入请求的总数与总数阈值T2的比较来确定用于数据存储的候选分配单元AU大小。
作为示例而非限制,如果写入请求的总数高于总数阈值,则认为统计准确,并且FS111可以在块410将预定的AU大小集合中具有最大匹配概率的AU大小确定为候选AU大小。另一方面,如果写入请求的总数低于总数阈值,则FS111可以在块410将缺省的AU大小确定为候选AU大小。
替代地,可以基于匹配阈值T1和总数阈值T2两者来确定候选分配单元AU大小。例如,如果匹配概率中的最大匹配概率高于匹配阈值T1并且写入请求的总数高于总数阈值T2,则FS110将具有最大匹配概率的AU大小确定为所述候选AU大小。另一方面,如果最大匹配概率低于匹配阈值T1,和/或,写入请求的总数低于数目阈值T2,则FS110可以将缺省的AU大小确定为候选AU大小。应该理解,匹配阈值T1和总数阈值T2均可以由用户配置。
在又一实施例中,如果统计时段期间接收的写入请求的总数小于总数阈值,则不将候选AU大小的结果更新到超级块,即,仍然使用上一时段中确定的候选AU大小,或者说,当前已经存储在超级块中的候选AU大小。
如图4所示,在块420,FS 110在创建新文件时使用块410中确定的候选AU大小。例如,FS 110可以在块420使用该候选AU大小执行文件存储,即,使用该候选AU大小作为该文件的分配单元。可选地,在一些实施例中,在创建新文件时,FS 111可以将该候选AU大小写入新文件的文件索引。
由于在块410中确定的AU大小是基于统计时段中的IO统计数据计算的,所以到达的写入请求与候选AU大小对齐的概率很高。因此,基于该候选AU大小进行文件存储可以获得更好的IO性能并充分利用存储空间。
在一些实施例中,统计时段可以是周期性的。也就是说,方法400中的块410的操作可以在每个统计时段期间执行,以动态地更新候选AU大小。并且在块420,FS 110使用最新的(即上一统计时段获得的)候选AU大小进行文件存储。
在一些实施例中,在每个统计时段开始时,计数器可以被重置,以避免太多的旧数据带来的不利影响。在一些实施例中,在统计时段到期时,系统将统计结果更新到超级块,并且将计数器重置为0。统计时段可以由用户配置。例如,当文件系统被安装时,可以在文件系统初始化路径中创建用于统计时段的计时器。每当该计时器到期时,系统将统计结果更新到超级块,然后将计时器重置为0。如果存在故障切换/故障恢复,则少于一个统计时段的某些历史数据将丢失。这种情况下将启动新的统计时段。由于统计数据对于系统的其它操作来说并不重要,因此,由此导致的历史数据丢失不会造成严重问题。至多导致系统在一段时间内降级为固定AU大小的情况。
另外,如果上一个统计时段的IO模式与当前时段完全不同,则上一时段中所确定的候选AU大小对当前时段可能是不准确的。这种情况下,文件系统将降级为固定AU大小的情况。
在一些实施例中,用户可以配置是否启用自动AU大小选择功能。如果启用,则允许基于IO统计结果动态地确定用于一个新文件的存储的AU大小。从而在同一个FS中,允许针对不同的文件使用不同的AU大小。如果不启用,则降级为固定AU大小的情况。
在一些实施例中,用户还可以选择在特定的时间段中,例如通过命令行,禁用AU大小自动选择功能。例如,在安装/更新系统或应用程序时,IO模式是暂时的,因此基于这些IO的统计数据得到的AU大小建议(即候选AU大小)可能不准确。因此,在这种情况下,在安装/更新系统或应用程序的时间段中,用户可以禁用该AU大小自动选择功能,并在该阶段之后再次启用该功能。
替代地或者附加地,在一些实施例中,可以基于统计结果向用户发送通知,以辅助用户对AU大小的设置。例如,在块410中新确定的候选AU大小与缺省的AU大小或者当前使用的AU大小不同时,FS 110可以在块430向用户发送通知,以指示该不同。例如,当块410中确定的候选AU大小与默认的AU大小不同时,FS可以例如通过发送电子邮件或更改文件系统健康状态来通知管理员存在AU不匹配事件。管理员可以基于该通知信息来决定改变AU大小、、迁移整个文件系统、更改策略以自动利用建议的AU大小来存储文件,或者只是保持不变。该实施例为用户提供了更多的选择。
在图6中示出根据本公开的实施例执行文件存储的示意图。在该示例中,假定利用图4的方法确定了候选AU大小为1MB,并且接收的写入请求要创建新文件并写入2MB的数据。如图6所示,在这种情况下,FS 110可以将1MB的AU大小作为字段611写入该文件的Inode,并且分配两个AU 610-620用于该文件的存储。此外,仅需要分配两个AU地址指针601和602来执行映射。与图3的示例相比,减少了元数据存储空间。
图7示出了可以用来实施本公开的实施例的设备700的示意性框图。如图7所示,电子设备700包括控制器或者称为处理单元(例如CPU)701,其可以根据存储在只读存储器(ROM)702和/或随机访问存储器(RAM)703的程序而执行各种适当的动作和处理。ROM 702和/或RAM 703可存储电子设备700操作所需的各种程序和数据。控制器701、ROM 702和RAM703通过例如总线704彼此相连。特别地,电子设备700还包括一个或多个专用处理单元(未示出),这些专用处理单元也可以连接至总线704。
输入/输出(I/O)接口705也连接至总线704。电子设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
在某些实施例中,控制器701可被配置为执行上文所描述的各个过程和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到电子设备700上。当计算机程序被加载到RAM 703并由控制器701执行时,可以执行上文描述的方法400的一个或多个操作。备选地,在其他实施例中,控制器701也可以以其他任何适当的方式被配置以实现上述过程/方法。
特别地,根据本公开的实施例,上文参考图4-7描述的方法和设备可以被实现为计算机程序产品,其可以被有形地存储在非瞬态计算机可读存储介质上,并且包括机器可执行指令,该指令在被执行时使得机器实现根据本公开的各个方面。
计算机可读存储介质可以是可以存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的、非穷举的例子包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的设备、方法和计算机程序产品的框图和/或流程图描述了本公开的各个方面。应当理解,框图和/或流程图的每个方框以及框图和/或流程图中各方框的组合,都可以由计算机可读程序指令实现。
已经出于示例的目的描述了本公开的各个实施例,但是本公开并不意图限于所公开的这些实施例。在不脱离本公开实质的前提下,所有修改和变型均落入由权利要求所限定的本公开的保护范围之内。
Claims (25)
1.一种用于文件存储的方法,包括:
基于对与统计时段期间的写入请求匹配的分配单元(AU)大小的统计,确定用于数据存储的候选AU大小;
通过以下操作来获取对与写入请求匹配的AU大小的统计:
从预定的AU大小集合中确定与所述统计时段期间接收的写入请求中的每一个写入请求匹配的AU大小;以及
统计所述预定的AU大小集合中的每个AU大小与所述写入请求的匹配概率;以及
在创建新文件时,使用所确定的所述候选AU大小存储所述新文件。
2.根据权利要求1所述的方法,其中统计所述预定的AU大小集合中的每个AU大小与所述写入请求的匹配概率包括:
统计与所述预定的AU大小集合中的每个AU大小匹配的写入请求的个数,或者
统计与所述预定的AU大小集合中的每个AU大小匹配的写入请求的个数与所述写入请求的总数的比率。
3.根据权利要求1所述的方法,其中从预定的AU大小集合中确定与所述写入请求中的每一个写入请求匹配的AU大小包括:
针对所述写入请求中的每一个写入请求,确定要写入的起始位置和长度;
从所述预定的AU大小集合中选择能够被所述起始位置和所述长度两者整除的最大的AU大小作为与所述写入请求匹配的AU大小。
4.根据权利要求1所述的方法,其中确定用于数据存储的候选分配单元AU大小包括:
响应于所述匹配概率中的最大匹配概率高于匹配阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述匹配概率中的最大匹配概率低于所述匹配阈值,将缺省的AU大小确定为所述候选AU大小。
5.根据权利要求1所述的方法,进一步包括:
获取所述统计时段期间接收的写入请求的总数。
6.根据权利要求5所述的方法,其中确定所述候选AU大小包括:
响应于所述写入请求的总数高于总数阈值,将所述预定的AU大小集合中具有最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述写入请求的所述总数低于总数阈值,将缺省的AU大小确定为所述候选AU大小。
7.根据权利要求5所述的方法,其中确定所述候选AU大小包括:
响应于所述匹配概率中的最大匹配概率高于匹配阈值并且所述写入请求的总数高于总数阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述最大匹配概率低于匹配阈值和/或所述写入请求的总数低于总数阈值,将缺省的AU大小确定为所述候选AU大小。
8.根据权利要求1所述的方法,进一步包括:
在所确定的所述候选AU大小与缺省的AU大小或者当前使用的AU大小不同时,向用户发送通知。
9.根据权利要求1所述的方法,其中所述统计时段是周期性的,并且使用所确定的所述候选AU大小存储所述新文件包括:
使用基于最近的统计时段中的所述统计所确定的候选AU大小来存储所述新文件。
10.根据权利要求1所述的方法,其中所述统计时段的长度不小于预定阈值时长。
11.根据权利要求1所述的方法,进一步包括:
在创建所述新文件时,将所述候选AU大小写入所述新文件的文件索引。
12.根据权利要求1所述的方法,进一步包括:
检测来自用户的配置信息;并且
其中使用所确定的所述候选AU大小存储所述新文件包括:
响应于所述配置信息指示启用AU大小自动选择功能,使用所确定的所述候选AU大小存储所述新文件。
13.一种用于文件存储的设备,包括:
至少一个处理器,以及
具有存储于其上的计算机程序代码的至少一个存储器,
所述至少一个存储器和所述计算机程序代码被配置为,与所述至少一个处理器一起,使所述设备至少:
基于对与统计时段期间的写入请求匹配的分配单元(AU)大小的统计,确定用于数据存储的候选AU大小;
通过以下操作来获取对与写入请求匹配的AU大小的统计:
从预定的AU大小集合中确定与所述统计时段期间接收的写入请求中的每一个写入请求匹配的AU大小,以及统计所述预定的AU大小集合中的每个AU大小与所述写入请求的匹配概率;以及
在创建新文件时,使用所确定的所述候选AU大小存储所述新文件。
14.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备通过以下操作来统计所述预定的AU大小集合中的每个AU大小与所述写入请求的匹配概率:
统计与所述预定的AU大小集合中的每个AU大小匹配的写入请求的个数,或者
统计与所述预定的AU大小集合中的每个AU大小匹配的写入请求的个数与所述写入请求的总数的比率。
15.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备通过以下操作来从预定的AU大小集合中确定与所述写入请求中的每一个写入请求匹配的AU大小:
针对所述写入请求中的每一个写入请求,确定要写入的起始位置和长度;
从所述预定的AU大小集合中选择能够被所述起始位置和所述长度两者整除的最大的AU大小作为与所述写入请求匹配的AU大小。
16.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备通过以下操作来来确定所述候选AU大小:
响应于所述匹配概率中的最大匹配概率高于匹配阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述最大匹配概率低于所述匹配阈值,将缺省的AU大小确定为所述候选AU大小。
17.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备:
获取所述统计时段期间接收的写入请求的总数。
18.根据权利要求17所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备通过以下操作来确定所述候选AU大小:
响应于所述写入请求的总数高于总数阈值,将所述预定的AU大小集合中具有最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述写入请求的所述总数低于总数阈值,将缺省的AU大小确定为所述候选AU大小。
19.根据权利要求17所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备通过以下操作来确定所述候选AU大小:
响应于所述匹配概率中的最大匹配概率高于匹配阈值并且所述写入请求的总数高于总数阈值,将具有所述最大匹配概率的AU大小确定为所述候选AU大小;以及
响应于所述最大匹配概率低于匹配阈值和/或所述写入请求的总数低于总数阈值,将缺省的AU大小确定为所述候选AU大小。
20.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备:
在所确定的所述候选AU大小与缺省的AU大小或者当前使用的AU大小不同时,向用户发送通知。
21.根据权利要求13所述的设备,其中所述统计时段是周期性的,并且
所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备使用基于最近的统计时段中的所述统计所确定的候选AU大小来存储所述新文件。
22.根据权利要求13所述的设备,其中所述统计时段的长度不小于预定阈值时长。
23.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备:
在创建所述新文件时,将所述候选AU大小写入所述新文件的文件索引。
24.根据权利要求13所述的设备,其中所述至少一个存储器和所述计算机程序代码进一步被配置为与所述至少一个处理器一起使所述设备:
检测来自用户的配置信息;以及
响应于所述配置信息指示启用AU大小自动选择功能,使用所确定的所述候选AU大小存储所述新文件。
25.一种具有实施于其上的计算机程序的计算机可读存储介质,所述计算机程序在设备中被执行时促使所述设备执行根据权利要求1至12中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810397986.9A CN110427340B (zh) | 2018-04-28 | 2018-04-28 | 用于文件存储的方法、装置和计算机存储介质 |
US16/223,727 US11507537B2 (en) | 2018-04-28 | 2018-12-18 | Method, apparatus and computer storage medium for file storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810397986.9A CN110427340B (zh) | 2018-04-28 | 2018-04-28 | 用于文件存储的方法、装置和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427340A CN110427340A (zh) | 2019-11-08 |
CN110427340B true CN110427340B (zh) | 2023-08-04 |
Family
ID=68292544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810397986.9A Active CN110427340B (zh) | 2018-04-28 | 2018-04-28 | 用于文件存储的方法、装置和计算机存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11507537B2 (zh) |
CN (1) | CN110427340B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111522507B (zh) * | 2020-04-14 | 2021-10-01 | 中山大学 | 一种低延迟的文件系统地址空间管理方法、系统及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924861A (zh) * | 2005-08-31 | 2007-03-07 | 国际商业机器公司 | 存储信息的装置和方法 |
CN106649403A (zh) * | 2015-11-04 | 2017-05-10 | 深圳市腾讯计算机系统有限公司 | 文件存储中的索引实现方法和系统 |
CN107450848A (zh) * | 2016-05-31 | 2017-12-08 | 三星电子株式会社 | 存储系统及其管理卷的方法 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394445A (en) * | 1993-06-25 | 1995-02-28 | Ball; Randel H. | Telephone call screening and answering device |
JP3371044B2 (ja) * | 1994-12-28 | 2003-01-27 | 株式会社日立製作所 | ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 |
JP3113814B2 (ja) * | 1996-04-17 | 2000-12-04 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 情報検索方法及び情報検索装置 |
GB2406681B (en) * | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
US20120124285A1 (en) * | 2003-08-14 | 2012-05-17 | Soran Philip E | Virtual disk drive system and method with cloud-based storage media |
US7188128B1 (en) * | 2003-12-12 | 2007-03-06 | Veritas Operating Corporation | File system and methods for performing file create and open operations with efficient storage allocation |
US7587566B2 (en) * | 2004-02-20 | 2009-09-08 | Microsoft Corporation | Realtime memory management via locking realtime threads and related data structures |
JP4615337B2 (ja) | 2005-03-16 | 2011-01-19 | 株式会社日立製作所 | ストレージシステム |
JP4671738B2 (ja) * | 2005-04-01 | 2011-04-20 | 株式会社日立製作所 | ストレージシステム及び記憶領域割当て方法 |
US8140813B2 (en) * | 2005-09-15 | 2012-03-20 | Eye-Fi, Inc. | Endless memory |
JP5037952B2 (ja) | 2007-01-15 | 2012-10-03 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
US7935283B2 (en) | 2009-01-09 | 2011-05-03 | Honeywell International Inc. | Melt spinning blends of UHMWPE and HDPE and fibers made therefrom |
US8972690B2 (en) * | 2010-01-05 | 2015-03-03 | Deric Horn | Methods and apparatuses for usage based allocation block size tuning |
US8478731B1 (en) | 2010-03-31 | 2013-07-02 | Emc Corporation | Managing compression in data storage systems |
CN101968724B (zh) * | 2010-11-04 | 2012-05-23 | 长安大学 | 针对嵌入式arm处理器对sd卡数据存储和删除方法 |
US8918607B2 (en) | 2010-11-19 | 2014-12-23 | International Business Machines Corporation | Data archiving using data compression of a flash copy |
US8751449B2 (en) * | 2011-04-04 | 2014-06-10 | Symantec Corporation | Managing performance within an enterprise object store file system |
CN102364465A (zh) * | 2011-09-30 | 2012-02-29 | 深圳市赫迪威信息技术有限公司 | 一种文件存储方法及存储集群 |
US9575690B2 (en) * | 2011-12-23 | 2017-02-21 | Oracle International Corporation | Sub-lun auto-tiering |
CN102685904B (zh) * | 2012-05-07 | 2015-04-01 | 中兴通讯股份有限公司 | 一种带宽自适应分配方法和系统 |
US9658929B1 (en) | 2012-06-27 | 2017-05-23 | EMC IP Holding Company LLC | Asynchronous splitting |
US9639383B1 (en) | 2012-06-27 | 2017-05-02 | EMC IP Holding Company LLC | Volume moving |
US9619264B1 (en) | 2012-06-27 | 2017-04-11 | EMC IP Holding Company LLC | AntiAfinity |
US9659074B1 (en) | 2012-06-27 | 2017-05-23 | EMC IP Holding Company LLC | VFA statistics |
US9575851B1 (en) | 2012-06-27 | 2017-02-21 | EMC IP Holding Company LLC | Volume hot migration |
US9424267B2 (en) * | 2013-01-02 | 2016-08-23 | Oracle International Corporation | Compression and deduplication layered driver |
US9081683B2 (en) | 2013-02-08 | 2015-07-14 | Nexenta Systems, Inc. | Elastic I/O processing workflows in heterogeneous volumes |
US9576012B2 (en) * | 2013-03-14 | 2017-02-21 | Oracle International Corporation | Hierarchical tablespace space management |
US9430383B2 (en) * | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
US8976636B1 (en) | 2013-09-26 | 2015-03-10 | Emc Corporation | Techniques for storing data on disk drives partitioned into two regions |
CN104516767B (zh) * | 2013-09-27 | 2018-01-02 | 国际商业机器公司 | 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统 |
US10120601B2 (en) | 2014-03-24 | 2018-11-06 | Hitachi, Ltd. | Storage system and data processing method |
US9348761B1 (en) | 2014-06-30 | 2016-05-24 | Emc Corporation | Weighted-value consistent hashing for balancing device wear |
CN104102735A (zh) * | 2014-07-28 | 2014-10-15 | 三星电子(中国)研发中心 | 一种针对数据库文件的文件系统优化方法和装置 |
US10095425B1 (en) | 2014-12-30 | 2018-10-09 | EMC IP Holding Company LLC | Techniques for storing data |
US9946465B1 (en) | 2014-12-31 | 2018-04-17 | EMC IP Holding Company LLC | Adaptive learning techniques for determining expected service levels |
US10657475B2 (en) | 2015-10-07 | 2020-05-19 | International Business Machines Corporation | Cost effective data storage |
US10067696B2 (en) * | 2015-12-18 | 2018-09-04 | Emc Corporation | Capacity exhaustion prevention for distributed storage |
US9841901B1 (en) | 2015-12-31 | 2017-12-12 | EMC IP Holding Company LLC | Techniques for creating windows of free blocks in a file system in accordance with trigger conditions, slice selection criteria and termination criteria |
CN106406756B (zh) * | 2016-09-05 | 2019-07-09 | 华为技术有限公司 | 一种文件系统的空间分配方法及装置 |
US10108550B2 (en) * | 2016-09-22 | 2018-10-23 | Google Llc | Memory management supporting huge pages |
CN107870916A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 存储管理方法及设备 |
US10430376B1 (en) | 2016-12-29 | 2019-10-01 | EMC IP Holding Company LLC | Managing inline data compression in storage systems |
US10346064B1 (en) | 2016-12-30 | 2019-07-09 | EMC IP Holding Company LLC | Managing compression based on a compression profile of host data initially residing on a source storage array |
CN107045530B (zh) * | 2017-01-20 | 2019-07-26 | 华中科技大学 | 一种将对象存储系统实现为本地文件系统的方法 |
US10547846B2 (en) * | 2017-04-17 | 2020-01-28 | Intel Corporation | Encoding 3D rendered images by tagging objects |
US11151031B2 (en) * | 2017-06-29 | 2021-10-19 | Microsoft Technology Licensing, Llc | Optimized record placement in defragmenting graph database |
US10678439B2 (en) * | 2018-04-02 | 2020-06-09 | Micron Technology, Inc. | Optimization of memory systems based on performance goals |
-
2018
- 2018-04-28 CN CN201810397986.9A patent/CN110427340B/zh active Active
- 2018-12-18 US US16/223,727 patent/US11507537B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924861A (zh) * | 2005-08-31 | 2007-03-07 | 国际商业机器公司 | 存储信息的装置和方法 |
CN106649403A (zh) * | 2015-11-04 | 2017-05-10 | 深圳市腾讯计算机系统有限公司 | 文件存储中的索引实现方法和系统 |
CN107450848A (zh) * | 2016-05-31 | 2017-12-08 | 三星电子株式会社 | 存储系统及其管理卷的方法 |
Also Published As
Publication number | Publication date |
---|---|
US11507537B2 (en) | 2022-11-22 |
US20190332581A1 (en) | 2019-10-31 |
CN110427340A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3367251B1 (en) | Storage system and solid state hard disk | |
US8578096B2 (en) | Policy for storing data objects in a multi-tier storage system | |
CN108829344A (zh) | 数据存储方法、装置及存储介质 | |
US8407423B2 (en) | Automatic determination of read-ahead amount | |
CN104978362A (zh) | 分布式文件系统的数据迁移方法、装置及元数据服务器 | |
US10712972B2 (en) | Read commands scheduling method in storage device | |
CN108334284B (zh) | 尾延迟感知前台垃圾收集算法 | |
CN109213696B (zh) | 用于缓存管理的方法和设备 | |
CN110226158B (zh) | 一种数据预取方法、装置和存储设备 | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
CN108984104B (zh) | 用于缓存管理的方法和设备 | |
CN108874502B (zh) | 云计算集群的资源管理方法、装置及设备 | |
US10146783B2 (en) | Using file element accesses to select file elements in a file system to defragment | |
US10489074B1 (en) | Access rate prediction in a hybrid storage device | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
CN110427340B (zh) | 用于文件存储的方法、装置和计算机存储介质 | |
US11287997B2 (en) | Method, electronic device and computer program product for managing disk array | |
CN110389714B (zh) | 用于数据输入输出的方法、装置和计算机存储介质 | |
CN109144431B (zh) | 数据块的缓存方法、装置、设备及存储介质 | |
CN111651126B (zh) | 存储器的写操作方法、系统、电子设备和介质 | |
US11199997B2 (en) | Storage device operations using a die translation table | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN109977074B (zh) | 一种基于hdfs的lob数据处理方法及装置 | |
US20200133506A1 (en) | Method, apparatus and computer program product for managing storage device | |
US9710183B2 (en) | Effectively limitless apparent free space on storage device |
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 |