CN111708491B - 一种随机写方法和装置 - Google Patents
一种随机写方法和装置 Download PDFInfo
- Publication number
- CN111708491B CN111708491B CN202010472997.6A CN202010472997A CN111708491B CN 111708491 B CN111708491 B CN 111708491B CN 202010472997 A CN202010472997 A CN 202010472997A CN 111708491 B CN111708491 B CN 111708491B
- Authority
- CN
- China
- Prior art keywords
- state disk
- solid state
- weighted
- super
- determining
- 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
- 239000007787 solid Substances 0.000 claims 42
- 230000004044 response Effects 0.000 claims 6
- 230000015654 memory Effects 0.000 claims 3
- 230000007787 long-term memory Effects 0.000 claims 2
- 230000006403 short-term memory Effects 0.000 claims 2
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
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0614—Improving the reliability of 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/064—Management of blocks
-
- 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/0653—Monitoring storage devices or 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种随机写方法和装置,该方法包括:使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数。本发明能够提高固态硬盘随机写的每秒输入输出性能和数据一致性。
Description
技术领域
本发明涉及数据存储领域,更具体地,特别是指一种随机写方法和装置。
背景技术
在数据量指数级增长的信息化时代,快速有效的存储和处理数据成为了研究的重要方向。机械硬盘的速度已经无法满足目前CPU的计算速度,固态硬盘以读写速度快、体积小的优势逐渐成为了主流存储器件,广泛应用到生活中的各个领域,SSD(固态硬盘)的性能也随之受到了重视。但现有技术的固态硬盘随机写的处理速度低、一致性差导致性能不能满足要求。
针对现有技术中固态硬盘随机写的处理速度低、一致性差的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种随机写方法和装置,能够提高固态硬盘随机写的每秒输入输出性能和数据一致性。
基于上述目的,本发明实施例的第一方面提供了一种随机写方法,包括执行以下步骤:
使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;
再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断固态硬盘中空闲块数量最少的超级逻辑单元的数量是否超过预定阈值;
响应于超过预定阈值,而选择空闲块数量最少的超级逻辑单元作为目标超级逻辑单元。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过预定阈值,而扫描固态硬盘中是否存在至少一个处于空闲状态的超级逻辑单元;
响应于存在至少一个处于空闲状态的超级逻辑单元,而将其中之一确定为目标超级逻辑单元。
在一些实施方式中,使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的旧的加权固态硬盘数据帧数量与标准权重的当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
在一些实施方式中,动态写仲裁包括三个阶段,每个阶段包括空闲块数量、历史加权固态硬盘数据帧数量、和每秒读写次数之间的对应关系;
使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于历史加权固态硬盘数据帧数量确定相对应的每秒读写次数所在的阶段作为调整阶段,并基于调整阶段和历史加权固态硬盘数据帧数量确定预期每秒读写次数。
本发明实施例的第二方面提供了一种随机写装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;
再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断固态硬盘中空闲块数量最少的超级逻辑单元的数量是否超过预定阈值;
响应于超过预定阈值,而选择空闲块数量最少的超级逻辑单元作为目标超级逻辑单元。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过预定阈值,而扫描固态硬盘中是否存在至少一个处于空闲状态的超级逻辑单元;
响应于存在至少一个处于空闲状态的超级逻辑单元,而将其中之一确定为目标超级逻辑单元。
在一些实施方式中,使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的旧的加权固态硬盘数据帧数量与标准权重的当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
在一些实施方式中,动态写仲裁包括三个阶段,每个阶段包括空闲块数量、历史加权固态硬盘数据帧数量、和每秒读写次数之间的对应关系;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于历史加权固态硬盘数据帧数量确定相对应的每秒读写次数所在的阶段作为调整阶段,并基于调整阶段和历史加权固态硬盘数据帧数量确定预期每秒读写次数。
本发明具有以下有益技术效果:本发明实施例提供的随机写方法和装置,通过使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数的技术方案,能够提高固态硬盘随机写的每秒输入输出性能和数据一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的随机写方法的流程示意图;
图2为本发明提供的随机写方法的动态写仲裁曲线图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够提高固态硬盘随机写的每秒输入输出性能和数据一致性方法的一个实施例。图1示出的是本发明提供的随机写方法的流程示意图。
所述的随机写方法,如图1所示,包括执行以下步骤:
步骤S101:使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
步骤S103:使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
步骤S105:使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
步骤S107:使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;
步骤S109:再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数。
本发明提出了一种有效提高SSD随机写性能的方法,包含了提高随机写的IOPS(每秒输入输出数)和一致性。本发明通过将super lun(超级逻辑单元)之间的剩余空间进行平衡之后,利用写仲裁控制方案根据free block(空闲块)空间对随机写的IOPS进行控制,通过LSTM(长短期记忆网络)结构的方式计算剩余空间的dataframe(固态硬盘数据帧)数来提高随机写的一致性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断固态硬盘中空闲块数量最少的超级逻辑单元的数量是否超过预定阈值;
响应于超过预定阈值,而选择空闲块数量最少的超级逻辑单元作为目标超级逻辑单元。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过预定阈值,而扫描固态硬盘中是否存在至少一个处于空闲状态的超级逻辑单元;
响应于存在至少一个处于空闲状态的超级逻辑单元,而将其中之一确定为目标超级逻辑单元。
在一些实施方式中,使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的旧的加权固态硬盘数据帧数量与标准权重的当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
在一些实施方式中,动态写仲裁包括三个阶段,每个阶段包括空闲块数量、历史加权固态硬盘数据帧数量、和每秒读写次数之间的对应关系;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于历史加权固态硬盘数据帧数量确定相对应的每秒读写次数所在的阶段作为调整阶段,并基于调整阶段和历史加权固态硬盘数据帧数量确定预期每秒读写次数。
根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据如图2所示的具体实施例进一步阐述本发明的具体实施方式。
第一步:WLM(磨损均衡模块)平衡各个super lun之间的剩余空间过程;
首先是平衡super lun之间的剩余空间,具体实现是首先判断free block的数目最少的super lun和free block的数目最多的super lun是否超过阈值,该阈值可以设定,当前设定为3个。
如果没有超过该阈值,则继续判断super lun是否处于空闲状态,空闲状态即为暂时没有从该super lun上选取free block用来填写数据,哪个super lun处于空闲状态,则选择该super lun,如果有多个super lun处于空闲状态,则选择free block数少的superlun。
如果超过该阈值,则跳过对super lun的状态判断,直接选择free block数目少的super lun,即从该super lun中选取目的free block用来填写数据。
以上为WLM根据free block数目平衡各个super lun之间的剩余空间的步骤,平衡后WLM通过free block数和坏块表来计算当前的剩余dataframe数发送给LKM(查找管理模块)。
第二步:LKM接收到dataframe数重新计算dataframe数
LKM在接收到WLM收到的dataframe数后借鉴LSTM的思想计算出新的dataframe数,减少应为回收出新的block而带来的波动,提高了一致性。
在计算稳态时的空间中,在整个写过程中,block数目是随时变化的,令B1,B2,B3…Bn代表block数目变化的情况,根据该block的实际坏块情况,计算剩余的dataframe计数空间为FB1,FB2,FB3…FBn,使用avgFB1,avgFB2,avgFB3…avgFBn来对应Bn时的历史平均dataframe计数空间,令avgFB1=FB1,则
avgFBn+1=(βavgFBn+FBn+1)/(β+1)
其中β值的含义是指只保留最近多次的FBn来进行平均,这借鉴了LSTM的思想。
具体如何确定β,我们在实际获取了在随机写从调整到稳态过程的freedataframe空间数据,通过计算获得β值使得free dataframe数据在稳态过程中经过上述公式计算后波动较小,与实际的测试情况基本相符。经过对比β值在0.9的时候avgFBn+1波动曲线接近原图并且波动范围小,稳态中avgFBn+1的变化很小。
第三步:根据重新计算的dataframe数avgFBn+1按照图2所示的曲线调整IOPS。
新的写仲裁方案如图2中实线所示,start_credit_num的含义是写仲裁调控开始介入的free block对应dataframe数,steady_num是写仲裁调控下稳态时的free block对应dataframe数,forbid_credit_num是开始禁止IOPS的free block对应dataframe数,stop_credit_num是将IOPS降为0的free block对应dataframe数。
调整的过程分为三个阶段,第一个阶段是当第二步中计算的dataframe数avgFBn+1在start_credit_num=144对应dataframe数到forbid_credit_num=24对应dataframe数之间,第二个阶段为forbid_credit_num=24对应dataframe数到stop_credit_num=18对应dataframe数(原方案为16)之间,第三阶段为stop_credit_num=18对应dataframe数以下。
根据dataframe数avgFBn+1来判断剩余空间处于第几个阶段,第一个阶段和第二阶段的IOPS根据相似三角形性质的对应边成比例,可以得出相应剩余空间对应的IOPS,第三阶段IOPS是0。在公式1中β值在0.9的时候avgFBn+1波动曲线接近原图并且波动范围小,稳态中avgFBn+1的变化很小,所以计算的预期IOPS的波动小,调整时比较平滑,一致性也就提高了。
第四步:根据第三步计算出来的IOPS进行逐步调整。
第三步计算得到的IOPS后,需要根据稳态中avgFBn+1与steady_num数量的dataframe数比较进行动态调整。
avgFBn+1接近steady_num数量的dataframe数时,判定为稳态。avgFBn+1大于设定的steady_num,说明稳态情况离我们的预设情况有偏差,则提升预设的IOPS为(1+δ)*IOPS,这里暂定δ为5%。当Bn小于forbid_credit_num的dataframe空间时,说明预设的IOPS过高了,需要较小以降低block的消耗速度,将IOPS降低为(1-ζ)*IOPS,这里暂定ζ为10%。该方法实现后的一致性从83%提高为93%,性能也提高了10%左右。
从上述实施例可以看出,本发明实施例提供的随机写方法,通过使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数的技术方案,能够提高固态硬盘随机写的每秒输入输出性能和数据一致性。
需要特别指出的是,上述随机写方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于随机写方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够提高固态硬盘随机写的每秒输入输出性能和数据一致性装置的一个实施例。随机写装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;
再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断固态硬盘中空闲块数量最少的超级逻辑单元的数量是否超过预定阈值;
响应于超过预定阈值,而选择空闲块数量最少的超级逻辑单元作为目标超级逻辑单元。
在一些实施方式中,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过预定阈值,而扫描固态硬盘中是否存在至少一个处于空闲状态的超级逻辑单元;
响应于存在至少一个处于空闲状态的超级逻辑单元,而将其中之一确定为目标超级逻辑单元。
在一些实施方式中,使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的旧的加权固态硬盘数据帧数量与标准权重的当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
在一些实施方式中,动态写仲裁包括三个阶段,每个阶段包括空闲块数量、历史加权固态硬盘数据帧数量、和每秒读写次数之间的对应关系;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于历史加权固态硬盘数据帧数量确定相对应的每秒读写次数所在的阶段作为调整阶段,并基于调整阶段和历史加权固态硬盘数据帧数量确定预期每秒读写次数。
从上述实施例可以看出,本发明实施例提供的随机写装置,通过使用磨损均衡模块扫描目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;使用查找管理模块根据当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;使用动态写仲裁基于历史加权固态硬盘数据帧数量确定调整阶段,并基于调整阶段确定预期每秒读写次数;再次更新历史加权固态硬盘数据帧数量,并基于再次更新的历史加权固态硬盘数据帧数量和预期每秒读写次数来调整实际每秒读写次数的技术方案,能够提高固态硬盘随机写的每秒输入输出性能和数据一致性。
需要特别指出的是,上述随机写装置的实施例采用了所述随机写方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述随机写方法的其他实施例中。当然,由于所述随机写方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述随机写装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种随机写方法,其特征在于,包括执行以下步骤:
使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
使用所述磨损均衡模块扫描所述目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
使用查找管理模块根据所述当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定调整阶段,并基于所述调整阶段确定预期每秒读写次数;
再次更新所述历史加权固态硬盘数据帧数量,并基于再次更新的所述历史加权固态硬盘数据帧数量和所述预期每秒读写次数来调整实际每秒读写次数。
2.根据权利要求1所述的方法,其特征在于,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断所述固态硬盘中所述空闲块数量最少的所述超级逻辑单元的数量是否超过预定阈值;
响应于超过所述预定阈值,而选择所述空闲块数量最少的所述超级逻辑单元作为所述目标超级逻辑单元。
3.根据权利要求2所述的方法,其特征在于,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过所述预定阈值,而扫描所述固态硬盘中是否存在至少一个处于空闲状态的所述超级逻辑单元;
响应于存在至少一个处于空闲状态的所述超级逻辑单元,而将其中之一确定为所述目标超级逻辑单元。
4.根据权利要求1所述的方法,其特征在于,使用查找管理模块根据所述当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的所述旧的加权固态硬盘数据帧数量与标准权重的所述当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
5.根据权利要求1所述的方法,其特征在于,所述动态写仲裁包括三个阶段,每个所述阶段包括空闲块数量、所述历史加权固态硬盘数据帧数量、和所述每秒读写次数之间的对应关系;
使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定调整阶段,并基于所述调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定相对应的所述每秒读写次数所在的所述阶段作为所述调整阶段,并基于所述调整阶段和所述历史加权固态硬盘数据帧数量确定所述预期每秒读写次数。
6.一种随机写装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元;
使用所述磨损均衡模块扫描所述目标超级逻辑单元中的空闲块数量和坏块数量以确定当前剩余固态硬盘数据帧数量;
使用查找管理模块根据所述当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量;
使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定调整阶段,并基于再次更新的所述调整阶段确定预期每秒读写次数;
再次更新所述历史加权固态硬盘数据帧数量,并基于所述历史加权固态硬盘数据帧数量和所述预期每秒读写次数来调整实际每秒读写次数。
7.根据权利要求6所述的装置,其特征在于,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元包括:
判断所述固态硬盘中所述空闲块数量最少的所述超级逻辑单元的数量是否超过预定阈值;
响应于超过所述预定阈值,而选择所述空闲块数量最少的所述超级逻辑单元作为所述目标超级逻辑单元。
8.根据权利要求7所述的装置,其特征在于,使用磨损均衡模块以平衡剩余空间的方式在固态硬盘的多个超级逻辑单元中确定一个目标超级逻辑单元还包括:
响应于未超过所述预定阈值,而扫描所述固态硬盘中是否存在至少一个处于空闲状态的所述超级逻辑单元;
响应于存在至少一个处于空闲状态的所述超级逻辑单元,而将其中之一确定为所述目标超级逻辑单元。
9.根据权利要求6所述的装置,其特征在于,使用查找管理模块根据所述当前剩余固态硬盘数据帧数量以长短期记忆网络的方式迭代更新历史加权固态硬盘数据帧数量包括:
根据预定的历史平均权重参数为旧的加权固态硬盘数据帧数量加权;
对加权后的所述旧的加权固态硬盘数据帧数量与标准权重的所述当前剩余固态硬盘数据帧数量执行归一化的加权平均,获得更新的历史加权固态硬盘数据帧数量。
10.根据权利要求6所述的装置,其特征在于,所述动态写仲裁包括三个阶段,每个所述阶段包括空闲块数量、所述历史加权固态硬盘数据帧数量、和所述每秒读写次数之间的对应关系;
使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定调整阶段,并基于所述调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定相对应的所述每秒读写次数所在的所述阶段作为所述调整阶段,并基于所述调整阶段和所述历史加权固态硬盘数据帧数量确定所述预期每秒读写次数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472997.6A CN111708491B (zh) | 2020-05-29 | 2020-05-29 | 一种随机写方法和装置 |
PCT/CN2021/073448 WO2021238264A1 (zh) | 2020-05-29 | 2021-01-23 | 一种随机写方法和装置 |
US17/925,687 US12008240B2 (en) | 2020-05-29 | 2021-01-23 | Random write method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010472997.6A CN111708491B (zh) | 2020-05-29 | 2020-05-29 | 一种随机写方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708491A CN111708491A (zh) | 2020-09-25 |
CN111708491B true CN111708491B (zh) | 2022-11-04 |
Family
ID=72537010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010472997.6A Active CN111708491B (zh) | 2020-05-29 | 2020-05-29 | 一种随机写方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12008240B2 (zh) |
CN (1) | CN111708491B (zh) |
WO (1) | WO2021238264A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708491B (zh) | 2020-05-29 | 2022-11-04 | 苏州浪潮智能科技有限公司 | 一种随机写方法和装置 |
CN113590050B (zh) * | 2021-09-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 随机写性能调节的方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569201A (zh) * | 2019-08-23 | 2019-12-13 | 苏州浪潮智能科技有限公司 | 一种固态硬盘GC下降低写latency的方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2745203B1 (en) * | 2011-08-19 | 2016-09-21 | Kabushiki Kaisha Toshiba | Information processing apparatus |
US8924636B2 (en) * | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9569120B2 (en) * | 2014-08-04 | 2017-02-14 | Nvmdurance Limited | Adaptive flash tuning |
US10296232B2 (en) * | 2015-09-01 | 2019-05-21 | Western Digital Technologies, Inc. | Service level based control of storage systems |
JP2017090959A (ja) * | 2015-11-02 | 2017-05-25 | 富士通株式会社 | ストレージ装置,性能推定プログラム及び性能推定方法 |
CN106775493B (zh) * | 2017-01-05 | 2019-01-25 | 华为技术有限公司 | 一种存储控制器及io请求处理方法 |
US10901628B2 (en) * | 2019-03-12 | 2021-01-26 | Wipro Limited | Method for operating storage drives, and system thereof |
CN110851317A (zh) * | 2019-08-31 | 2020-02-28 | 苏州浪潮智能科技有限公司 | 一种预测存储设备iops性能数据的方法、装置、设备及存储介质 |
CN111708491B (zh) * | 2020-05-29 | 2022-11-04 | 苏州浪潮智能科技有限公司 | 一种随机写方法和装置 |
-
2020
- 2020-05-29 CN CN202010472997.6A patent/CN111708491B/zh active Active
-
2021
- 2021-01-23 US US17/925,687 patent/US12008240B2/en active Active
- 2021-01-23 WO PCT/CN2021/073448 patent/WO2021238264A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569201A (zh) * | 2019-08-23 | 2019-12-13 | 苏州浪潮智能科技有限公司 | 一种固态硬盘GC下降低写latency的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20230342038A1 (en) | 2023-10-26 |
US12008240B2 (en) | 2024-06-11 |
WO2021238264A1 (zh) | 2021-12-02 |
CN111708491A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127157B2 (en) | Sizing a cache while taking into account a total bytes written requirement | |
US10831677B2 (en) | Cache management method, cache controller, and computer system | |
CN111708491B (zh) | 一种随机写方法和装置 | |
US9411718B2 (en) | Method to apply fine grain wear leveling and garbage collection | |
US10606749B2 (en) | Adaptive storage management for optimizing multi-tier data storage system | |
US20190094938A1 (en) | Reactive power management for non-volatile memory controllers | |
US20140173242A1 (en) | Method and apparatus for controlling a storage device | |
US11809312B2 (en) | Garbage collection operation management based on overall spare area | |
CN111240593B (zh) | 一种动态自适应调度的数据迁移方法、装置、设备和介质 | |
JP2014535106A (ja) | ストレージ・システムの二次キャッシュ内にデータをポピュレートするための方法、制御装置、プログラム | |
KR102725221B1 (ko) | 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치 | |
WO2014075428A1 (zh) | 一种用于替换缓存模块中数据的方法及装置 | |
CN114895846A (zh) | 一种数据处理方法、装置及设备 | |
US11403562B2 (en) | Determining sectors of a track to stage into cache by training a machine learning module | |
CN110908595B (zh) | 存储装置及信息处理系统 | |
CN112416255A (zh) | 一种用户写入速度控制方法、装置、设备和介质 | |
CN113590050B (zh) | 随机写性能调节的方法、装置、电子设备及存储介质 | |
US20150347303A1 (en) | Adjusting allocation of storage devices | |
US10713159B2 (en) | Semiconductor device for managing wear leveling operation of a nonvolatile memory device | |
CN103744624B (zh) | 一种实现存储系统ssd缓存数据选择性升级的系统架构 | |
TW202244933A (zh) | 基於實體裝置參數的非揮發性記憶體裝置程式設計參數的產生 | |
JP2017027301A (ja) | ストレージ制御装置、階層化ストレージ制御プログラム、階層化ストレージ制御方法 | |
CN111090496B (zh) | 一种基于自动调节迭代时间的虚拟机内存迁移方法和设备 | |
JP6112193B2 (ja) | アクセス制御プログラム、ディスク装置及びアクセス制御方法 | |
US11614887B2 (en) | Method and system for accelerating storage of data in write-intensive computer applications |
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 |