CN117234430A - 一种缓存框架、数据处理方法、装置、设备和存储介质 - Google Patents
一种缓存框架、数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117234430A CN117234430A CN202311501907.1A CN202311501907A CN117234430A CN 117234430 A CN117234430 A CN 117234430A CN 202311501907 A CN202311501907 A CN 202311501907A CN 117234430 A CN117234430 A CN 117234430A
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- write
- cache module
- disk
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 239000000872 buffer Substances 0.000 claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 28
- 230000003139 buffering effect Effects 0.000 claims abstract description 13
- 230000001960 triggered effect Effects 0.000 claims abstract description 11
- 238000005192 partition Methods 0.000 claims description 82
- 230000004044 response Effects 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 45
- 238000004590 computer program Methods 0.000 claims description 41
- 238000012886 linear function Methods 0.000 claims description 27
- 239000007787 solid Substances 0.000 claims description 19
- 230000007246 mechanism Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种缓存框架、数据处理方法、装置、设备和存储介质,所属领域为存储技术领域,所述缓存框架包括:主机系统,用于发送用户输入输出请求;磁盘阵列卡,所述磁盘阵列卡通过电信号与所述主机系统连接;其中,所述磁盘阵列卡包括固件层、第一缓存模块、第二缓存模块以及软件层;所述固件层和软件层,均用于读取并处理用户输入输出请求;所述第一缓存模块,用于在执行基于用户输入输出请求触发的写操作时,缓存用户输入的写数据;所述第二缓存模块,用于缓存已在所述磁盘阵列卡中被重新读取的写数据,以及响应基于用户输入输出请求触发的读操作。本申请可以提高读取性能和扩展缓存空间,从而有效降低磁盘阵列卡的功耗。
Description
技术领域
本申请涉及存储技术领域,特别是涉及一种缓存框架、数据处理方法、装置、设备和存储介质。
背景技术
近年来,网络带宽的快速增长使得远程存储系统成为存储个人数据的可行选择。然而,用户只会将他们的数据托付给能够提供高可靠性和安全性的数据存储中心,为了增加数据可靠性,已经发明了多种数据容错机制,并在物理系统上实现,在这些算法中,擦除编码算法是要求高数据容错性的存储服务使用的有前途的候选算法,因为擦除编码算法可以使用不同的编码函数在不同的磁盘中生成多个冗余数据(也称为奇偶校验数据),这种需要系统消耗额外的磁盘空间来存储奇偶校验数据,从而增加了成本和功耗。
因此,亟需提出一种在不增加硬盘成本基础上提高数据缓存能效的缓存框架、数据处理方法、装置、设备和存储介质。
发明内容
基于此,有必要针对上述技术问题,提供一种在不增加硬盘成本基础上提高数据缓存能效的缓存框架、数据处理方法、装置、设备和存储介质。
第一方面,提供一种缓存框架,所述缓存框架包括:
主机系统,用于发送用户输入输出请求;
磁盘阵列卡,所述磁盘阵列卡通过电信号与所述主机系统连接;
其中,所述磁盘阵列卡包括固件层、第一缓存模块、第二缓存模块以及软件层;
所述固件层和所述软件层,均用于读取并处理所述用户输入输出请求;
所述第一缓存模块,用于在执行基于所述用户输入输出请求触发的写操作时,缓存用户输入的写数据;
所述第二缓存模块,用于缓存已在所述磁盘阵列卡中被重新读取的写数据,以及响应基于所述用户输入输出请求触发的读操作。
可选的,所述第一缓存模块设置于随机存取存储器上,所述第一缓存模块包括多个分区,每个分区映射于所述磁盘阵列卡下挂的磁盘,所述磁盘至少包括活跃磁盘、睡眠磁盘、校验磁盘,每个磁盘包括至少一个映射分区。
第二方面,提供一种数据处理方法,所述方法包括:
利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
可选的,所述第二缓存模块的构建方法包括:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据。
可选的,所述响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中包括:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
响应于检测到所述写数据对应的发送时间在预设时间范围内,则将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
可选的,所述响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中还包括:
响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区;
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
可选的,在将所述写数据分别写入所述第一缓存模块中的分区之后,所述方法还包括:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘。
可选的,响应于检测到所述第一缓存模块的缓存空间小于第一预设值时,所述方法还包括:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据。
可选的,所述基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据包括:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值;
按照所述评分值的大小进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据。
可选的,所述相关参数信息还包括被读取频次,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值。
可选的,所述基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据包括:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据。
可选的,所述校验磁盘的构建方法包括:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据。
可选的,根据所述耐久感知机制确定需要发送至所述校验磁盘的奇偶校验数据并发送包括:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记。
可选的,所述方法还包括:
基于写通模式将所述用户输入的写数据缓存至所述第一缓存模块。
可选的,所述第二缓存模块的缓存数据的获取方法包括:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块。
可选的,所述方法还包括:
响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,将所述缓存数据发送至所述第一缓存模块。
可选的,所述方法还包括:
响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
第三方面,提供了一种数据处理装置,所述装置包括:
接收处理单元,用于利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
第一缓存单元,用于在检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
第二缓存单元,用于在检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
第四方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
上述缓存框架、数据处理方法、装置、设备和存储介质,所述缓存框架包括:主机系统,用于发送用户输入输出请求;磁盘阵列卡,所述磁盘阵列卡通过电信号与所述主机系统连接;其中,所述磁盘阵列卡包括固件层、第一缓存模块、第二缓存模块以及软件层;所述固件层和所述软件层,均用于读取并处理所述用户输入输出请求;所述第一缓存模块,用于在执行基于所述用户输入输出请求触发的写操作时,缓存用户输入的写数据;所述第二缓存模块,用于缓存已在所述磁盘阵列卡中被重新读取的写数据,以及响应基于所述用户输入输出请求触发的读操作,本申请提出的高能效缓存框架,通过在磁盘阵列卡中新增的两个缓存模块,处理数据的输入输出,以提高读取性能和扩展缓存空间,从而有效降低磁盘阵列卡的功耗。
附图说明
图1为一个实施例中缓存框架的结构框图;
图2为一个实施例中数据处理方法的流程示意图;
图3为一个实施例中数据处理方法的缓存模块整体架构示意图;
图4为一个实施例中数据处理方法的临时缓存模块工作示意图;
图5为一个实施例中数据处理方法的读缓存机制框图;
图6为一个实施例中数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,在本申请的描述中,除非上下文明确要求,否则整个说明书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
还应当理解,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
需要注意的是,术语“S1”、“S2”等仅用于步骤的描述目的,并非特别指称次序或顺位的意思,亦非用以限定本申请,其仅仅是为了方便描述本申请的方法,而不能理解为指示步骤的先后顺序。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
近些年许多用户使用的应用程序在存取数据时都依赖数据存储中心,较为出名的数据存储中心有Google drive(谷歌公司推出的一项在线云存储服务)、Dropbox(免费网络文件同步工具)、iCloud(苹果公司提供的云端服务)和Sky drive(由微软公司推出的一项云存储服务),它们来存储私有文件和系统数据,因此数据存储中心必须可靠和安全,上述数据存储中心在面对与日俱增且快速增长的数据处理时,显得力不从心,用户不仅对数据安全性和数据可靠性的要求越来越高,而且对读写I/O(Input/Output,输入/输出)数据性能的要求呈指数级增长,在数据存储中心无法完全满足用户对数据安全性、数据可靠性和读写I/O性能急速增长需求的大背景下,导致当今存储领域一直在两个方面寻求突破:(1)增加数据可靠性,(2)提高I/O性能。在提高I/O性能方面,目前软RAID存储技术在提高数据安全性和I/O性能方面,已经遇到了很大的瓶颈,因为软RAID(Redundant Arrays ofIndependent Disks,磁盘阵列)存储技术中对于一些算法、数据管理以及一些功能都交给软件管理和实现,这就极大的限制了软RAID存储技术的I/O性能,近些年,随着半导体芯片行业的迅猛发展,业界在软RAID存储技术的基础上提出了硬RAID存储技术。硬RAID存储技术应运而生,其中RAID卡是硬RAID存储技术的最关键组成单元,RAID卡是为了提高存储中心的I/O性能和数据安全性,而在软RAID存储技术基础上提出的硬RAID存储技术,顾名思义,硬RAID存储技术就是将软RAID存储技术中的一些算法、数据管理以及一些功能都交给硬件管理和实现,以达到提高存储系统的I/O性能和数据安全性,从物理连接层面来讲,RAID卡就是实现将服务器连接的硬盘按照RAID级别组织成多个RAID阵列的功能板卡,软RAID存储技术和硬RAID存储技术(RAID卡)的最重要组成单元都是RAID阵列,在RAID卡中增加RAID卡控制器,RAID卡控制器是一颗芯片,由I/O处理器、磁盘控制器、磁盘连接器和缓存等一系列组件组成,显而易见,RAID卡将软RAID存储技术中的一些算法和功能都交给了硬件实现,因此RAID卡的I/O性能会强过软RAID存储技术的I/O性能,缓存作为RAID卡控制器的重要组件,可以极大提高存储性能,加速读写响应,当写I/O数据的策略为WB(WriteBack,写回模式)策略时,主机请求的写I/O数据会暂存在RAID卡的缓存中,I/O数据写入缓存后RAID卡立即向主机发送数据写入完成信号(即立即响应主机),这样极大地降低了给主机的响应延迟。
不论软RAID存储技术还是硬RAID存储技术(RAID卡),它们最重要的组成单元都是RAID阵列,RAID阵列是存储领域中的最重要技术,目前包括RAID级别0、1、5、6、10、50、60,它们使用条带、镜像和校验来保证数据可靠性,并通过阵列中多个磁盘驱动并发处理I/O以提高RAID阵列的I/O性能,缓存作为RAID卡控制器的重要组件,可以极大提高存储性能,加速读写响应,当写I/O数据的策略为WB策略时,主机请求的写I/O数据会暂存在RAID卡的缓存中,I/O数据写入缓存后RAID卡立即向主机发送数据写入完成信号(即立即响应主机),这样极大的降低了给主机的响应延迟,而另一种缓存策略则为WT(Write Through,写通模式),对于写IO事件,当写IO数据写入RAID组的存储介质后,然后响应HOST(主机),对于读IO事件,需要从RAID阵列的存储介质中读取数据完成后,响应HOST。
根据背景技术可知,网络带宽的快速增长使得远程存储系统成为存储个人数据的可行选择。然而,用户只会将他们的数据托付给能够提供高可靠性和安全性的数据存储中心,为了增加数据可靠性,已经发明了多种数据容错机制,并在物理系统上实现,在这些算法中,擦除编码算法是要求高数据容错性的存储服务使用的有前途的候选算法,因为擦除编码算法可以使用不同的编码函数在不同的磁盘中生成多个冗余数据(也称为奇偶校验数据),这种需要系统消耗额外的磁盘空间来存储奇偶校验数据,从而增加了成本和功耗。
为解决上述技术问题,本申请提供了一种缓存框架、数据处理方法、装置、设备和存储介质,本申请提出的高能效缓存框架,在RAID卡中新增临时缓存模块和读缓存模块,临时缓存模块处理数据写入和重建操作,增加读缓存,是为了提高读取性能和扩展缓存空间,利用SSD/NVM(固态硬盘/高速存储器)设备来缓存一次写入多次读取(write-once-read-Many, WORM)数据,通过利用低功耗缓存设备来最小化由于使用擦除编码算法而导致的存储系统功耗。
实施例1:在一个实施例中,如图1所示,提供了一种缓存框架,所述缓存框架包括:
主机系统,用于发送用户输入输出请求,其中,主机系统一般为用户端;
磁盘阵列卡,所述磁盘阵列卡通过电信号与所述主机系统连接,其中,所述电信号可以为网络信号;
其中,所述磁盘阵列卡包括固件层、第一缓存模块、第二缓存模块以及软件层,还包括处理器和网络接口;
所述固件层和所述软件层,均用于读取并处理所述用户输入输出请求;
所述第一缓存模块,用于在执行基于所述用户输入输出请求触发的写操作时,缓存用户输入的写数据;
所述第二缓存模块,用于缓存已在所述磁盘阵列卡中被重新读取的写数据,以及响应基于所述用户输入输出请求触发的读操作;
在一些具体实施方式中,所述第一缓存模块设置于随机存取存储器上,所述第一缓存模块包括多个分区,每个分区映射于所述磁盘阵列卡下挂的磁盘,所述磁盘至少包括活跃磁盘、睡眠磁盘、校验磁盘,每个磁盘包括至少一个映射分区。
具体的,第一缓存模块为临时缓存模块,第二缓存模块为读缓存模块,固件层包括驱动程序、RAID卡(磁盘阵列卡)内核和文件系统等等,其中,RAID卡内核提供底层逻辑功能,文件系统可以提供对文件和逻辑单元号LUN访问的功能,驱动程序实现适配各个外设的代码逻辑功能,处理器执行一些程序指令,用于处理主机I/O请求(输入输出请求),网络接口用于连接网络,软件层为RAID卡存储系统,该系统包括RAID卡控制器、多个磁盘组插槽,其中,磁盘组插槽1上插有两块SSD(固态硬盘)磁盘,两块SSD磁盘构成RAID1阵列;磁盘组插槽2上插有三块SSD磁盘,三块SSD磁盘构成RAID5阵列;磁盘组插槽3上插有四块SSD磁盘,四块SSD磁盘构成RAID6阵列,以此类推,RAID卡控制器负责RAID卡中的软件处理功能,由RAID卡控制器专门实现软件功能,硬件模块即固件层,执行一些算法、数据管理以及其他一些功能,以此实现软硬分离,硬件和软件各自独立、平行工作,通过软硬分离系统架构设计提高RAID卡的I/O读写性能;进一步的,第一缓存模块中的每个分区分别用于存储主机I/O请求对应的写数据,每个分区映射的磁盘用于预存所述写数据中的有效数据。
实施例2:在一个实施例中,如图2所示,提供了一种数据处理方法,包括以下步骤:
S1:利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求。
需要说明的是,固件层包括驱动程序、RAID卡(磁盘阵列卡)内核和文件系统等等,软件层包括RAID卡控制器,其中,RAID卡控制器负责RAID卡中的软件处理功能,由RAID卡控制器专门实现软件功能,固件层执行一些算法、数据管理以及其他一些功能,以此实现软硬分离,硬件和软件各自独立、平行工作,通过软硬分离系统架构设计提高RAID卡的I/O读写性能,即根据用户输入输出请求(I/O请求)需要执行功能的不同,选择固件层或软件层对用户输入输出请求进行处理。
S2:响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
S3:响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
需要说明的是,第一缓存模块为临时缓存模块,第二缓存模块为读缓存模块,如图3所示,为包含了临时缓存模块和读缓存模块的方案整体架构示意图,临时缓存模块和读缓存模块均用于缓存用户输入的写数据,其组成了文件系统,一端通过分布式文件系统(接口)与用户端连接,另一端通过标准接口与下挂的磁盘连接。
在一些具体实施方式中,所述第一缓存模块的构建方法包括:
基于随机存取存储器,构建所述第一缓存模块,所述第一缓存模块包括多个分区,其中,随机存取存储器即为RAM(Random Access Memory),也叫主存,是与CPU直接交换数据的内部存储器,它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质,基于此,本申请将临时缓存模块建立在基于RAM的存储设备上,并将第一缓存模块分成多个分区;
通过软件层(即RAID卡控制器)将每个分区映射到磁盘阵列卡下挂的磁盘,所述磁盘至少包括活跃磁盘、睡眠磁盘、校验磁盘,每个磁盘包括至少一个映射分区,其中,活跃磁盘即为系统所在的盘,睡眠磁盘即主机系统处于关机模式时,其运行数据所需要保存的盘,校验磁盘即为用于存储校验数据的磁盘,所述校验磁盘的构建方法包括:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据,所述第二固态硬盘为SSD固态硬盘,即校验磁盘是建立在基于SSD的存储设备上。
在上述实施方式中,通过构建的临时缓存模块缓存写操作请求对应的写数据,从而降低RAID卡功耗。
在一些具体实施方式中,所述第二缓存模块的构建方法包括:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据,其中,第一固态硬盘为SSD固态硬盘,即读缓存模块是建立在基于SSD的存储设备上。
其中,一次写入多次读取文件为已在磁盘阵列卡中被重新读取的数据,如写入第一缓存模块中的写数据,被读取至少两次,然后转存入第二缓存模块中的数据文件。
在上述实施方式中,通过构建的读缓存模块缓存一次写入多次读取文件,从而提高读取性能和扩展缓存空间。
在一些具体实施方式中,所述响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中包括:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据,其中,写操作为以CPU为中心,对CPU的输入即为写操作,用户接收到写操作请求时,其附有相应的写入数据,该写入数据可以是数据重建操作数据等;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
因为时间更接近当前时间的写数据更可能是热数据,如果热数据被缓存在临时缓存模块中,则RAID卡中重新访问文件的功耗将会降低,因此在检测到所述写数据对应的发送时间在预设时间范围内时,将所述写操作请求对应的写数据缓存于第一缓存模块的分区中,其中,预设时间范围可以根据实际需求进行设定。
具体的,如图4所示,在对写数据进行缓存之前,检测写数据是否为校验数据,响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区,其中,通过构建的校验数据分区将校验数据暂存于第一缓存模块中,以延迟写入存放校验数据的SSD盘(即校验磁盘),从而由于写入SSD校验磁盘的校验分块次数减少,降低了RAID卡的功耗并且提升了RAID卡的I/O读写性能,同时由于写入SSD校验盘的校验分块次数减少,也提升了SSD校验盘的寿命;
进一步的,SSD校验盘即为RAID卡下挂的校验磁盘,其也为奇偶校验磁盘,其中,SSD具有耐久性问题,并且奇偶校验数据在存储系统中频繁更新,为了缓解奇偶数据频繁更新对SSD耐久性问题的影响,在临时缓存模块中采用了一种耐久感知机制,耐久感知机制是在临时缓存模块中累积奇偶校验数据,以便延迟奇偶校验设备上的奇偶校验更新操作,具体的,根据所述耐久感知机制确定需要发送至所述校验磁盘的奇偶校验数据并发送包括:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据,其中,所述第二预设值可以根据实际需求进行设定;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记,即当校验数据分区缓存空间已满或达到某个阈值,校验数据分区中的奇偶校验数据将被刷新到对应的奇偶校验磁盘,刷新的奇偶校验数据将被标记为旧数据。
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
上述的数据写入方式为基于写通模式(WT,Write Through)将所述用户输入的写数据缓存至所述第一缓存模块,其中,写通模式为cache(缓存)的两种模式中的一种,是主机请求写I/O数据时采用的一种写入策略,只有写I/O数据全部写入RAID卡的存储介质后,才向主机发送数据写成功信号,其为常用手段,在此不再赘述,其中,尽管临时缓存模块可以有效地减少奇偶校验磁盘上的更新操作频率,但存在极小的概率出现写缓存崩溃期间的数据安全性问题,因此本申请通过写通模式缓存用户输入数据,从而避免出现上述问题。
在一些具体实施方式中,在将所述写数据分别写入所述第一缓存模块中的分区之后,所述方法还包括:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘,其中,该有效数据的判断规则指的是写数据是否已写入第一缓存模块,若已写入,则判断为有效数据,将第一缓存模块中的数据写入每个分区映射的磁盘阵列卡下挂的磁盘,以防止由于临时缓存模块故障而导致数据损坏,RAID卡直接将数据分区的有效数据写入RAID卡下挂的磁盘,以供临时缓存模块故障时使用,若为写入其他模块的数据,如读缓存模块和写缓存模块,则在数据量达到其他模块的预设空间阈值时,将达到阈值之后的相关数据写入对应磁盘中。
在一些具体实施方式中,所述相关参数信息包括被读取频次和时间属性,响应于检测到所述第一缓存模块的缓存空间小于第一预设值时,其中,第一预设值可以根据实际需求设定,所述方法还包括:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据,具体的:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值,其中,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值,该权重系数为动态参数,可以根据实际需求进行设置;
按照所述评分值的大小进行排序,即按照从小到大或从大到小的顺序对评分值进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据,包括:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据,若删除该写数据之后,第一缓存模块的缓存空间依然不足,则删除剩余评分值中最小评分值对应的写数据,并以此类推。
在上述实施方式中,为了提高RAID卡性能,临时缓存模块在高速缓存空间中保存时间更近的数据或被访问频次较高的数据,因为时间更接近的数据在存储系统中更有可能是热数据,因此结合被读取频次和时间属性,来对临时缓存模块中的数据进行评分,从而在第一缓存模块的缓存空间不足时,优先删除评分值较低的数据,基于此,在RAID卡中重新访问文件的功耗将会降低。
在一些具体实施方式中,所述第二缓存模块的缓存数据的获取方法包括:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次,其中,预设时间可以根据实际需求进行设定;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块,其中,第三预设值和第四预设值可以根据实际需求进行设定。
具体的,因为临时缓存模块是为写操作设计的,所以对于读操作可能效率不高,为了提高读取性能和扩展缓存空间,本申请利用SSD固态硬盘设备来缓存一次写入多次读取(write-once-read-many,WORM)数据,为避免将频繁更新的数据移动到读缓存模块,因此,对第一缓存模块中目标写数据的读取频次进行判断,从而保证读缓存模块在仅保存已经在RAID卡中被重新读取的数据,且避免将频繁更新的数据移动到读缓存模块。
进一步的,响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,则将所述缓存数据发送至所述第一缓存模块,即原来写过这些数据,这次又写这些数据,就是写命中,如果通过写操作重新访问读缓存模块中的数据,数据将被移动到临时缓存模块中,以避免将多次写一次读的数据(write-many-read-once)保存在读缓存模块中。
在一些具体实施方式中,响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
具体的,在接收到用户发出的读请求时,从第一缓存模块和所述第二缓存模块中读取读请求对应的相关数据,当相关数据不存在于上述缓存模块中时,则从RAID卡下挂的磁盘中读取数据,并将所请求的数据副本移动到读缓存模块中用于下一次读操作。
示例性的,如图5所示,一个用户请求需要读取存储系统中的文件“A”、“B”和“C”,因为文件A是存储在RAID卡的读缓存模块中,直接从读缓存模块中读取文件“A”,如果存储系统不能在读高速缓存中找到请求文件(例如,数据“B”和“C”),则将从RAID卡下挂的磁盘中读取请求文件,并将所读取的文件移动到读缓存模块中,因为读缓存模块仅服务于一次写入多次读取的文件,所以本申请仅在读操作期间触发读缓存模块,所述读缓存模块可以有效地管理一次写入多次读取的文件,如视频、图像和多媒体文件,从而显著降低RAID卡的能耗并提升RAID卡的缓存性能。
上述数据处理方法中,所述方法包括:利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据,本申请整体方案的有益效果如下:
(1)本申请提出临时缓存模块,利用了耐久性感知机制的优点,可以有效降低RAID卡的功耗,减轻奇偶校验数据频率更新对SSD耐久性的影响;
(2)为了利用临时缓存模块的优势,RAID卡将写数据存储在临时缓存模块的分区中,为了防止由于临时缓存故障而导致数据损坏,RAID卡直接将数据分块的有效数据写入RAID卡下挂的磁盘,而将校验分块的校验数据延迟写入存放校验数据的SSD盘,由于写入SSD校验盘的校验分块次数减少,因此降低了RAID卡的功耗并且提升了RAID卡的I/O读写性能,同时由于写入SSD校验盘的校验分块次数减少,也提升了SSD校验盘的寿命;
(3)读缓存模块仅服务于一次写入多次读取的文件,仅在读操作期间触发读缓存,其可以有效地管理一次写入多次读取的文件,如视频、图像和多媒体文件,从而显著降低RAID卡的能耗并提升RAID卡的缓存性能。
应该理解的是,虽然图2-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
实施例3:在一个实施例中,如图6所示,提供了一种数据处理装置,包括:接收处理单元、第一缓存单元和第二缓存单元,其中:
接收处理单元,用于利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
第一缓存单元,用于在检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
第二缓存单元,用于在检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
作为一种较优的实施方式,本发明实施例中,所述装置还包括构建单元,所述构建单元具体用于:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据。
作为一种较优的实施方式,本发明实施例中,所述第一缓存单元具体还用于:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
响应于检测到所述写数据对应的发送时间在预设时间范围内,则将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
作为一种较优的实施方式,本发明实施例中,所述第一缓存单元具体还用于:
响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区;
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
作为一种较优的实施方式,本发明实施例中,所述装置还包括磁盘数据写入单元,所述磁盘数据写入单元具体用于:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘。
作为一种较优的实施方式,本发明实施例中,所述装置还包括删除单元,所述删除单元具体用于:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据。
作为一种较优的实施方式,本发明实施例中,所述删除单元具体还用于:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值;
按照所述评分值的大小进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据。
作为一种较优的实施方式,本发明实施例中,所述删除单元具体还用于:
基于所述相关参数信息和线性函数,确定每个写数据对应的评分值,所述相关参数信息还包括被读取频次,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值。
作为一种较优的实施方式,本发明实施例中,所述删除单元具体还用于:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据。
作为一种较优的实施方式,本发明实施例中,所述构建单元具体还用于:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据。
作为一种较优的实施方式,本发明实施例中,所述第一缓存单元具体还用于:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记。
作为一种较优的实施方式,本发明实施例中,所述第一缓存单元具体还用于:
基于写通模式将所述用户输入的写数据缓存至所述第一缓存模块。
作为一种较优的实施方式,本发明实施例中,所述装置还包括转存单元,所述转存单元具体用于:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块。
作为一种较优的实施方式,本发明实施例中,所述转存单元具体还用于:
响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,将所述缓存数据发送至所述第一缓存模块。
作为一种较优的实施方式,本发明实施例中,所述装置还包括检测单元,所述检测单元具体用于:
响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例4:在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
S1:利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
S2:响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
S3:响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
响应于检测到所述写数据对应的发送时间在预设时间范围内,则将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区;
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于检测到所述第一缓存模块的缓存空间小于第一预设值时,所述方法还包括:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值;
按照所述评分值的大小进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于所述相关参数信息和线性函数,确定每个写数据对应的评分值,所述相关参数信息还包括被读取频次,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
基于写通模式将所述用户输入的写数据缓存至所述第一缓存模块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,将所述缓存数据发送至所述第一缓存模块。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
实施例5:在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
S1:利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
S2:响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
S3:响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
响应于检测到所述写数据对应的发送时间在预设时间范围内,则将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区;
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于检测到所述第一缓存模块的缓存空间小于第一预设值时,所述方法还包括:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值;
按照所述评分值的大小进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于所述相关参数信息和线性函数,确定每个写数据对应的评分值,所述相关参数信息还包括被读取频次,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
基于写通模式将所述用户输入的写数据缓存至所述第一缓存模块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,将所述缓存数据发送至所述第一缓存模块。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。
Claims (20)
1.一种缓存框架,其特征在于,所述缓存框架包括:
主机系统,用于发送用户输入输出请求;
磁盘阵列卡,所述磁盘阵列卡通过电信号与所述主机系统连接;
其中,所述磁盘阵列卡包括固件层、第一缓存模块、第二缓存模块以及软件层;
所述固件层和所述软件层,均用于读取并处理所述用户输入输出请求;
所述第一缓存模块,用于在执行基于所述用户输入输出请求触发的写操作时,缓存用户输入的写数据;
所述第二缓存模块,用于缓存已在所述磁盘阵列卡中被重新读取的写数据,以及响应基于所述用户输入输出请求触发的读操作。
2.根据权利要求1所述的缓存框架,其特征在于,所述第一缓存模块设置于随机存取存储器上,所述第一缓存模块包括多个分区,每个分区映射于所述磁盘阵列卡下挂的磁盘,所述磁盘至少包括活跃磁盘、睡眠磁盘、校验磁盘,每个磁盘包括至少一个映射分区。
3.一种基于如权利要求1或2所述缓存框架的数据处理方法,其特征在于,所述方法包括:
利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
响应于检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
4.根据权利要求3所述的数据处理方法,其特征在于,所述第二缓存模块的构建方法包括:
基于第一固态硬盘,构建所述第二缓存模块,所述第二缓存模块用于缓存一次写入多次读取文件,即所述已在磁盘阵列卡中被重新读取的数据。
5.根据权利要求3所述的数据处理方法,其特征在于,所述响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中包括:
响应于检测到所述用户输入输出请求为写操作请求时,获取所述写操作请求对应的写数据;
获取所述写数据的相关参数信息,所述相关参数信息包括时间属性,所述时间属性为所述用户输入输出请求的发送时间;
响应于检测到所述写数据对应的发送时间在预设时间范围内,则将所述写操作请求对应的写数据缓存于第一缓存模块的分区中。
6.根据权利要求3所述的数据处理方法,其特征在于,所述响应于检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中还包括:
响应于检测到所述写数据为校验数据时,将所述写数据写入所述第一缓存模块中的校验数据分区;
响应于检测到所述写数据为非校验数据时,将所述写数据分别写入所述第一缓存模块中除校验数据分区外的其他分区。
7.根据权利要求6所述的数据处理方法,其特征在于,在将所述写数据分别写入所述第一缓存模块中的分区之后,所述方法还包括:
响应于检测到所述写数据为有效数据时,将所述有效数据对应写入每个分区映射的磁盘阵列卡下挂的磁盘。
8.根据权利要求5所述的数据处理方法,其特征在于,响应于检测到所述第一缓存模块的缓存空间小于第一预设值时,所述方法还包括:
获取所述第一缓存模块中所有写数据的相关参数信息;
基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据。
9.根据权利要求8所述的数据处理方法,其特征在于,所述基于所述相关参数信息,确定所述第一缓存模块中所需删除的写数据包括:
基于所述相关参数信息以及线性函数,计算确定每个写数据对应的评分值;
按照所述评分值的大小进行排序;
在检测到所述第一缓存模块的缓存空间小于第一预设值时,基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据。
10.根据权利要求9所述的数据处理方法,其特征在于,所述相关参数信息还包括被读取频次,所述线性函数为一次线性函数,所述一次线性函数的表达式包括:f(x,y)=ax+by,其中,a、b均表示权重系数,x表示时间属性赋值,y表示被读取频次,f(x,y)表示评分值。
11.根据权利要求9所述的数据处理方法,其特征在于,所述基于所述评分值的排序结果,确定所述第一缓存模块中所需删除的写数据包括:
将最小评分值对应的写数据确定为所述第一缓存模块中所需删除的写数据。
12.根据权利要求3所述的数据处理方法,其特征在于,校验磁盘的构建方法包括:
基于第二固态硬盘,构建所述校验磁盘,所述校验磁盘用于接收并存储根据耐久感知机制确定的奇偶校验数据。
13.根据权利要求12所述的数据处理方法,其特征在于,根据所述耐久感知机制确定需要发送至所述校验磁盘的奇偶校验数据并发送包括:
实时获取校验数据分区的剩余缓存空间;
响应于检测到所述剩余缓存空间小于第二预设值时,确定所述校验数据分区中当前缓存的奇偶校验数据为需要发送至所述校验磁盘的奇偶校验数据;
将所述当前缓存的奇偶校验数据发送至所述校验磁盘,并进行标记。
14.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
基于写通模式将所述用户输入的写数据缓存至所述第一缓存模块。
15.根据权利要求3所述的数据处理方法,其特征在于,所述第二缓存模块的缓存数据的获取方法包括:
获取所述第一缓存模块中目标写数据在预设时间内的被读取频次;
响应于检测到所述被读取频次大于第三预设值且小于第四预设值时,将所述目标写数据转存至所述第二缓存模块。
16.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
响应于检测到所述写操作请求对应的写数据为所述第二缓存模块中的缓存数据时,将所述缓存数据发送至所述第一缓存模块。
17.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
响应于在所述第一缓存模块和所述第二缓存模块中均未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块;
响应于检测到所述第一缓存模块出现故障,且在所述第二缓存模块中未检测到所述读操作请求对应的缓存数据时,从所述磁盘阵列卡下挂的磁盘中,读取所述读操作请求对应的缓存数据,并将所述缓存数据发送至所述第二缓存模块。
18.一种数据处理装置,其特征在于,所述装置包括:
接收处理单元,用于利用固件层,和/或,软件层接收并处理主机系统发送的用户输入输出请求;
第一缓存单元,用于在检测到所述用户输入输出请求为写操作请求时,利用磁盘阵列卡将所述写操作请求对应的写数据缓存于第一缓存模块的分区中;
第二缓存单元,用于在检测到所述用户输入输出请求为读操作请求时,从所述第一缓存模块或第二缓存模块中读取所述读操作请求对应的缓存数据,所述缓存数据至少包括已在所述磁盘阵列卡中被重新读取的写数据、所述写操作请求对应的写数据。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求3至17中任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求3至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311501907.1A CN117234430B (zh) | 2023-11-13 | 2023-11-13 | 一种缓存框架、数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311501907.1A CN117234430B (zh) | 2023-11-13 | 2023-11-13 | 一种缓存框架、数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117234430A true CN117234430A (zh) | 2023-12-15 |
CN117234430B CN117234430B (zh) | 2024-02-23 |
Family
ID=89093183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311501907.1A Active CN117234430B (zh) | 2023-11-13 | 2023-11-13 | 一种缓存框架、数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234430B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007438A1 (en) * | 1996-09-16 | 2002-01-17 | Hae-Seung Lee | Memory system for improving data input/output performance and method of caching data recovery information |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN1862475A (zh) * | 2005-07-15 | 2006-11-15 | 华为技术有限公司 | 磁盘阵列缓存的管理方法 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN106991059A (zh) * | 2017-03-15 | 2017-07-28 | 湖北盛天网络技术股份有限公司 | 对数据源的访问控制方法 |
CN108984432A (zh) * | 2018-07-16 | 2018-12-11 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
CN115878509A (zh) * | 2021-09-28 | 2023-03-31 | 苏州国芯科技股份有限公司 | 一种磁盘阵列缓存的方法、装置、计算机设备和存储介质 |
CN116820342A (zh) * | 2023-06-30 | 2023-09-29 | 苏州浪潮智能科技有限公司 | 磁盘阵列的数据处理方法、装置和磁盘阵列 |
-
2023
- 2023-11-13 CN CN202311501907.1A patent/CN117234430B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020007438A1 (en) * | 1996-09-16 | 2002-01-17 | Hae-Seung Lee | Memory system for improving data input/output performance and method of caching data recovery information |
CN1862475A (zh) * | 2005-07-15 | 2006-11-15 | 华为技术有限公司 | 磁盘阵列缓存的管理方法 |
CN1851635A (zh) * | 2006-06-01 | 2006-10-25 | 杭州华为三康技术有限公司 | 对廉价磁盘冗余阵列进行读写操作的方法和系统 |
CN103309820A (zh) * | 2013-06-28 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 磁盘阵列缓存的实现方法 |
CN105138292A (zh) * | 2015-09-07 | 2015-12-09 | 四川神琥科技有限公司 | 磁盘数据读取方法 |
CN106991059A (zh) * | 2017-03-15 | 2017-07-28 | 湖北盛天网络技术股份有限公司 | 对数据源的访问控制方法 |
CN108984432A (zh) * | 2018-07-16 | 2018-12-11 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
CN115878509A (zh) * | 2021-09-28 | 2023-03-31 | 苏州国芯科技股份有限公司 | 一种磁盘阵列缓存的方法、装置、计算机设备和存储介质 |
CN116820342A (zh) * | 2023-06-30 | 2023-09-29 | 苏州浪潮智能科技有限公司 | 磁盘阵列的数据处理方法、装置和磁盘阵列 |
Also Published As
Publication number | Publication date |
---|---|
CN117234430B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216578B2 (en) | Data storage device for increasing lifetime and RAID system including the same | |
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US7035974B2 (en) | RAID-5 disk having cache memory implemented using non-volatile RAM | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US8819338B2 (en) | Storage system and storage apparatus | |
US10884630B2 (en) | Storage system | |
US9292228B2 (en) | Selective raid protection for cache memory | |
US10360144B2 (en) | Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level | |
CN109213693B (zh) | 存储管理方法、存储系统和计算机程序产品 | |
US8856439B2 (en) | Method and device for utilizing application-level prior knowledge for selectively storing data in higher performance media | |
US7051156B2 (en) | Raid-5 disk having cache memory | |
US20140059294A1 (en) | Storage system and storage control method | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
CN110502188A (zh) | 一种基于数据库读写性能的数据存储方法与装置 | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
CN110569000A (zh) | 基于固态硬盘阵列的主机端raid管理方法和装置 | |
CN104035886B (zh) | 磁盘重映射方法、装置及电子设备 | |
CN111580757B (zh) | 数据写入方法、系统和固态硬盘 | |
CN110737395B (zh) | I/o管理方法、电子设备和计算机可读存储介质 | |
US9323671B1 (en) | Managing enhanced write caching | |
US10901866B2 (en) | Failure detection and data recovery in a storage system | |
CN117234430B (zh) | 一种缓存框架、数据处理方法、装置、设备和存储介质 | |
CN113722131A (zh) | 用于促进存储设备中的快速崩溃恢复的方法和系统 | |
EP2924576A1 (en) | Storage control apparatus, control program, and control method | |
JP6693181B2 (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
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 |