CN111880730B - 一种全闪存阵列写io的调整方法、装置、设备及介质 - Google Patents
一种全闪存阵列写io的调整方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111880730B CN111880730B CN202010693074.3A CN202010693074A CN111880730B CN 111880730 B CN111880730 B CN 111880730B CN 202010693074 A CN202010693074 A CN 202010693074A CN 111880730 B CN111880730 B CN 111880730B
- Authority
- CN
- China
- Prior art keywords
- rate
- flash memory
- memory array
- write
- full flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种全闪存阵列写IO的调整方法、装置、设备及介质,该方法包括:当接收到目标主机所发送的写IO时,则判断全闪存阵列是否在执行垃圾回收机制;若全闪存阵列在执行垃圾回收机制,则获取目标主机发送写IO的速率,并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率;根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整,以使目标主机发送写IO的速率与垃圾回收速率保持平衡。显然,当目标主机向全闪存阵列发送写IO的速率与全闪存阵列执行垃圾回收机制时的垃圾回收速率保持平衡之后,全闪存阵列就不会出现空间使用量持续增加的现象,由此就可以避免全闪存阵列因为存储空间不足而出现的故障问题。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种全闪存阵列写IO的调整方法、装置、设备及介质。
背景技术
由于全闪存阵列相比于传统的存储系统而言具有较高的IOPS(每秒输入/输出数),所以,全闪存阵列在数据存储领域得到了较为广泛的应用。在全闪存阵列写入数据的过程中,一般是采用追加写的方式,也即,在全闪存阵列中写入数据时,一般是将数据写入一个新空白逻辑块,而不会对旧数据进行覆盖写。在此工作原理下,在全闪存阵列使用的前期,因为全闪存阵列的空间使用量充足,能够持续写入数据,但是,随着数据量写入的增多,全闪存阵列中将不会拥有足够的存储空间来写入新数据,此时,就需要引入垃圾回收机制来对全闪存阵列中的数据进行搬迁和空间回收,并以此来保证全闪存阵列中能够有足够的空白逻辑块来写入新数据。
但是,由于垃圾回收机制中的垃圾回收速率会低于目标主机向全闪存阵列发送写IO(Input Output,输入输出)的速率,所以,一旦在全闪存阵列中启动垃圾回收机制以后,如果不对目标主机向全闪存阵列发送写IO的速率进行限制,就会使得全闪存阵列的空间使用量持续增加,并最终会导致全闪存阵列因为存储空间不足而出现故障。目前,针对这一技术问题,还没有较为有效的解决办法。
由此可见,如何避免全闪存阵列因为存储空间不足而出现的故障问题,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种全闪存阵列写IO的调整方法、装置、设备及介质,以避免全闪存阵列因为存储空间不足而出现的故障问题。其具体方案如下:
一种全闪存阵列写IO的调整方法,应用于全闪存阵列,包括:
当接收到目标主机所发送的写IO时,则判断所述全闪存阵列是否在执行垃圾回收机制;
若所述全闪存阵列在执行所述垃圾回收机制,则获取所述目标主机发送所述写IO的速率,并获取所述全闪存阵列在执行所述垃圾回收机制时的垃圾回收速率;
根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整,以使所述目标主机发送所述写IO的速率与所述垃圾回收速率保持平衡。
优选的,所述根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整的过程,包括:
计算所述全闪存阵列的空间使用量与所述全闪存阵列的总容量的目标占比;
若所述目标占比小于第一预设值,则按照所述目标主机发送所述写IO的速率对所述写IO进行落盘;
若所述目标占比大于等于所述第一预设值且小于等于第二预设值,则将所述写IO存储至预设数据链表,并以第一预设速率对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第二预设值,则将所述写IO存储至所述预设数据链表,并暂停对所述写IO进行落盘。
优选的,还包括:
当所述全闪存阵列的空间使用量发生变化时,则再次执行所述计算所述全闪存阵列的空间使用量与所述全闪存阵列的总容量的目标占比的步骤;
在暂停对所述写IO进行落盘期间,若所述目标占比恢复到第三预设值,则执行所述将所述写IO存储至预设数据链表,并以第一预设速率对所述预设数据链表中的所述写IO进行落盘的步骤;其中,所述第三预设值大于所述第一预设值且小于所述第二预设值。
优选的,所述以第一预设速率对所述预设数据链表中的所述写IO进行落盘的过程,包括:
分别获取所述全闪存阵列在执行所述垃圾回收机制时发起垃圾回收写IO的第一速率以及完成垃圾回收写IO的第二速率,并判断所述第一速率是否大于所述第二速率;
若所述第一速率大于所述第二速率,则判断所述目标占比是否大于等于所述第一预设值且小于等于第四预设值;其中,所述第四预设值为所述第一预设值和所述第二预设值的平均值;
若所述目标占比大于等于所述第一预设值且小于等于所述第四预设值,则以小于第二预设速率的速率值对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第四预设值且小于等于所述第二预设值,则暂停对所述写IO进行落盘。
优选的,所述判断所述第一速率是否大于所述第二速率的过程之后,还包括:
若所述第一速率小于等于所述第二速率,则判断所述目标占比是否大于所述第四预设值且小于等于所述第二预设值;
若所述目标占比大于所述第四预设值且小于等于所述第二预设值,则以小于所述第二预设速率的速率值对所述预设数据链表中的所述写IO进行落盘。
优选的,所述判断所述目标占比是否大于所述第四预设值且小于等于所述第二预设值的过程之后,还包括:
若所述目标占比大于等于所述第一预设值且小于等于所述第四预设值,则分别获取所述目标主机发送所述写IO的第三速率以及所述全闪存阵列完成所述写IO的第四速率;
当所述第三速率大于所述第四速率时,则以小于第三预设速率的速率值对所述预设数据链表中的所述写IO进行落盘;
当所述第三速率小于等于所述第四速率时,则以所述全闪存阵列的最大速率对所述预设数据链表中的所述写IO进行落盘。
优选的,所述第三预设速率的数学表达式为:N*10/(x-B);
式中,N为所述预设数据链表中所挂载的任务总数,B为所述目标占比,x为所述第四预设值。
相应的,本发明还公开了一种全闪存阵列写IO的调整装置,应用于全闪存阵列,包括:
回收判断模块,用于当接收到目标主机所发送的写IO时,则判断所述全闪存阵列是否在执行垃圾回收机制;
速率获取模块,用于当所述全闪存阵列在执行所述垃圾回收机制时,则获取所述目标主机发送所述写IO的速率,并获取所述全闪存阵列在执行所述垃圾回收机制时的垃圾回收速率;
速率调整模块,用于根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整,以使所述目标主机发送所述写IO的速率与所述垃圾回收速率保持平衡。
相应的,本发明还公开了一种全闪存阵列写IO的调整设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前述所公开的一种全闪存阵列写IO的调整方法的步骤。
相应的,本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述所公开的一种全闪存阵列写IO的调整方法的步骤。
可见,在本发明中,当全闪存阵列接收到目标主机所发送的写IO时,首先是判断全闪存阵列是否在执行垃圾回收机制,如果全闪存阵列正在执行垃圾回收机制,则获取目标主机向全闪存阵列发送写IO的速率,同时并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率,然后,再根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整,这样就相当于是对目标主机向全闪存阵列发送写IO的速率进行了限制,在此设置机制下,就可以使得目标主机向全闪存阵列发送写IO的速率与垃圾回收速率保持平衡。显然,当目标主机向全闪存阵列发送写IO的速率与全闪存阵列执行垃圾回收机制时的垃圾回收速率保持平衡之后,全闪存阵列就不会出现空间使用量持续增加,并导致其存储空间不足的现象,由此就可以避免全闪存阵列因为存储空间不足而出现的故障问题。相应的,本发明所公开的一种全闪存阵列写IO的调整装置、设备及介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种全闪存阵列写IO的调整方法的流程图;
图2为本发明实施例所提供的一种对全闪存阵列完成写IO速率调整方法的流程图;
图3为本发明实施例所提供的一种全闪存阵列写IO的调整装置的结构图;
图4为本发明实施例所提供的一种全闪存阵列写IO的调整设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参照图1,图1为本发明实施所提供的一种全闪存阵列写IO的调整方法,该调整方法包括:
步骤S11:当接收到目标主机所发送的写IO时,则判断全闪存阵列是否在执行垃圾回收机制;
步骤S12:若全闪存阵列在执行垃圾回收机制,则获取目标主机发送写IO的速率,并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率;
步骤S13:根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整,以使目标主机发送写IO的速率与垃圾回收速率保持平衡。
在本实施例中,是提供了一种全闪存阵列写IO的调整方法,通过该调整方法可以避免全闪存阵列因为存储空间不足而出现的故障问题。需要说明的是,在本实施例中,是以全闪存阵列为执行主体进行说明。
具体的,当全闪存阵列接收到目标主机所发送的写IO时,首先是判断全闪存阵列是否在执行垃圾回收机制,如果全闪存阵列正在执行垃圾回收机制,则说明全闪存阵列中的存储空间已经不是特别充足。在此情况下,则获取目标主机向全闪存阵列发送写IO的速率,并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率;当获取得到了目标主机向全闪存阵列发送写IO的速率以及全闪存阵列在执行垃圾回收机制时的垃圾回收速率之后,再根据全闪存阵列的空间使用量来对全闪存阵列完成写IO的速率进行调整。
可以理解的是,当获取得到了目标主机向全闪存阵列发送写IO的速率、全闪存阵列在执行垃圾回收机制时的垃圾回收速率、以及全闪存阵列的空间使用量之后,就可以利用这些参数值来评估全闪存阵列的当前工作状态,并基于全闪存阵列的当前工作状态来对全闪存阵列完成写IO的速率进行调整。
能够想到的是,当对全闪存阵列完成写IO的速率进行调整之后,就相当于是对目标主机向全闪存阵列发送写IO的速率进行了限制与调整,这样就能够达到目标主机向全闪存阵列发送写IO的速率与全闪存阵列执行垃圾回收机制时的垃圾回收速率保持平衡的目的,在此设置机制下,就可以避免全闪存阵列的空间使用量持续增加,并由此导致全闪存阵列因为存储空间不足而出现的故障问题。
可见,在本实施例中,当全闪存阵列接收到目标主机所发送的写IO时,首先是判断全闪存阵列是否在执行垃圾回收机制,如果全闪存阵列正在执行垃圾回收机制,则获取目标主机向全闪存阵列发送写IO的速率,同时并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率,然后,再根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整,这样就相当于是对目标主机向全闪存阵列发送写IO的速率进行了限制,在此设置机制下,就可以使得目标主机向全闪存阵列发送写IO的速率与垃圾回收速率保持平衡。显然,当目标主机向全闪存阵列发送写IO的速率与全闪存阵列执行垃圾回收机制时的垃圾回收速率保持平衡之后,全闪存阵列就不会出现空间使用量持续增加,并导致其存储空间不足的现象,由此就可以避免全闪存阵列因为存储空间不足而出现的故障问题。
基于上述实施例,本实施例对技术方案作进一步的说明与优化,请参见图2,图2为本发明实施例所提供的一种对全闪存阵列完成写IO速率调整方法的流程图。作为一种优选的实施方式,上述步骤:根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整的过程,包括:
步骤S131:计算全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比;
步骤S132:若目标占比小于第一预设值,则按照目标主机发送写IO的速率对写IO进行落盘;
步骤S133:若目标占比大于等于第一预设值且小于等于第二预设值,则将写IO存储至预设数据链表,并以第一预设速率对预设数据链表中的写IO进行落盘;
步骤S134:若目标占比大于第二预设值,则将写IO存储至预设数据链表,并暂停对写IO进行落盘。
在实际操作过程中,当获取到了全闪存阵列的空间使用量之后,首先是计算全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比,然后,再将目标占比与预设阈值进行比较,并根据比较结果来选择全闪存阵列到底是以哪种工作模式来对全闪存阵列完成写IO的速率进行调整。
具体的,在本实施例中,是将目标占比设置为B、第一预设值设置为70、第二预设值设置为90为例进行具体说明。当B<70时,则说明全闪存阵列中的存储空间还比较大,此时全闪存阵列不用对其完成写IO的速率进行调整,只需按照正常的处理流程对目标主机所发送的写IO进行落盘处理即可;当70≤B≤90时,则说明全闪存阵列中的存储空间已经有所不足,此时全闪存阵列会先将目标主机向全闪存阵列发送的写IO存储至预设数据链表,然后,再以第一预设速率对预设数据链表中的写IO进行落盘,并以此达到对预设数据链表中的写IO进行定量处理的目的;当B>90时,则说明全闪存阵列中的存储空间已经严重不足,此时全闪存阵列会将目标主机所发送的写IO存储至预设数据链表,不再取出,并以此达到对目标主机发送写IO进行限死的效果。
综上所述,在实际应用中,当B<70时,全闪存阵列会工作在正常模式下;当70≤B≤90时,全闪存阵列会工作在限流模式下;当B>90时,全闪存阵列会工作在限死模式下。
显然,通过本实施例所提供的技术方案,可以进一步提高全闪存阵列在实际运行过程中的整体可靠性。
作为一种优选的实施方式,上述方法还包括:
当全闪存阵列的空间使用量发生变化时,则再次执行步骤S131:计算全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比;
在暂停对写IO进行落盘期间,若目标占比恢复到第三预设值,则执行将写IO存储至预设数据链表,并以第一预设速率对预设数据链表中的写IO进行落盘的步骤;
其中,第三预设值大于第一预设值且小于第二预设值。
可以理解的是,当全闪存阵列的空间使用量发生变化时,全闪存阵列的工作模式也会相应发生变化。因此,在本实施例中,当全闪存阵列的空间使用量发生变化时,需要再次执行步骤S131:计算全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比,并根据计算得到的目标占比来判断全闪存阵列到底是工作在正常模式、限流模式还是限死模式。
需要注意的是,在本实施例中,为了避免全闪存阵列在限流模式和限死模式之间的来回振荡,是在全闪存阵列工作在限死工作模式时,通过判断新目标占比是否恢复到第三预设值来决定全闪存阵列是否能够工作在限流模式下。
其中,当全闪存阵列暂停对写IO进行落盘期间,如果全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比恢复到第三预设值全闪存阵列会将目标主机所发送的写IO存储至预设数据链表,并会以第一预设速率对预设数据链表中的写IO进行落盘。也就是说,只有全闪存阵列的空间使用量与全闪存阵列的总容量的目标占比恢复到第三预设值,全闪存阵列才能由限死模式恢复到限流模式。
具体的,在本实施例中,是以目标占比为B、第一预设值为70、第二预设值为90、第三预设值为85为例进行具体说明。也即,当全闪存阵列工作在限死模式下时,如果B恢复到85,那么,全闪存阵列的工作模式就会由限死模式跳变到限流模式。
显然,通过本实施例所提供的技术方案,可以避免全闪存阵列在不同工作模式之间的来回切换,这样就能够进一步提高全闪存阵列在运行期间的稳定性。
作为一种优选的实施方式,上述步骤:以第一预设速率对预设数据链表中的写IO进行落盘的过程,包括:
分别获取全闪存阵列在执行垃圾回收机制时发起垃圾回收写IO的第一速率以及完成垃圾回收写IO的第二速率,并判断第一速率是否大于第二速率;
若第一速率大于第二速率,则判断目标占比是否大于等于第一预设值且小于等于第四预设值;
其中,第四预设值为第一预设值和第二预设值的平均值;
若目标占比大于等于第一预设值且小于等于第四预设值,则以小于第二预设速率的速率值对预设数据链表中的写IO进行落盘;
若目标占比大于第四预设值且小于等于第二预设值,则暂停对写IO进行落盘。
在本实施例中,是通过如下方法来使得全闪存阵列工作于限流模式,也即,当目标占比大于等于第一预设值且小于等于第二预设值时,首先是分别获取全闪存阵列在执行垃圾回收机制时发起垃圾回收写IO的第一速率以及完成垃圾回收写IO的速率,其中,第一速率以gcloIn进行标记,第二速率以gcloOut进行标记。如果gcloIn>gcloOut,则说明全闪存阵列当前时刻正在进行大量的垃圾回收,且垃圾回收速率低于全闪存阵列所接收到的写IO的速率,也就是说,全闪存阵列目前正在全力执行垃圾回收机制,并且,全闪存阵列当前不足以应对来自目标主机所发送的写IO,在此情况下,全闪存阵列就需要优先保证垃圾回收任务。
在本实施例中,还是以目标占比为B、第一预设值为70、第二预设值为90、第四预设值为80为例进行说明。当gcloIn>gcloOut时,如果70≤B≤80时,那么,全闪存阵列会以小于第二预设速率的速率值对预设数据链表中的写IO进行落盘。具体的,在实际操作过程中,全闪存阵列每秒最多不能从预设数据链表中提取255个写IO,其中,每秒255个写IO的提取过程可以利用定时器来实现,全闪存阵列提取255个写IO是为了与全闪存阵列的满分条相匹配,当然,在实际应用中,还可以对该取值进行适应性的调整,此处不作具体赘述;当80<B≤90时,全闪存阵列会暂停对目标主机所发送的写IO进行落盘,也即,全闪存阵列不会从预设数据链表中提取写IO,这样就相当于是将目标主机限死,从而使得全闪存阵列能够全力执行垃圾回收机制,并由此使得全闪存阵列中能够具有更多的空间使用量。
显然,通过本实施例所提供的技术方案,就可以达到对全闪存阵列完成写IO的速率进行限制的效果,并由此使得全闪存阵列具有更多的空间使用量。
作为一种优选的实施方式,上述步骤:判断第一速率是否大于第二速率的过程之后,还包括:
若第一速率小于等于第二速率,则判断目标占比是否大于第四预设值且小于等于第二预设值;
若目标占比大于第四预设值且小于等于第二预设值,则以小于第二预设速率的速率值对预设数据链表中的写IO进行落盘。
可以理解的是,如果gcloIn≤gcloOut,则说明全闪存阵列正在执行垃圾回收机制,但是,此时全闪存阵列仍然有富余的能力处理来自目标主机所发送的写IO,在此情况下,则可以适当地增加全闪存阵列处理写IO的速率。也即,当gcloIn≤gcloOut时,如果80<B≤90,那么,全闪存阵列就会以小于第二预设速率的速率值来对预设数据链表中的写IO进行落盘。
显然,通过本实施例所提供的技术方案,可以相对提高全闪存阵列完成写IO的效率。
作为一种优选的实施方式,上述步骤:判断目标占比是否大于第四预设值且小于等于第二预设值的过程之后,还包括:
若目标占比大于等于第一预设值且小于等于第四预设值,则分别获取目标主机发送写IO的第三速率以及全闪存阵列完成写IO的第四速率;
当第三速率大于第四速率时,则以小于第三预设速率的速率值对预设数据链表中的写IO进行落盘;
当第三速率小于等于第四速率时,则以全闪存阵列的最大速率对预设数据链表中的写IO进行落盘。
具体的,如果70≤B≤80,则分别获取目标主机向全闪存阵列发送写IO的第三速率以及全闪存阵列完成写IO的第四速率,其中,第三速率和第四速率分别用hostIoIn和hostIoOut来标记。
如果hostIoIn>hostIoOut,则说明目标主机向全闪存阵列发送写IO的速率超过全闪存阵列完成写IO的速率,此状况反映出全闪存阵列当前写IO处理压力较大,并出现了全闪存阵列完成写IO不及时的情况。此时,全闪存阵列应该以小于第三预设速率的速率值对预设数据链表中的写IO进行落盘。
如果hostIoIn≤hostIoOut,则说明目标主机向全闪存阵列发送写IO的速率小于全闪存阵列完成写IO的速率,此情况反映出全闪存阵列当前处理写IO的压力较小,有能力来处理更多目标主机所发送的写IO,此时全闪存阵列应该从预设数据链表中提取全部的写IO来对其处理,以使得全闪存阵列能够以最大速率来对预设数据链表中的写IO进行落盘。
具体的,第三预设速率的数学表达式为:N*10/(x-B);
式中,N为预设数据链表中所挂载的任务总数,B为目标占比,x为第四预设值。
在本实施例中,是提供了一种第三预设速率的数学表达式,显然,当通过数学公式来限制全闪存阵列每秒所完成的写IO数量时,就可以使得全闪存阵列完成写IO过程更加均衡,由此就可以使得全闪存阵列的整体工作性能更加稳定。
请参见图3,图3为本发明实施例所提供的一种全闪存阵列写IO的调整装置的结构图,该调整装置包括:
回收判断模块21,用于当接收到目标主机所发送的写IO时,则判断全闪存阵列是否在执行垃圾回收机制;
速率获取模块22,用于当全闪存阵列在执行垃圾回收机制时,则获取目标主机发送写IO的速率,并获取全闪存阵列在执行垃圾回收机制时的垃圾回收速率;
速率调整模块23,用于根据全闪存阵列的空间使用量对全闪存阵列完成写IO的速率进行调整,以使目标主机发送写IO的速率与垃圾回收速率保持平衡。
本发明实施例所提供的一种全闪存阵列写IO的调整装置,具有前述所公开的一种全闪存阵列写IO的调整方法所具有的有益效果。
请参见图4,图4为本发明实施例所提供的一种全闪存阵列写IO的调整装置的结构图,该调整设备包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序时实现如前述所公开的一种全闪存阵列写IO的调整方法的步骤。
本发明实施例所提供的一种全闪存阵列写IO的调整装置,具有前述所公开的一种全闪存阵列写IO的调整方法所具有的有益效果。
相应的,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述所公开的一种全闪存阵列写IO的调整方法的步骤。
本发明实施例所提供的一种计算机可读存储介质,具有前述所公开的一种全闪存阵列写IO的调整方法所具有的有益效果。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。最后,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种全闪存阵列写IO的调整方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种全闪存阵列写IO的调整方法,其特征在于,应用于全闪存阵列,包括:
当接收到目标主机所发送的写IO时,则判断所述全闪存阵列是否在执行垃圾回收机制;
若所述全闪存阵列在执行所述垃圾回收机制,则获取所述目标主机发送所述写IO的速率,并获取所述全闪存阵列在执行所述垃圾回收机制时的垃圾回收速率;
根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整,以使所述目标主机发送所述写IO的速率与所述垃圾回收速率保持平衡;
所述根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整的过程,包括:
计算所述全闪存阵列的空间使用量与所述全闪存阵列的总容量的目标占比;
若所述目标占比小于第一预设值,则按照所述目标主机发送所述写IO的速率对所述写IO进行落盘;
若所述目标占比大于等于所述第一预设值且小于等于第二预设值,则将所述写IO存储至预设数据链表,并以第一预设速率对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第二预设值,则将所述写IO存储至所述预设数据链表,并暂停对所述写IO进行落盘;
所述以第一预设速率对所述预设数据链表中的所述写IO进行落盘的过程,包括:
分别获取所述全闪存阵列在执行所述垃圾回收机制时发起垃圾回收写IO的第一速率以及完成垃圾回收写IO的第二速率,并判断所述第一速率是否大于所述第二速率;
若所述第一速率大于所述第二速率,则判断所述目标占比是否大于等于所述第一预设值且小于等于第四预设值;其中,所述第四预设值为所述第一预设值和所述第二预设值的平均值;
若所述目标占比大于等于所述第一预设值且小于等于所述第四预设值,则以小于第二预设速率的速率值对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第四预设值且小于等于所述第二预设值,则暂停对所述写IO进行落盘。
2.根据权利要求1所述的调整方法,其特征在于,还包括:
当所述全闪存阵列的空间使用量发生变化时,则再次执行所述计算所述全闪存阵列的空间使用量与所述全闪存阵列的总容量的目标占比的步骤;
在暂停对所述写IO进行落盘期间,若所述目标占比恢复到第三预设值,则执行所述将所述写IO存储至预设数据链表,并以第一预设速率对所述预设数据链表中的所述写IO进行落盘的步骤;其中,所述第三预设值大于所述第一预设值且小于所述第二预设值。
3.根据权利要求1所述的调整方法,其特征在于,所述判断所述第一速率是否大于所述第二速率的过程之后,还包括:
若所述第一速率小于等于所述第二速率,则判断所述目标占比是否大于所述第四预设值且小于等于所述第二预设值;
若所述目标占比大于所述第四预设值且小于等于所述第二预设值,则以小于所述第二预设速率的速率值对所述预设数据链表中的所述写IO进行落盘。
4.根据权利要求3所述的调整方法,其特征在于,所述判断所述目标占比是否大于所述第四预设值且小于等于所述第二预设值的过程之后,还包括:
若所述目标占比大于等于所述第一预设值且小于等于所述第四预设值,则分别获取所述目标主机发送所述写IO的第三速率以及所述全闪存阵列完成所述写IO的第四速率;
当所述第三速率大于所述第四速率时,则以小于第三预设速率的速率值对所述预设数据链表中的所述写IO进行落盘;
当所述第三速率小于等于所述第四速率时,则以所述全闪存阵列的最大速率对所述预设数据链表中的所述写IO进行落盘。
6.一种全闪存阵列写IO的调整装置,其特征在于,应用于全闪存阵列,包括:
回收判断模块,用于当接收到目标主机所发送的写IO时,则判断所述全闪存阵列是否在执行垃圾回收机制;
速率获取模块,用于当所述全闪存阵列在执行所述垃圾回收机制时,则获取所述目标主机发送所述写IO的速率,并获取所述全闪存阵列在执行所述垃圾回收机制时的垃圾回收速率;
速率调整模块,用于根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整,以使所述目标主机发送所述写IO的速率与所述垃圾回收速率保持平衡;
所述根据所述全闪存阵列的空间使用量对所述全闪存阵列完成所述写IO的速率进行调整的过程,包括:
计算所述全闪存阵列的空间使用量与所述全闪存阵列的总容量的目标占比;
若所述目标占比小于第一预设值,则按照所述目标主机发送所述写IO的速率对所述写IO进行落盘;
若所述目标占比大于等于所述第一预设值且小于等于第二预设值,则将所述写IO存储至预设数据链表,并以第一预设速率对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第二预设值,则将所述写IO存储至所述预设数据链表,并暂停对所述写IO进行落盘;
所述以第一预设速率对所述预设数据链表中的所述写IO进行落盘的过程,包括:
分别获取所述全闪存阵列在执行所述垃圾回收机制时发起垃圾回收写IO的第一速率以及完成垃圾回收写IO的第二速率,并判断所述第一速率是否大于所述第二速率;
若所述第一速率大于所述第二速率,则判断所述目标占比是否大于等于所述第一预设值且小于等于第四预设值;其中,所述第四预设值为所述第一预设值和所述第二预设值的平均值;
若所述目标占比大于等于所述第一预设值且小于等于所述第四预设值,则以小于第二预设速率的速率值对所述预设数据链表中的所述写IO进行落盘;
若所述目标占比大于所述第四预设值且小于等于所述第二预设值,则暂停对所述写IO进行落盘。
7.一种全闪存阵列写IO的调整设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的一种全闪存阵列写IO的调整方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的一种全闪存阵列写IO的调整方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693074.3A CN111880730B (zh) | 2020-07-17 | 2020-07-17 | 一种全闪存阵列写io的调整方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693074.3A CN111880730B (zh) | 2020-07-17 | 2020-07-17 | 一种全闪存阵列写io的调整方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111880730A CN111880730A (zh) | 2020-11-03 |
CN111880730B true CN111880730B (zh) | 2022-07-05 |
Family
ID=73156069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010693074.3A Active CN111880730B (zh) | 2020-07-17 | 2020-07-17 | 一种全闪存阵列写io的调整方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880730B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564147A (zh) * | 2022-01-06 | 2022-05-31 | 浙江大华存储科技有限公司 | 一种数据流的自适应调整方法、系统、硬盘和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598508A (zh) * | 2016-12-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种固态硬盘及其写入仲裁方法、系统 |
CN108959118A (zh) * | 2018-06-27 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种数据写入的方法及装置 |
CN108984116A (zh) * | 2018-06-14 | 2018-12-11 | 浙江大华技术股份有限公司 | 一种固态硬盘垃圾回收带宽的流控方法及装置 |
CN109857337A (zh) * | 2018-12-10 | 2019-06-07 | 浪潮(北京)电子信息产业有限公司 | 一种写入速度控制方法、系统、装置及可读存储介质 |
CN111078134A (zh) * | 2019-10-18 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 调整存储阵列中垃圾回收并发数量的方法、设备及介质 |
CN111158598A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种全闪磁盘阵列的垃圾回收方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298606A (zh) * | 2013-07-17 | 2015-01-21 | 光宝科技股份有限公司 | 固态存储装置中垃圾搜集动作的控制方法 |
-
2020
- 2020-07-17 CN CN202010693074.3A patent/CN111880730B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598508A (zh) * | 2016-12-30 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种固态硬盘及其写入仲裁方法、系统 |
CN108984116A (zh) * | 2018-06-14 | 2018-12-11 | 浙江大华技术股份有限公司 | 一种固态硬盘垃圾回收带宽的流控方法及装置 |
CN108959118A (zh) * | 2018-06-27 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种数据写入的方法及装置 |
CN109857337A (zh) * | 2018-12-10 | 2019-06-07 | 浪潮(北京)电子信息产业有限公司 | 一种写入速度控制方法、系统、装置及可读存储介质 |
CN111078134A (zh) * | 2019-10-18 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 调整存储阵列中垃圾回收并发数量的方法、设备及介质 |
CN111158598A (zh) * | 2019-12-29 | 2020-05-15 | 北京浪潮数据技术有限公司 | 一种全闪磁盘阵列的垃圾回收方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
Suzhen Wu ; Bo Mao ; Yanping Lin ; Hong Jiang."Improving Performance for Flash-Based Storage Systems through GC-Aware Cache Management".《IEEE Transactions on Parallel and Distributed Systems》.2017, * |
一种基于预搜索的自适应闪存垃圾回收算法;李恒恒等;《小型微型计算机系统》;20151015(第10期);第2403-2407页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111880730A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111090398B (zh) | 固态硬盘的垃圾回收方法、装置、设备及可读存储介质 | |
AU2008308549B2 (en) | Solid state drive optimizer | |
US11748322B2 (en) | Utilizing different data compression algorithms based on characteristics of a storage system | |
CN102508785B (zh) | 一种磨损均衡方法及装置 | |
CN112749102B (zh) | 一种内存空间垃圾回收处理方法、装置、设备及介质 | |
CN106407224B (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN108196978A (zh) | 数据存储方法、装置、数据存储系统及可读存储介质 | |
CN111383031B (zh) | 一种区块链中的智能合约执行方法、系统和电子设备 | |
CN114564284B (zh) | 虚拟机的数据备份方法、计算机设备及存储介质 | |
CN111880730B (zh) | 一种全闪存阵列写io的调整方法、装置、设备及介质 | |
EP3951582A1 (en) | Offloading device management responsibilities from a storage device in an array of storage devices | |
CN114356248B (zh) | 一种数据处理方法和装置 | |
CN104246716A (zh) | 存储空间对象的处理方法及设备 | |
CN111506256B (zh) | 减少写入效能变化并防止io阻塞的方法 | |
CN111124943B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN108572924B (zh) | 一种3d mlc闪存设备的请求处理方法 | |
CN109491593B (zh) | 一种数据存储管理系统及方法 | |
CN107402838A (zh) | 一种基于写缓存的备份方法及存储系统 | |
JP7048890B2 (ja) | 情報処理装置、情報収集プログラム及び情報収集方法 | |
CN105159804B (zh) | 一种数据块处理的方法、装置及设备 | |
CN111949561B (zh) | 一种存储设备及其控制方法和控制装置 | |
TWI687808B (zh) | 減少寫入效能變化並防止io阻塞的方法 | |
CN117573274A (zh) | 一种基于应用特征的自适应容器热迁移方法 | |
CN117908800A (zh) | 优化固态硬盘映射表存储的方法、装置、设备及存储介质 | |
CN113849306A (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 |