CN117234435B - 文件存储方法及装置 - Google Patents

文件存储方法及装置 Download PDF

Info

Publication number
CN117234435B
CN117234435B CN202311514246.6A CN202311514246A CN117234435B CN 117234435 B CN117234435 B CN 117234435B CN 202311514246 A CN202311514246 A CN 202311514246A CN 117234435 B CN117234435 B CN 117234435B
Authority
CN
China
Prior art keywords
file
target
disk
writing
frequency
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
CN202311514246.6A
Other languages
English (en)
Other versions
CN117234435A (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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311514246.6A priority Critical patent/CN117234435B/zh
Publication of CN117234435A publication Critical patent/CN117234435A/zh
Application granted granted Critical
Publication of CN117234435B publication Critical patent/CN117234435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种文件存储方法和装置,其中,该方法包括:确定目标文件的目标文件类型,其中,目标文件为需要存储到存储系统的文件;在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组,其中,多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,每个文件类型对应的读写特征用于表示每个文件类型的文件的读取频率与写入频率之间的大小关系;将目标文件存储到目标磁盘组。通过本申请,解决了现有技术中存储系统内的文件存储方式存在对存储系统所进行的读写请求的响应效率较低的问题,进而达到了提高读写请求的响应效率的效果。

Description

文件存储方法及装置
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种文件存储方法及装置。
背景技术
现有技术中,对于存储系统内数据的部署,可以将数据切割成许多区段,分别存放在各个磁盘上,可以使得各个磁盘并行处理主机读/写请求,在提升存储系统的存储容量的同时,可以提高存储系统的读/写性能。
然而,在接收到对RAID存储系统的混合读写请求的情况下,读取和写入同时发生时,读取请求可能会被堵塞在大量写入请求之后,导致读写性能大幅下降。
因此,现有技术中存储系统内的文件存储方式,存在对存储系统内所进行的读写请求的响应效率较低的问题。
发明内容
本申请实施例提供了一种文件存储方法及装置,以至少解决现有技术中存储系统内的文件存储方式存在对存储系统所进行的读写请求的响应效率较低的问题。
根据本申请的一个实施例,提供了一种文件存储方法,包括:确定目标文件的目标文件类型,其中,所述目标文件为需要存储到存储系统的文件;在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;将所述目标文件存储到所述目标磁盘组。
在一个示例性实施例中,所述确定目标文件的目标文件类型,包括:获取所述目标文件的描述参数,其中,所述描述参数用于表示所述目标文件的来源;根据所述描述参数,确定所述目标文件的所述目标文件类型。
在一个示例性实施例中,所述获取所述目标文件的描述参数,包括:调用所述存储系统上的第一预设接口,以获取所述描述参数,其中,所述第一预设接口为所述存储系统与目标线程之间的通信接口,所述目标线程用于获取所述目标文件。
在一个示例性实施例中,所述根据所述描述参数,确定所述目标文件的所述目标文件类型,包括以下至少之一:在所述描述参数表示所述目标文件为待记录的日志文件的情况下,确定所述目标文件类型为日志文件类型;在所述描述参数表示所述目标文件为执行刷新操作所确定的文件的情况下,确定所述目标文件类型为刷新文件类型,其中,所述刷新操作用于将所述存储系统的内存中的文件存储在所述存储系统的磁盘中,并清空所述内存中的文件,所述目标文件包括所述内存中的文件;在所述描述参数表示所述目标文件是对所述存储系统的磁盘中的文件执行压缩操作所得到的文件的情况下,确定所述目标文件类型为压缩文件类型。
在一个示例性实施例中,在确定所述目标文件类型为刷新文件类型之前,所述方法还包括:在所述内存中存储的文件大于或者等于预设的所述内存的容量阈值的情况下,对所述内存中的文件执行所述刷新操作。
在一个示例性实施例中,所述日志文件类型对应第一读写特征,其中,所述第一读写特征用于表示所述日志文件类型的文件的写入频率大于读取频率、且所述日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者所述日志文件类型的文件的读取频率大于写入频率、且所述日志文件类型的文件的读取频率与所述总频率的比值大于或等于第一预设阈值,所述总频率为写入频率和读取频率之和;和/或,所述刷新文件类型对应第二读写特征,其中,所述第二读写特征用于表示所述刷新文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值;和/或,所述压缩文件类型对应第三读写特征,其中,所述第三读写特征用于表示所述压缩文件类型的文件的写入频率大于读取频率、且所述压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值。
在一个示例性实施例中,在确定所述目标文件类型为压缩文件类型之前,所述方法还包括以下之一:在所述存储系统的磁盘中存储的文件的总容量大于或者等于预设的第一容量阈值的情况下,对所述存储系统的磁盘中存储的至少部分文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的所述至少部分文件执行所述压缩操作所得到的文件;在所述存储系统的磁盘中存储的文件等级为目标等级的文件的总容量大于或者等于预设的第二容量阈值的情况下,对所述存储系统的磁盘中存储的文件等级为所述目标等级的文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的文件等级为所述目标等级的文件执行所述压缩操作所得到的文件;在所述存储系统的磁盘中存储的文件等级高于目标等级的文件的总容量大于或者等于预设的第三容量阈值的情况下,对所述存储系统的磁盘中存储的文件等级高于所述目标等级的文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的文件等级高于所述目标等级的文件执行所述压缩操作所得到的文件。
在一个示例性实施例中,在所述确定所述目标文件类型为压缩文件类型之前,所述方法还包括:在当前时刻满足预设时间间隔的情况下,对所述存储系统的磁盘中存储的文件等级为目标等级的文件执行所述压缩操作,其中,所述预设时间间隔为对所述目标等级的文件执行相邻两次压缩操作的时间间隔。
在一个示例性实施例中,在所述确定所述目标文件类型为压缩文件类型之后,所述方法还包括:确定所述压缩操作的开始时间和结束时间;将生成时间位于所述开始时间与所述结束时间之间的文件确定为所述目标文件。
在一个示例性实施例中,所述确定所述压缩操作的开始时间和结束时间,包括:通过所述存储系统的第二预设接口,获取所述压缩操作的开始时间和结束时间。
在一个示例性实施例中,所述在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,包括:在所述多个磁盘组中存在N个磁盘组、且所述N个磁盘组均用于存储所述目标文件类型的文件、N为大于或等于2的正整数的情况下,根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,其中,所述目标磁盘组包括所述M个磁盘组,M为大于或等于1、且小于或等于N的正整数,所述目标写入带宽表示在存储所述目标文件时单位时间内所需的写入容量,所述M个磁盘组的总空闲写入带宽大于或等于所述目标写入带宽,所述总空闲写入带宽表示所述M个磁盘组所允许的所述单位时间内的写入容量。
在一个示例性实施例中,所述根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,包括:在所述N个磁盘组中存在K个磁盘组、且所述K个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于所述目标写入带宽的情况下,在所述K个磁盘组中选择一个磁盘组,其中,M等于1,所述M个磁盘组包括所述一个磁盘组,K为大于或等于2、且小于或等于N的正整数。
在一个示例性实施例中,所述在所述K个磁盘组中选择一个磁盘组,包括以下之一:在所述K个磁盘组中随机选择一个磁盘组;在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的空闲写入带宽最大;在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的空闲写入带宽除以总写入带宽所得到的比值最大,所述总写入带宽表示所述一个磁盘组所允许的所述单位时间内的最大写入容量;在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的已用读取带宽最小,或,所述一个磁盘组的已用读取带宽与总读取带宽所得到的比值最小,所述已用读取带宽表示所述一个磁盘组已被占用的所述单位时间内的读取容量,所述总读取带宽用于表示所述一个磁盘组所允许的所述单位时间内的最大读取容量。
在一个示例性实施例中,所述根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,包括:在所述N个磁盘组中存在R种磁盘组组合、且每种磁盘组组合包括至少两个磁盘组,所述每种磁盘组组合的总空闲写入带宽均大于或等于所述目标写入带宽的情况下,在所述R种磁盘组组合中选择一种磁盘组组合,其中,M等于2,所述M个磁盘组包括所述一种磁盘组组合中的各个磁盘组,第i种磁盘组组合的总空闲写入带宽表示所述第i种磁盘组组合中的各个磁盘组的空闲写入带宽之和,R为大于或等于2的正整数,i为大于或等于1的正整数。
在一个示例性实施例中,所述在所述R种磁盘组组合中选择一种磁盘组组合,包括以下之一:在所述R种磁盘组组合中随机选择一种磁盘组组合;在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总空闲写入带宽最大;在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总空闲写入带宽除以总写入带宽之和所得到的比值最大,所述总写入带宽之和表示所述一种磁盘组组合中的各个磁盘组所允许的所述单位时间内的最大写入容量之和;在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总已用读取带宽最小,或,所述一种磁盘组组合的总已用读取带宽与总读取带宽之和所得到的比值最小,所述总已用读取带宽表示所述一种磁盘组组合中的各个磁盘组已被占用的所述单位时间内的读取容量之和,所述总读取带宽之和用于表示所述一种磁盘组组合中的各个磁盘组所允许的所述单位时间内的最大读取容量之和。
在一个示例性实施例中,在所述将所述目标文件存储到所述目标磁盘组之后,所述方法还包括:在所述存储系统的映射模块中,记录所述目标文件与所述目标磁盘组的目标映射关系。
在一个示例性实施例中,所述方法还包括:在接收到的访问请求的情况下,在所述映射模块中查找与所述访问请求所访问的所述目标文件具有所述目标映射关系的所述目标磁盘组,并从所述目标磁盘组中读取所述目标文件。
在一个示例性实施例中,在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组之前,所述方法还包括:获取样本文件集合中的所述目标文件类型的每个文件的读取次数与写入次数,其中,所述样本文件集合包括在预设的时长内被读取的文件和被写入的文件;将所述样本文件集合中的所述目标文件类型的每个文件的读取次数之和确定为总读取次数,并将所述样本文件集合中的所述目标文件类型的每个文件的写入次数之和确定为总写入次数;将所述总读取次数除以所述时长得到的比值确定为所述目标文件类型的文件的读取频率,并将所述总写入次数除以所述时长得到的比值确定为所述目标文件类型的文件的写入频率;在所述目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,其中,P为大于或等于1的正整数。
在一个示例性实施例中,所述在所述目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,包括以下至少之一:在所述目标文件类型的文件的写入频率大于读取频率、且所述目标文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者读取频率大于写入频率、且所述目标文件类型的文件的读取频率与所述总频率的比值大于或等于第一预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,其中,所述总频率为写入频率和读取频率之和;在所述目标文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件;在所述目标文件类型的文件的写入频率大于读取频率、且所述目标文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件。
根据本申请的另一个实施例,提供了一种文件存储装置,包括:第一确定模块,用于确定目标文件的目标文件类型,其中,所述目标文件为需要存储到存储系统的文件;第二确定模块,用于在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;存储模块,用于将所述目标文件存储到所述目标磁盘组。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,采用将不同读写特征的文件存储在不同的磁盘组上的方式,由于在存储系统内包括多个磁盘组,根据每个待存储文件的文件类型所对应的读写特征,将不同类型的文件分别存储在不同的磁盘组上,在接收到读写混合请求时,可以基于读写混合请求中的读取请求所访问的文件类型,以及写入请求所对应的文件类型,分别将读取和写入请求发送到不同磁盘组上,从而实现文件之间的读/写操作的隔离,避免文件之间的读写操作相互干扰,因此,可以解决现有技术中存储系统内的文件存储方式存在对存储系统所进行的读写请求的响应效率较低的问题,达到提高对存储系统所进行的读写请求的响应效率的技术效果。
附图说明
图1是根据本申请实施例的一种文件存储方法的硬件环境示意图;
图2是根据本申请实施例的一种文件存储方法的流程示意图;
图3是根据本申请实施例的一种文件存储方法的示意图;
图4是根据本申请实施例的另一种文件存储方法的示意图;
图5是根据本申请实施例的另一种文件存储方法的流程示意图;
图6是根据本申请实施例的又一种文件存储方法的流程示意图;
图7是根据本申请实施例又一种文件存储方法的流程示意图;
图8是根据本申请实施例的一种文件存储装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种文件存储方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的文件存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种文件存储方法,图2是根据本申请实施例的一种文件存储方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S202,确定目标文件的目标文件类型,其中,目标文件为需要存储到存储系统的文件。
本实施例中的文件存储方法可以应用到对存储系统内的文件进行存储管理的场景。这里,存储系统可以是RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)卡。RAID卡是实现将服务器连接的硬盘按照RAID级别组织成多个RAID阵列的功能板卡。RAID阵列由多个磁盘组成,数据可以分块存储在不同磁盘上。
相关技术中,在混合读写请求的情况下,由于读取和写入同时发生,读取请求可能会被写入请求堵塞,同一磁盘对读写请求的响应效率会降低。
例如,使用日志结构合并树的键值存储数据时,在对存储的数据进行执行压缩操作的情况下,会来生成混合的读写操作。当应用程序请求写入操作时,RAID卡控制器首先将数据缓存到缓冲区高速缓存中,以减少延迟和写入磁盘的数量。为了更高效的处理读请求,当缓冲区缓存因脏页(即,缓存内存页中、与RAID卡下挂的磁盘中的数据不一致的数据)而满时,RAID卡控制器应首先将这些脏页刷新到磁盘。由于存储设备内部的刷新操作,在混合读写请求下,当读取和写入同时发生时,读取请求容易被大量的写入请求阻塞,导致读取性能会大幅下降。
为了至少解决上述部分问题,在本实施例中,可以基于不同文件在后期可能遇到的读取操作或写入操作的频率,将文件存储在RAID卡下挂的物理上分离的不同RAID阵列上来隔离读写操作。
如图3所示,图3中的301为文件分类模块,302为设备映射模块,303为磁盘组插槽,磁盘组插槽1上插有两块磁盘,两块磁盘构成RAID1阵列;磁盘组插槽2上插有三块磁盘,三块磁盘构成RAID5阵列;磁盘组插槽3上插有四块磁盘,四块磁盘构成RAID6阵列,以此类推。RAID卡中固件层包括驱动程序、RAID卡内核、文件系统和文件分类模块等。RAID卡内核提供底层逻辑功能,文件系统可以提供对文件和逻辑单元号LUN访问的功能。RAID卡中固件层的驱动程序实现适配各个外设的代码逻辑功能。处理器执行一些程序指令,用于处理主机I/O请求。图3中的stripe(条带),是阵列的不同分区上的位置相关的分块的集合,是组织不同分区上分块的单位。
RAID卡控制器负责RAID卡中的软件处理功能,由RAID卡控制器专门实现软件功能,硬件模块执行一些算法、数据管理以及其他一些功能,以此实现软硬分离,硬件和软件各自独立、平行工作,通过软硬分离系统架构设计提高RAID卡的I/O读写性能。
当使用多个RAID阵列时,在物理上分离的RAID阵列上部署具有不同读写特征的文件,为不同类型的文件确定合适的RAID阵列,可以实现隔离文件之间的读/写操作,从而可以提高混合读写工作负载的I/O读写性能。
在本实施例中,对于获取到的需要存储到存储系统的目标文件,可以先确定目标文件的目标文件类型,根据目标文件类型选择对应的存储阵列。
步骤S204,在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组,其中,多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,每个文件类型对应的读写特征用于表示每个文件类型的文件的读取频率与写入频率之间的大小关系。
在确定出目标文件类型的情况下,可以基于目标文件类型,选择适应于存储该目标文件的目标磁盘组。这里,目标磁盘组可以是存储系统所下挂的多个磁盘阵列中的一个或者多个阵列,
例如,在确定目标文件可以存储到图3所示的RAID1中的磁盘中时,若存储系统存在多个RAID1,可以选择一个或者多个RAID1进行目标文件的存储。
需要说明的是,在确定存储目标文件类型的文件的目标磁盘组时,可以是根据目标文件类型所对应的读写特征,确定的目标磁盘组。这里的读写特征,可以是指文件的读取频率和写入频率的大小关系,或者说文件在单位时间内的读取次数和写入次数之间大小关系以及差值与预设阈值的关系。
例如,单位时间内仅有读取操作或者仅有写入操作的文件,可以是一种文件类型。读取频率远小于写入频率的文件,可以是另一种文件类型。而读取频率与写入频率接近的文件,可以是第三种文件类型。
例如,以文件类型为日志文件、刷新输出文件和压缩输出文件为例,由于日志文件,一般是用于记录事件,在一定时间内可能对日志类的文件所进行的操作可能均是写入操作,而在出现故障时,可能会在短时间内进行较为频繁的读取操作,因此,日志文件的读写特征符合单位时间内仅有读取操作或者仅有写入操作的读写特征。
刷新输出文件,指的是先缓存在内存、再刷新到磁盘中的文件,单位时间内对刷新输出文件的读取操作和写入操作几乎相同的,因此,刷新输出文件符合而读取频率与写入频率接近的读写特征。
压缩输出文件,是对磁盘中的文件进行压缩操作后所生成的文件,单位时间内对压缩输出文件可能有大量的读取和写入操作,但写入操作比读取操作的次数大得多,因此,压缩输出文件符合读取频率远小于写入频率的读写特征。
可选地,上述读取频率和写入频率,可以是在不同场景下,根据一段时间内的对不同种类文件的读取或者写入操作的次数进行计算所确定的。
步骤S206,将目标文件存储到目标磁盘组。
需要说明的是,在目标磁盘组中包含的磁盘有多个时,可以将目标文件按照磁盘数量,切分为多个数据库,分别落入到不同的磁盘中,以完成目标文件的存储。
通过上述步骤,通过确定目标文件的目标文件类型,其中,目标文件为需要存储到存储系统的文件;在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;将目标文件存储到目标磁盘组,解决了现有技术中存储系统内的文件存储方式存在对存储系统所进行的读写请求的响应效率较低的问题,提高了对存储系统所进行的读写请求的响应效率。
其中,上述步骤的执行主体可以为服务器、终端等,但不限于此。
在一个示例性实施例中,确定目标文件的目标文件类型,包括:
S11,获取目标文件的描述参数,其中,描述参数用于表示目标文件的来源;
S12,根据描述参数,确定目标文件的目标文件类型。
在本实施例中,确定目标文件的文件类型的方式,可以是根据目标文件的描述参数确定其对应的目标文件类型。描述参数可以用于表示创建目标文件的原因,即,表示目标文件的来源。
可选地,获取目标文件的描述参数,包括:
调用存储系统上的第一预设接口,以获取描述参数,其中,第一预设接口为存储系统与目标线程之间的通信接口,目标线程用于获取目标文件。
需要说明的是,上述第一预设接口可以是API(Application ProgrammingInterface,即,应用程序编程接口),创建文件的线程将文件创建的原因传递给存储系统后端之后,存储系统中的相关文件分析器可以确定该文件所属的文件类型。
可选地,根据描述参数,确定目标文件的目标文件类型,包括以下至少之一:
在描述参数表示目标文件为待记录的日志文件的情况下,确定目标文件类型为日志文件类型;
在描述参数表示目标文件为执行刷新操作所确定的文件的情况下,确定目标文件类型为刷新文件类型,其中,刷新操作用于将存储系统的内存中的文件存储在存储系统的磁盘中,并清空内存中的文件,目标文件包括内存中的文件;
在描述参数表示目标文件是对存储系统的磁盘中的文件执行压缩操作所得到的文件的情况下,确定目标文件类型为压缩文件类型。
需要说明的是,对于已存储在磁盘中的日志文件,在需要读取时,可以暂停新日志的写入。而对于刷新文件,在该文件还在内存中时,可以直接从内存中进行读取,内存中不在缓存、并存储在磁盘中后,对于该文件的读取操作,可以是从磁盘中直接读取。
此外,由于压缩是按排序顺序合并数据的任务,在进行压缩操作时,压缩的文件可以包括存储到磁盘中的刷新文件,也可以包括之前的压缩操作所生成的文件,且压缩操作本次生成的目标文件,也可以在后续的压缩操作中被一起引用。压缩操作中,读写操作可以是混合的。
通过本实施例,通过待存储文件的来源,确定待存储文件的文件类型,可以提高确定文件类型的效率。
在一个示例性实施例中,在确定目标文件类型为刷新文件类型之前,上述方法还包括:
S21,在内存中存储的文件大于或者等于预设的内存的容量阈值的情况下,对内存中的文件执行刷新操作。
存储系统可以包括其内部的内存和下挂的磁盘组,在内存中进行数据读取和写入,要高于在磁盘组中进行数据读取和写入的效率,但存储系统内的内存的容量是有限的。因此,在本实施例中,可以先将数据存储在内存中,在内存中存储的文件大于或者等于预设的内存的容量阈值时,可以执行刷新作业,对内存中的文件进行刷新,并同时在对应磁盘中存储内存中的文件。
上述内存可以是名为Mem table(,内存表)的内存,在磁盘上生成的对应文件可以是名为SSTable(Sorted String Table,基线数据)的文件。
通过本实施例,在内存中的文件大于预设容量阈值时,刷新内存,可以使新数据及时写入内存中,提高存储系统的写入效率。
在一个示例性实施例中,日志文件类型、刷新文件类型以及压缩文件类型的读写特征可以是不同的,三种文件类型可以对应有三种不同的读写特征,即,第一读写特征,第二读写特征和第三读写特征。
S31,日志文件类型对应第一读写特征,其中,第一读写特征用于表示日志文件类型的文件的写入频率大于读取频率、且日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者日志文件类型的文件的读取频率大于写入频率、且日志文件类型的文件的读取频率与总频率的比值大于或等于第一预设阈值,总频率为写入频率和读取频率之和;和/或,
S32,刷新文件类型对应第二读写特征,其中,第二读写特征用于表示刷新文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值;和/或,
S33,压缩文件类型对应第三读写特征,其中,第三读写特征用于表示压缩文件类型的文件的写入频率大于读取频率、且压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值。
需要说明的是,上述第一预设阈值为小于或者等于1的数。上述第二预设阈值、第三预设阈值为正整数,第二预设阈值小于第三预设阈值。
上述日志文件类型的文件的写入频率大于读取频率、且日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,表示单位时间内,对于日志文件仅有写入操作。上述日志文件类型的文件的读取频率大于写入频率、且日志文件类型的文件的读取频率与总频率的比值大于或等于第一预设阈值,表示单位时间内,对于日志文件仅有读取操作。
上述刷新文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值,可以表示单位时间内,对于刷新文件的写入频率,与其读取频率接近。
上述压缩文件类型的文件的写入频率大于读取频率、且压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值,表示单位时间,对于刷新文件的写入频率,要远大于其读取频率。
可选地,在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组之前,上述方法还包括:
获取样本文件集合中的目标文件类型的每个文件的读取次数与写入次数,其中,样本文件集合包括在预设的时长内被读取的文件和被写入的文件;
将样本文件集合中的目标文件类型的每个文件的读取次数之和确定为总读取次数,并将样本文件集合中的目标文件类型的每个文件的写入次数之和确定为总写入次数;
将总读取次数除以时长得到的比值确定为目标文件类型的文件的读取频率,并将总写入次数除以时长得到的比值确定为目标文件类型的文件的写入频率;
在目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件,其中,P为大于或等于1的正整数。
需要说明的是,上述样本文件集合,可以是预先采集到的、包含前述三种文件类型的多个样本文件,样本文件集合可以包括在预设的时长内被读取的文件和被写入的文件。这里的预设的时长,可以由多个前述单位时间组成。
可选地,在目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件,包括以下至少之一:
在目标文件类型的文件的写入频率大于读取频率、且日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者读取频率大于写入频率、且日志文件类型的文件的读取频率与总频率的比值大于或等于第一预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件,其中,总频率为写入频率和读取频率之和;
在目标文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件;
在目标文件类型的文件的写入频率大于读取频率、且压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件。
需要说明的是,在根据目标文件类型的文件的读取频率与写入频率之间的大小关系,确定其符合的读写特征之后,可以从多个磁盘组中选择P个磁盘组作为存储该目标文件类型的文件。这里,P个磁盘组可以是存储系统的多个磁盘组中未被设置为用于存储其他任何文件类型的文件的磁盘组。P个磁盘组也可以是存储系统的多个磁盘组中、已被设置为用于存储一种文件类型的文件,且一种文件类型对应的读写特征与目标文件类型对应的读写特征对应的磁盘组。
后续在新生成目标文件类型的文件之后,可以直接根据预先确定的目标文件类型与P个磁盘组之间的对应关系,从P个磁盘组中选择一个或多个磁盘组来存储此次新生成目标文件类型的文件。
通过本实施例,通过将不同读写特征的文件放入物理上分离的不同磁盘组中,可以实现对I/O读写操作的隔离,从而提高了混合读写工作负载的I/O读写性能。
在一个示例性实施例中,在确定目标文件类型为压缩文件类型之前,上述方法还包括以下之一:
S41,在存储系统的磁盘中存储的文件的总容量大于或者等于预设的第一容量阈值的情况下,对存储系统的磁盘中存储的至少部分文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的至少部分文件执行压缩操作所得到的文件;
S42,在存储系统的磁盘中存储的文件等级为目标等级的文件的总容量大于或者等于预设的第二容量阈值的情况下,对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作所得到的文件;
S43,在存储系统的磁盘中存储的文件等级高于目标等级的文件的总容量大于或者等于预设的第三容量阈值的情况下,对存储系统的磁盘中存储的文件等级高于目标等级的文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的文件等级高于目标等级的文件执行压缩操作所得到的文件。
在本实施例中,对于压缩操作的执行触发条件,可以是在磁盘中存储的全部文件的总容量大于或者等于预设的第一容量阈值时,对该磁盘中存储的至少部分文件执行压缩操作。
此外,也可以对存储系统的磁盘中的文件进行级别划分,每个级别所对应的文件的容量设置一定阈值。例如,刷新作业生成的文件作为0级SST (L0 SST)文件存储在RAID阵列上。L0 SST文件包含最新的有效数据。压缩作业生成的文件作为更高级别的(L1+ SST)文件存储在RAID阵列上。
需要说明的是,上述数据级别的划分,可以用于将不同级别的数据存储在不同磁盘组中。例如,级别较高的数据,可以将其存储在性能较高或者寿命较长的磁盘组中。
在每个级别所对应的数据的总容量大于该级别所对应的阈值时,就可以启动对该级别数据的压缩操作。在本实施例中,在存储系统的磁盘中存储的文件的总容量大于或者等于预设的第一容量阈值时,可以对存储系统的磁盘中存储的至少部分文件执行压缩操作。
此外,还可以在磁盘中存储的文件等级高于目标等级的文件的总容量大于或者等于预设的第三容量阈值时,对磁盘中存储的文件等级高于目标等级的文件执行压缩操作。例如,以目标等级为1级数据文件为例,在大于1级的全部文件的总容量大于一定阈值时,可以对大于1级的全部文件进行压缩。
可选地,在确定目标文件类型为压缩文件类型之前,上述方法还包括:
在当前时刻满足预设时间间隔的情况下,对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作,其中,预设时间间隔为对目标等级的文件执行相邻两次压缩操作的时间间隔。
在不满足上述条件时,如果某一级别或者某个磁盘内的数据,与其前次压缩操作之间的时间间隔已达到预设间隔时间,也可以触发对该数据的压缩操作。
上述预设间隔时间,可以是由用户自己配置的时间,可以由CLI(Command-LineInterface,命令行)或者GUI(Graphical User Interface,图形用户界面)指定。
通过本实施例,在对应文件的总容量达到对应预设阈值时,触发对该文件的压缩擦做,可以在不增加磁盘的情况下,增加磁盘内所能存储的文件数量。
在一个示例性实施例中,在确定目标文件类型为压缩文件类型之后,上述方法还包括:
S51,确定压缩操作的开始时间和结束时间;
S52,将生成时间位于开始时间与结束时间之间的文件确定为目标文件。
在本实施例中,对于压缩操作所生成的待存储至磁盘的文件,可以启动作业阶段检测器,来识别每个压缩作业的开始和结束,从而区分由同一压缩作业生成的文件组,避免对同一压缩作业所生成的部分文件的遗漏。
可选地,确定压缩操作的开始时间和结束时间,包括:
通过存储系统的第二预设接口,获取压缩操作的开始时间和结束时间。
需要说明的是,上述第二预设接口与前述第一预设接口,可以是两个独立的接口,也可以是同一个接口,本实施例在此不做限定。
例如,以存储系统为RAID卡为例,如图4所示,RAID卡后端存储部分包括一个文件分类模块和一个设备映射模块,其中文件分类模块由两部分组成,分别是一个文件分析器和一个作业阶段检测器。文件分类模块识别文件类型并检测文件生成阶段。对于日志文件,除非RAID卡发生系统崩溃,否则RAID卡只按顺序执行写操作。另一方面,由于定期压缩作业,每个SST文件的读写操作是混合的。由于压缩是按排序顺序合并数据的任务,压缩作业生成的输出文件在后续压缩作业中被一起引用。在文件生成时,文件分析器首先识别文件类型。通过AID卡后端定义的一个新的接口,可以给出文件创建的原因。创建文件的线程将文件创建的原因(如日志记录、刷新和压缩)传递给RAID卡后端。根据这些信息,文件分析器将文件分为上述三种类型。
作业阶段检测器可以识别每个压缩作业的开始和结束,以区分由同一压缩作业生成的文件组。为了识别每个压缩作业的开始和结束,可以定义一个新的接口,向RAID卡后端通知压缩作业的开始和结束。作业阶段检测器通过通知接口维护关于每个压缩阶段的信息。此外,作业阶段检测器还可以将当前压缩阶段信息传输到设备映射模块,由设备映射模块根据压缩阶段信息将文件部署到合适的RAID阵列。
通过本实施例,在存储文件之前,先确定对应压缩操作的开始和结束时间,可以确保每个压缩作业生成的文件都被正确归类,并避免混淆和遗漏。
在一个示例性实施例中,在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组,包括:
在多个磁盘组中存在N个磁盘组、且N个磁盘组均用于存储目标文件类型的文件、N为大于或等于2的正整数的情况下,根据目标文件所需的目标写入带宽,在N个磁盘组中确定M个磁盘组,其中,目标磁盘组包括M个磁盘组,M为大于或等于1、且小于或等于N的正整数,目标写入带宽表示在存储目标文件时单位时间内所需的写入容量,M个磁盘组的总空闲写入带宽大于或等于目标写入带宽,总空闲写入带宽表示M个磁盘组所允许的单位时间内的写入容量。
在本实施例中,在确定目标文件所对应的目标文件类型之后,可以先确定存储该目标文件类型的文件的磁盘组的类型,再根据目标文件所需要的目标写入带宽,来选择磁盘组的数量。目标写入带宽可以表示在存储目标文件时单位时间内所需的写入容量。
需要说明的是,若存储系统中用于存储目标文件类型的文件的磁盘组的数量仅有一个,那么可以直接确定将目标文件存储在该磁盘组中,不需要考虑其带宽。
若存储系统中用于存储目标文件类型的文件的磁盘组的数量为N(N为大于或等于2的正整数),可以根据目标文件所需的写入带宽,选择一定数量的磁盘组。
上述目标写入带宽可以表示在存储目标文件时单位时间内所需的写入容量,例如,目标文件的容量为110M,单位时间内所需的写入容量为11M/每秒。
通过本实施例,通过文件所需的带宽,确定存储该文件的RAID阵列数量,可以提高文件存储的效率,同时,还可以提高后续对该文件所进行的读取或写入操作的效率。
在一个示例性实施例中,根据目标文件所需的目标写入带宽,在N个磁盘组中确定M个磁盘组,包括:
S61,在N个磁盘组中存在K个磁盘组、且K个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于目标写入带宽的情况下,在K个磁盘组中选择一个磁盘组,其中,M等于1,M个磁盘组包括一个磁盘组,K为大于或等于2、且小于或等于N的正整数。
在用于存储目标文件类型的文件的多个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于目标写入带宽时,可以仅选择其中一个磁盘组作为存储目标文件的磁盘组。
可选地,在K个磁盘组中选择一个磁盘组,包括以下之一:
在K个磁盘组中随机选择一个磁盘组;
在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的空闲写入带宽最大;
在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的空闲写入带宽除以总写入带宽所得到的比值最大,总写入带宽表示一个磁盘组所允许的单位时间内的最大写入容量;
在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的已用读取带宽最小,或,一个磁盘组的已用读取带宽与总读取带宽所得到的比值最小,已用读取带宽表示一个磁盘组已被占用的单位时间内的读取容量,总读取带宽用于表示一个磁盘组所允许的单位时间内的最大读取容量。
需要说明的是,本实施例中的带宽,可以是指在传输文件时所需要的网络带宽,即,单位时间内可以传输的数据量。由于磁盘组本身性能以及当前接收到的访问请求的情况,不同磁盘组的所能提供的写入或者读取带宽,以及空闲写入或者空闲读取带宽可以是不同的。
在确定K个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于目标写入带宽时,可以随机选择一个磁盘组作为存储目标文件的磁盘组,也可以选择当前带宽最优的磁盘组作为存储目标文件的磁盘组。这里的带宽最优,可以是值磁盘组当前的空闲写入带宽最大,也可以是指磁盘组当前的空闲写入带宽除以总写入带宽所得到的比值最大,也可以是指磁盘组的已用读取带宽最小,还可以是指磁盘组的已用读取带宽与总读取带宽所得到的比值最小。
在一个示例性实施例中,根据目标文件所需的目标写入带宽,在N个磁盘组中确定M个磁盘组,包括:
S71,在N个磁盘组中存在R种磁盘组组合、且每种磁盘组组合包括至少两个磁盘组,每种磁盘组组合的总空闲写入带宽均大于或等于目标写入带宽的情况下,在R种磁盘组组合中选择一种磁盘组组合,其中,M等于2,M个磁盘组包括一种磁盘组组合中的各个磁盘组,第i种磁盘组组合的总空闲写入带宽表示第i种磁盘组组合中的各个磁盘组的空闲写入带宽之和,R为大于或等于2的正整数,i为大于或等于1的正整数。
在用于存储目标文件类型的文件的多个磁盘组中,存在多种、至少两个磁盘组组合后的空闲写入带宽之和大于或等于目标写入带宽时,可以按照其中一种组合方式,选择磁盘组作为存储目标文件的磁盘组。
可选地,在R种磁盘组组合中选择一种磁盘组组合,包括以下之一:
在R种磁盘组组合中随机选择一种磁盘组组合;
在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总空闲写入带宽最大;
在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总空闲写入带宽除以总写入带宽之和所得到的比值最大,总写入带宽之和表示一种磁盘组组合中的各个磁盘组所允许的单位时间内的最大写入容量之和;
在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总已用读取带宽最小,或,一种磁盘组组合的总已用读取带宽与总读取带宽之和所得到的比值最小,总已用读取带宽表示一种磁盘组组合中的各个磁盘组已被占用的单位时间内的读取容量之和,总读取带宽之和用于表示一种磁盘组组合中的各个磁盘组所允许的单位时间内的最大读取容量之和。
对于磁盘组组合的选取方式,可以与前述选择一个磁盘组时所用的方式类似,本实施例在此不做赘述。
需要说明的是,每个磁盘组上的空闲写入带宽或者已用写入带宽,可以是根据每个磁盘组上的当前I/O操作状态确定的。以压缩作业为例,可以由压缩作业的定时器线程将当前作业的输入文件列表通知给设备映射模块,由设备映射模块识别每个RAID阵列的当前I/O操作状态。
上述设备映射模块,可以用于将新文件部署在适当的RAID阵列上,为了给每个文件决定合适的RAID阵列,设备映射模块可以先考虑每个文件类型所需的带宽。向日志文件写入数据的目的是在RAID卡系统崩溃时提供数据一致性。因此,在RAID卡工作负载运行期间,会持续将少量的数据写入日志文件。这意味着即使少量的RAID阵列也可以提供足够的带宽将数据写入日志文件。另一方面,对于因刷新或压缩作业而生成的数据文件(SST文件),后续压缩作业会同时读写大量文件。因此,数据文件所需的带宽很高,因此设备映射模块会为数据文件分配多个RAID阵列。根据不同文件类型所需的带宽,设备映射器设备映射模块会识别当前正在被执行读取操作的RAID阵列,选择适合的RAID阵列,并决定每种文件类型的RAID阵列数量。然后,由映射器将文件部署到专用于不同文件类型的RAID阵列上。
通过本实施例,基于每个磁盘组当前空闲的带宽,以及目标文件所需要的写入带宽,来选择存储目标文件的磁盘组的数量,可以提高文件存储的效率。
在一个示例性实施例中,在将目标文件存储到目标磁盘组之后,上述方法还包括:
S81,在存储系统的映射模块中,记录目标文件与目标磁盘组的目标映射关系。
在本实施例中,存储系统的映射模块中可以记录有磁盘组和其存储的文件之间的映射关系。在将目标文件存储到目标磁盘组之后,映射模块中可以新增目标文件与目标磁盘组的映射关系。
上述映射模块,可以是前述设备映射模块,设备映射模块除了为每种文件类型的文件确定RAID阵列之外,还可以维护和管理文件和多个RAID阵列之间的映射信息。
可选地,上述方法还包括:
在接收到的访问请求的情况下,在映射模块中查找与访问请求所访问的目标文件具有目标映射关系的目标磁盘组,并从目标磁盘组中读取目标文件。
上述访问请求可以是对目标文件的读取请求。
通过本实施例,通过存储系统中记录的文件与磁盘组之间的映射关系,可以提高数据访问的效率。
下面结合可选示例对本申请实施例中的文件存储方法进行解释说明。本可选示例中提供了一种RAID卡的I/O读写隔离方法,将待存储到磁盘组中的文件分为三类:日志文件、刷新输出文件和压缩输出文件。根据每种文件类型的读写特征,为每个文件部署合适的RAID阵列。通过将文件存储在RAID卡下挂的物理上分离的不同RAID阵列上来隔离文件之间的读写操作,可以有效提升RAID卡的I/O读写性能。
如图5所示,本可选示例中的文件存储方法的流程可以包括以下步骤:
步骤S502,在目标文件生成时,由文件分类模块识别文件类型。
如图6所示,文件分类模块中的文件分析器,通过API接口,可以获取文件创建的原因,进而确定目标文件的文件类型。在确定目标文件为日志文件或者刷新输出文件时,直接将文件类型的识别结果传输给设备映射模块,在确定目标文件为压缩输出文件时,启动作业阶段检测器通过相关API接口,获取每个压缩作业的开始时间和结束时间,以确定的与目标文件对应的压缩作业所生成的文件组,并将包括目标文件在内的文件组的识别结果传输给设备映射模块,以由设备映射模块将其部署到相同RAID阵列上。
步骤S504,设备映射模块根据确定的文件类型为目标文件确定合适的RAID阵列。
如图7所示,设备映射模块首先考虑目标文件所需的带宽,以确定适合目标文件所对应的RAID阵列类型以及阵列数量,再识别每个RAID阵列的当前I/O操作状态,以选择出当前目标文件最适宜的RAID阵列。
通过本可选示例,通过将不同读写特征的文件存储在RAID卡下挂的物理上分离的不同RAID阵列上,可以隔离部分文件之间的读写操作,提升RAID卡的读写性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
在本实施例中还提供了一种文件存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的文件存储装置的结构框图,如图8所示,该装置包括:
第一确定模块802,用于确定目标文件的目标文件类型,其中,目标文件为需要存储到存储系统的文件;
第二确定模块804,用于在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;
存储模块806,用于将目标文件存储到目标磁盘组。
通过本申请实施例,确定目标文件的目标文件类型,其中,目标文件为需要存储到存储系统的文件;在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组,其中,存储系统包括多个磁盘组,多个磁盘组包括目标磁盘组,多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,每个文件类型对应的读写特征用于表示每个文件类型的文件的读取频率与写入频率之间的大小关系;将目标文件存储到目标磁盘组,可以解决现有技术中存储系统内的文件存储方式存在对存储系统所进行的读写请求的响应效率较低的问题。
在一个示例性实施例中,第一确定模块包括:
第一获取子模块,用于获取目标文件的描述参数,其中,描述参数用于表示目标文件的来源;
第一确定子模块,用于根据描述参数,确定目标文件的目标文件类型。
在一个示例性实施例中,第一获取子模块包括:
调用单元,用于调用存储系统上的第一预设接口,以获取描述参数,其中,第一预设接口为存储系统与目标线程之间的通信接口,目标线程用于获取目标文件。
在一个示例性实施例中,第一确定子模块包括以下至少之一:
第一确定单元,用于在描述参数表示目标文件为待记录的日志文件的情况下,确定目标文件类型为日志文件类型;
第二确定单元,用于在描述参数表示目标文件为执行刷新操作所确定的文件的情况下,确定目标文件类型为刷新文件类型,其中,刷新操作用于将存储系统的内存中的文件存储在存储系统的磁盘中,并清空内存中的文件,目标文件包括内存中的文件;
第三确定单元,用于在描述参数表示目标文件是对存储系统的磁盘中的文件执行压缩操作所得到的文件的情况下,确定目标文件类型为压缩文件类型。
在一个示例性实施例中,上述装置还包括:
刷新模块,用于在确定目标文件类型为刷新文件类型之前,在内存中存储的文件大于或者等于预设的内存的容量阈值的情况下,对内存中的文件执行刷新操作。
在一个示例性实施例中,日志文件类型对应第一读写特征,其中,第一读写特征用于表示日志文件类型的文件的写入频率大于读取频率、且日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者日志文件类型的文件的读取频率大于写入频率、且日志文件类型的文件的读取频率与总频率的比值大于或等于第一预设阈值,总频率为写入频率和读取频率之和;和/或,
刷新文件类型对应第二读写特征,其中,第二读写特征用于表示刷新文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值;和/或,
压缩文件类型对应第三读写特征,其中,第三读写特征用于表示压缩文件类型的文件的写入频率大于读取频率、且压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值。
在一个示例性实施例中,上述装置还包括以下之一:
第一执行模块,用于在确定目标文件类型为压缩文件类型之前,在存储系统的磁盘中存储的文件的总容量大于或者等于预设的第一容量阈值的情况下,对存储系统的磁盘中存储的至少部分文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的至少部分文件执行压缩操作所得到的文件;
第二执行模块,用于在存储系统的磁盘中存储的文件等级为目标等级的文件的总容量大于或者等于预设的第二容量阈值的情况下,对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作所得到的文件;
第三执行模块,用于在存储系统的磁盘中存储的文件等级高于目标等级的文件的总容量大于或者等于预设的第三容量阈值的情况下,对存储系统的磁盘中存储的文件等级高于目标等级的文件执行压缩操作,其中,目标文件是对存储系统的磁盘中存储的文件等级高于目标等级的文件执行压缩操作所得到的文件。
在一个示例性实施例中,上述装置还包括:
第四执行模块,用于在确定目标文件类型为压缩文件类型之前,在当前时刻满足预设时间间隔的情况下,对存储系统的磁盘中存储的文件等级为目标等级的文件执行压缩操作,其中,预设时间间隔为对目标等级的文件执行相邻两次压缩操作的时间间隔。
在一个示例性实施例中,上述装置还包括:
第三确定模块,用于在确定目标文件类型为压缩文件类型之后,确定压缩操作的开始时间和结束时间;
第四确定模块,用于将生成时间位于开始时间与结束时间之间的文件确定为目标文件。
在一个示例性实施例中,第三确定模块包括:
第二获取子模块,用于通过存储系统的第二预设接口,获取压缩操作的开始时间和结束时间。
在一个示例性实施例中,第二确定模块包括:
第二确定子模块,用于在多个磁盘组中存在N个磁盘组、且N个磁盘组均用于存储目标文件类型的文件、N为大于或等于2的正整数的情况下,根据目标文件所需的目标写入带宽,在N个磁盘组中确定M个磁盘组,其中,目标磁盘组包括M个磁盘组,M为大于或等于1、且小于或等于N的正整数,目标写入带宽表示在存储目标文件时单位时间内所需的写入容量,M个磁盘组的总空闲写入带宽大于或等于目标写入带宽,总空闲写入带宽表示M个磁盘组所允许的单位时间内的写入容量。
在一个示例性实施例中,第二确定子模块包括:
第一选择单元,用于在N个磁盘组中存在K个磁盘组、且K个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于目标写入带宽的情况下,在K个磁盘组中选择一个磁盘组,其中,M等于1,M个磁盘组包括一个磁盘组,K为大于或等于2、且小于或等于N的正整数。
在一个示例性实施例中,第一选择单元包括以下之一:
第一选择子单元,用于在K个磁盘组中随机选择一个磁盘组;
第二选择子单元,用于在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的空闲写入带宽最大;
第三选择子单元,用于在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的空闲写入带宽除以总写入带宽所得到的比值最大,总写入带宽表示一个磁盘组所允许的单位时间内的最大写入容量;
第四选择子单元,用于在K个磁盘组中选择一个磁盘组,其中,在K个磁盘组中,一个磁盘组的已用读取带宽最小,或,一个磁盘组的已用读取带宽与总读取带宽所得到的比值最小,已用读取带宽表示一个磁盘组已被占用的单位时间内的读取容量,总读取带宽用于表示一个磁盘组所允许的单位时间内的最大读取容量。
在一个示例性实施例中,第二确定子模块包括:
第二选择单元,用于在N个磁盘组中存在R种磁盘组组合、且每种磁盘组组合包括至少两个磁盘组,每种磁盘组组合的总空闲写入带宽均大于或等于目标写入带宽的情况下,在R种磁盘组组合中选择一种磁盘组组合,其中,M等于2,M个磁盘组包括一种磁盘组组合中的各个磁盘组,第i种磁盘组组合的总空闲写入带宽表示第i种磁盘组组合中的各个磁盘组的空闲写入带宽之和,R为大于或等于2的正整数,i为大于或等于1的正整数。
在一个示例性实施例中,第二选择单元包括以下之一:
第五选择子单元,用于在R种磁盘组组合中随机选择一种磁盘组组合;
第六选择子单元,用于在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总空闲写入带宽最大;
第七选择子单元,用于在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总空闲写入带宽除以总写入带宽之和所得到的比值最大,总写入带宽之和表示一种磁盘组组合中的各个磁盘组所允许的单位时间内的最大写入容量之和;
第八选择子单元,用于在R种磁盘组组合中选择一种磁盘组组合,其中,在R种磁盘组组合中,一种磁盘组组合的总已用读取带宽最小,或,一种磁盘组组合的总已用读取带宽与总读取带宽之和所得到的比值最小,总已用读取带宽表示一种磁盘组组合中的各个磁盘组已被占用的单位时间内的读取容量之和,总读取带宽之和用于表示一种磁盘组组合中的各个磁盘组所允许的单位时间内的最大读取容量之和。
在一个示例性实施例中,上述装置还包括:
记录模块,用于在将目标文件存储到目标磁盘组之后,在存储系统的映射模块中,记录目标文件与目标磁盘组的目标映射关系。
在一个示例性实施例中,上述装置还包括:
第五执行模块,用于在接收到的访问请求的情况下,在映射模块中查找与访问请求所访问的目标文件具有目标映射关系的目标磁盘组,并从目标磁盘组中读取目标文件。
在一个示例性实施例中,上述装置还包括:
获取模块,用于在存储系统的多个磁盘组中确定用于存储目标文件类型的文件的目标磁盘组之前,获取样本文件集合中的目标文件类型的每个文件的读取次数与写入次数,其中,样本文件集合包括在预设的时长内被读取的文件和被写入的文件;
第五确定模块,用于将样本文件集合中的目标文件类型的每个文件的读取次数之和确定为总读取次数,并将样本文件集合中的目标文件类型的每个文件的写入次数之和确定为总写入次数;
第六确定模块,用于将总读取次数除以时长得到的比值确定为目标文件类型的文件的读取频率,并将总写入次数除以时长得到的比值确定为目标文件类型的文件的写入频率;
设置模块,用于在目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件,其中,P为大于或等于1的正整数。
在一个示例性实施例中,设置模块,包括以下至少之一:
第一设置子模块,用于在目标文件类型的文件的写入频率大于读取频率、且目标文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者读取频率大于写入频率、且目标文件类型的文件的读取频率与总频率的比值大于或等于第一预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件,其中,总频率为写入频率和读取频率之和;
第二设置子模块,用于在目标文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件;
第三设置子模块,用于在目标文件类型的文件的写入频率大于读取频率、且目标文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值的情况下,将多个磁盘组中的P个磁盘组设置为用于存储目标文件类型的文件。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (21)

1.一种文件存储方法,其特征在于,
包括:
确定目标文件的目标文件类型,其中,所述目标文件为需要存储到存储系统的文件;
在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;
将所述目标文件存储到所述目标磁盘组;
其中,所述在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,包括:在所述多个磁盘组中存在N个磁盘组、且所述N个磁盘组均用于存储所述目标文件类型的文件、N为大于或等于2的正整数的情况下,根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,其中,所述目标磁盘组包括所述M个磁盘组,M为大于或等于1、且小于或等于N的正整数,所述目标写入带宽表示在存储所述目标文件时单位时间内所需的写入容量,所述M个磁盘组的总空闲写入带宽大于或等于所述目标写入带宽,所述总空闲写入带宽表示所述M个磁盘组所允许的所述单位时间内的写入容量。
2.根据权利要求1所述的方法,其特征在于,
所述确定目标文件的目标文件类型,包括:
获取所述目标文件的描述参数,其中,所述描述参数用于表示所述目标文件的来源;
根据所述描述参数,确定所述目标文件的所述目标文件类型。
3.根据权利要求2所述的方法,其特征在于,
所述获取所述目标文件的描述参数,包括:
调用所述存储系统上的第一预设接口,以获取所述描述参数,其中,所述第一预设接口为所述存储系统与目标线程之间的通信接口,所述目标线程用于获取所述目标文件。
4.根据权利要求2所述的方法,其特征在于,
所述根据所述描述参数,确定所述目标文件的所述目标文件类型,包括以下至少之一:
在所述描述参数表示所述目标文件为待记录的日志文件的情况下,确定所述目标文件类型为日志文件类型;
在所述描述参数表示所述目标文件为执行刷新操作所确定的文件的情况下,确定所述目标文件类型为刷新文件类型,其中,所述刷新操作用于将所述存储系统的内存中的文件存储在所述存储系统的磁盘中,并清空所述内存中的文件,所述目标文件包括所述内存中的文件;
在所述描述参数表示所述目标文件是对所述存储系统的磁盘中的文件执行压缩操作所得到的文件的情况下,确定所述目标文件类型为压缩文件类型。
5.根据权利要求4所述的方法,其特征在于,
在确定所述目标文件类型为刷新文件类型之前,所述方法还包括:
在所述内存中存储的文件大于或者等于预设的所述内存的容量阈值的情况下,对所述内存中的文件执行所述刷新操作。
6.根据权利要求4所述的方法,其特征在于,
所述日志文件类型对应第一读写特征,其中,所述第一读写特征用于表示所述日志文件类型的文件的写入频率大于读取频率、且所述日志文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者所述日志文件类型的文件的读取频率大于写入频率、且所述日志文件类型的文件的读取频率与所述总频率的比值大于或等于第一预设阈值,所述总频率为写入频率和读取频率之和;和/或,
所述刷新文件类型对应第二读写特征,其中,所述第二读写特征用于表示所述刷新文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值;和/或,
所述压缩文件类型对应第三读写特征,其中,所述第三读写特征用于表示所述压缩文件类型的文件的写入频率大于读取频率、且所述压缩文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值。
7.根据权利要求4所述的方法,其特征在于,
在确定所述目标文件类型为压缩文件类型之前,所述方法还包括以下之一:
在所述存储系统的磁盘中存储的文件的总容量大于或者等于预设的第一容量阈值的情况下,对所述存储系统的磁盘中存储的至少部分文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的所述至少部分文件执行所述压缩操作所得到的文件;
在所述存储系统的磁盘中存储的文件等级为目标等级的文件的总容量大于或者等于预设的第二容量阈值的情况下,对所述存储系统的磁盘中存储的文件等级为所述目标等级的文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的文件等级为所述目标等级的文件执行所述压缩操作所得到的文件;
在所述存储系统的磁盘中存储的文件等级高于目标等级的文件的总容量大于或者等于预设的第三容量阈值的情况下,对所述存储系统的磁盘中存储的文件等级高于所述目标等级的文件执行所述压缩操作,其中,所述目标文件是对所述存储系统的磁盘中存储的文件等级高于所述目标等级的文件执行所述压缩操作所得到的文件。
8.根据权利要求4所述的方法,其特征在于,
在所述确定所述目标文件类型为压缩文件类型之前,所述方法还包括:
在当前时刻满足预设时间间隔的情况下,对所述存储系统的磁盘中存储的文件等级为目标等级的文件执行所述压缩操作,其中,所述预设时间间隔为对所述目标等级的文件执行相邻两次压缩操作的时间间隔。
9.根据权利要求4所述的方法,其特征在于,
在所述确定所述目标文件类型为压缩文件类型之后,所述方法还包括:
确定所述压缩操作的开始时间和结束时间;
将生成时间位于所述开始时间与所述结束时间之间的文件确定为所述目标文件。
10.根据权利要求9所述的方法,其特征在于,
所述确定所述压缩操作的开始时间和结束时间,包括:
通过所述存储系统的第二预设接口,获取所述压缩操作的开始时间和结束时间。
11.根据权利要求1所述的方法,其特征在于,
所述根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,包括:
在所述N个磁盘组中存在K个磁盘组、且所述K个磁盘组中的每个磁盘组的空闲写入带宽均大于或等于所述目标写入带宽的情况下,在所述K个磁盘组中选择一个磁盘组,其中,M等于1,所述M个磁盘组包括所述一个磁盘组,K为大于或等于2、且小于或等于N的正整数。
12.根据权利要求11所述的方法,其特征在于,
所述在所述K个磁盘组中选择一个磁盘组,包括以下之一:
在所述K个磁盘组中随机选择一个磁盘组;
在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的空闲写入带宽最大;
在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的空闲写入带宽除以总写入带宽所得到的比值最大,所述总写入带宽表示所述一个磁盘组所允许的所述单位时间内的最大写入容量;
在所述K个磁盘组中选择一个磁盘组,其中,在所述K个磁盘组中,所述一个磁盘组的已用读取带宽最小,或,所述一个磁盘组的已用读取带宽与总读取带宽所得到的比值最小,所述已用读取带宽表示所述一个磁盘组已被占用的所述单位时间内的读取容量,所述总读取带宽用于表示所述一个磁盘组所允许的所述单位时间内的最大读取容量。
13.根据权利要求1所述的方法,其特征在于,
所述根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,包括:
在所述N个磁盘组中存在R种磁盘组组合、且每种磁盘组组合包括至少两个磁盘组,所述每种磁盘组组合的总空闲写入带宽均大于或等于所述目标写入带宽的情况下,在所述R种磁盘组组合中选择一种磁盘组组合,其中,M等于2,所述M个磁盘组包括所述一种磁盘组组合中的各个磁盘组,第i种磁盘组组合的总空闲写入带宽表示所述第i种磁盘组组合中的各个磁盘组的空闲写入带宽之和,R为大于或等于2的正整数,i为大于或等于1的正整数。
14.根据权利要求13所述的方法,其特征在于,
所述在所述R种磁盘组组合中选择一种磁盘组组合,包括以下之一:
在所述R种磁盘组组合中随机选择一种磁盘组组合;
在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总空闲写入带宽最大;
在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总空闲写入带宽除以总写入带宽之和所得到的比值最大,所述总写入带宽之和表示所述一种磁盘组组合中的各个磁盘组所允许的所述单位时间内的最大写入容量之和;
在所述R种磁盘组组合中选择一种磁盘组组合,其中,在所述R种磁盘组组合中,所述一种磁盘组组合的总已用读取带宽最小,或,所述一种磁盘组组合的总已用读取带宽与总读取带宽之和所得到的比值最小,所述总已用读取带宽表示所述一种磁盘组组合中的各个磁盘组已被占用的所述单位时间内的读取容量之和,所述总读取带宽之和用于表示所述一种磁盘组组合中的各个磁盘组所允许的所述单位时间内的最大读取容量之和。
15.根据权利要求1所述的方法,其特征在于,
在所述将所述目标文件存储到所述目标磁盘组之后,所述方法还包括:
在所述存储系统的映射模块中,记录所述目标文件与所述目标磁盘组的目标映射关系。
16.根据权利要求15所述的方法,其特征在于,
所述方法还包括:
在接收到的访问请求的情况下,在所述映射模块中查找与所述访问请求所访问的所述目标文件具有所述目标映射关系的所述目标磁盘组,并从所述目标磁盘组中读取所述目标文件。
17.根据权利要求1至16中任一项所述的方法,其特征在于,
在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组之前,所述方法还包括:
获取样本文件集合中的所述目标文件类型的每个文件的读取次数与写入次数,其中,所述样本文件集合包括在预设的时长内被读取的文件和被写入的文件;
将所述样本文件集合中的所述目标文件类型的每个文件的读取次数之和确定为总读取次数,并将所述样本文件集合中的所述目标文件类型的每个文件的写入次数之和确定为总写入次数;
将所述总读取次数除以所述时长得到的比值确定为所述目标文件类型的文件的读取频率,并将所述总写入次数除以所述时长得到的比值确定为所述目标文件类型的文件的写入频率;
在所述目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,其中,P为大于或等于1的正整数。
18.根据权利要求17所述的方法,其特征在于,
所述在所述目标文件类型的文件的读取频率与写入频率之间的大小关系满足预设的读写隔离条件的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,包括以下至少之一:
在所述目标文件类型的文件的写入频率大于读取频率、且所述目标文件类型的文件的写入频率与总频率的比值大于或等于第一预设阈值,或者读取频率大于写入频率、且所述目标文件类型的文件的读取频率与所述总频率的比值大于或等于第一预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件,其中,所述总频率为写入频率和读取频率之和;
在所述目标文件类型的文件的写入频率与读取频率之间的第一差值的绝对值大于或等于第二预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件;
在所述目标文件类型的文件的写入频率大于读取频率、且所述目标文件类型的文件的写入频率与读取频率之间的第二差值大于或等于第三预设阈值的情况下,将所述多个磁盘组中的P个磁盘组设置为用于存储所述目标文件类型的文件。
19.一种文件存储装置,其特征在于,
包括:
第一确定模块,用于确定目标文件的目标文件类型,其中,所述目标文件为需要存储到存储系统的文件;
第二确定模块,用于在所述存储系统的多个磁盘组中确定用于存储所述目标文件类型的文件的目标磁盘组,其中,所述多个磁盘组中的每个磁盘组用于存储对应的一个文件类型的文件,每个文件类型对应的读写特征不同,所述每个文件类型对应的读写特征用于表示所述每个文件类型的文件的读取频率与写入频率之间的大小关系;
存储模块,用于将所述目标文件存储到所述目标磁盘组;
其中,所述第二确定模块包括:第二确定子模块,用于在所述多个磁盘组中存在N个磁盘组、且所述N个磁盘组均用于存储所述目标文件类型的文件、N为大于或等于2的正整数的情况下,根据所述目标文件所需的目标写入带宽,在所述N个磁盘组中确定M个磁盘组,其中,所述目标磁盘组包括所述M个磁盘组,M为大于或等于1、且小于或等于N的正整数,所述目标写入带宽表示在存储所述目标文件时单位时间内所需的写入容量,所述M个磁盘组的总空闲写入带宽大于或等于所述目标写入带宽,所述总空闲写入带宽表示所述M个磁盘组所允许的所述单位时间内的写入容量。
20.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至18任一项中所述的方法的步骤。
21.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现所述权利要求1至18任一项中所述的方法的步骤。
CN202311514246.6A 2023-11-14 2023-11-14 文件存储方法及装置 Active CN117234435B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311514246.6A CN117234435B (zh) 2023-11-14 2023-11-14 文件存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311514246.6A CN117234435B (zh) 2023-11-14 2023-11-14 文件存储方法及装置

Publications (2)

Publication Number Publication Date
CN117234435A CN117234435A (zh) 2023-12-15
CN117234435B true CN117234435B (zh) 2024-02-20

Family

ID=89084644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311514246.6A Active CN117234435B (zh) 2023-11-14 2023-11-14 文件存储方法及装置

Country Status (1)

Country Link
CN (1) CN117234435B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911074A (zh) * 2008-01-10 2010-12-08 帝斯科匹尔公司 基于存储寿命和速度选择存储位置用于文件存储
CN109164981A (zh) * 2018-08-15 2019-01-08 优刻得科技股份有限公司 磁盘管理方法、装置、存储介质和设备
CN109683810A (zh) * 2017-08-15 2019-04-26 金钱猫科技股份有限公司 一种读写方法及终端
CN111026337A (zh) * 2019-12-30 2020-04-17 中科星图股份有限公司 一种基于机器学习和ceph思想的分布式储存方法
CN112347049A (zh) * 2020-09-03 2021-02-09 深圳Tcl新技术有限公司 文件信息显示方法、终端设备以及计算机可读存储介质
CN114253456A (zh) * 2020-09-21 2022-03-29 深圳市茁壮网络股份有限公司 一种缓存负载均衡方法和装置
CN114415960A (zh) * 2022-01-21 2022-04-29 浙江大华技术股份有限公司 盘组的确定方法、装置、存储介质及电子装置
CN114647379A (zh) * 2022-02-17 2022-06-21 北京京东振世信息技术有限公司 文件存储方法、装置、电子设备和计算机可读介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911074A (zh) * 2008-01-10 2010-12-08 帝斯科匹尔公司 基于存储寿命和速度选择存储位置用于文件存储
CN109683810A (zh) * 2017-08-15 2019-04-26 金钱猫科技股份有限公司 一种读写方法及终端
CN109164981A (zh) * 2018-08-15 2019-01-08 优刻得科技股份有限公司 磁盘管理方法、装置、存储介质和设备
CN111026337A (zh) * 2019-12-30 2020-04-17 中科星图股份有限公司 一种基于机器学习和ceph思想的分布式储存方法
CN112347049A (zh) * 2020-09-03 2021-02-09 深圳Tcl新技术有限公司 文件信息显示方法、终端设备以及计算机可读存储介质
CN114253456A (zh) * 2020-09-21 2022-03-29 深圳市茁壮网络股份有限公司 一种缓存负载均衡方法和装置
CN114415960A (zh) * 2022-01-21 2022-04-29 浙江大华技术股份有限公司 盘组的确定方法、装置、存储介质及电子装置
CN114647379A (zh) * 2022-02-17 2022-06-21 北京京东振世信息技术有限公司 文件存储方法、装置、电子设备和计算机可读介质

Also Published As

Publication number Publication date
CN117234435A (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
US7587427B2 (en) Hierarchical storage system, and control method and program therefor
US8533420B2 (en) Thin provisioned space allocation
CN103761053B (zh) 一种数据处理方法和装置
US20150153961A1 (en) Method for assigning storage area and computer system using the same
US8639898B2 (en) Storage apparatus and data copy method
CN103761190B (zh) 数据处理方法及装置
US9959049B1 (en) Aggregated background processing in a data storage system to improve system resource utilization
US10802757B2 (en) Automated management of write streams for multi-tenant storage
US11797387B2 (en) RAID stripe allocation based on memory device health
CN109918234B (zh) 一种基于ssd的元数据恢复方法、装置、设备及介质
CN113010097A (zh) 存储系统和存储系统的数据压缩方法
CN113094374A (zh) 分布式存储和检索方法、装置及计算机设备
US11341010B2 (en) Dynamic reclamation of storage stripes
CN112148226A (zh) 一种数据存储方法及相关装置
US11347414B2 (en) Using telemetry data from different storage systems to predict response time
US9841901B1 (en) Techniques for creating windows of free blocks in a file system in accordance with trigger conditions, slice selection criteria and termination criteria
US9459801B2 (en) Tiered storage system provided with trial area, storage controller, area allocation method and storage medium
US11513702B2 (en) Placement of metadata on data storage drives in a first storage enclosure of a data storage system
US11150991B2 (en) Dynamically adjusting redundancy levels of storage stripes
US8019799B1 (en) Computer system operable to automatically reorganize files to avoid fragmentation
CN117234435B (zh) 文件存储方法及装置
JP2019191886A (ja) 情報処理装置,情報処理方法およびプログラム
CN111158595A (zh) 企业级异构存储资源调度方法及系统
JP4997858B2 (ja) データ記録装置およびデータ記録プログラム
CN103064926B (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