CN111708491B - 一种随机写方法和装置 - Google Patents

一种随机写方法和装置 Download PDF

Info

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
solid state
state disk
super
weighted
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
Application number
CN202010472997.6A
Other languages
English (en)
Other versions
CN111708491A (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 Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur 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 Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010472997.6A priority Critical patent/CN111708491B/zh
Publication of CN111708491A publication Critical patent/CN111708491A/zh
Priority to US17/925,687 priority patent/US12008240B2/en
Priority to PCT/CN2021/073448 priority patent/WO2021238264A1/zh
Application granted granted Critical
Publication of CN111708491B publication Critical patent/CN111708491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear 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所述的装置,其特征在于,所述动态写仲裁包括三个阶段,每个所述阶段包括空闲块数量、所述历史加权固态硬盘数据帧数量、和所述每秒读写次数之间的对应关系;
使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定调整阶段,并基于所述调整阶段确定预期每秒读写次数包括:使用动态写仲裁基于所述历史加权固态硬盘数据帧数量确定相对应的所述每秒读写次数所在的所述阶段作为所述调整阶段,并基于所述调整阶段和所述历史加权固态硬盘数据帧数量确定所述预期每秒读写次数。
CN202010472997.6A 2020-05-29 2020-05-29 一种随机写方法和装置 Active CN111708491B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010472997.6A CN111708491B (zh) 2020-05-29 2020-05-29 一种随机写方法和装置
US17/925,687 US12008240B2 (en) 2020-05-29 2021-01-23 Random write method and apparatus
PCT/CN2021/073448 WO2021238264A1 (zh) 2020-05-29 2021-01-23 一种随机写方法和装置

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569201A (zh) * 2019-08-23 2019-12-13 苏州浪潮智能科技有限公司 一种固态硬盘GC下降低写latency的方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103890724B (zh) * 2011-08-19 2017-04-19 株式会社东芝 信息处理设备、用于控制信息处理设备的方法、主机装置、以及用于外部存储装置的性能评估方法
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 苏州浪潮智能科技有限公司 一种随机写方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
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
CN111708491A (zh) 2020-09-25
WO2021238264A1 (zh) 2021-12-02
US12008240B2 (en) 2024-06-11

Similar Documents

Publication Publication Date Title
CN111708491B (zh) 一种随机写方法和装置
US10831677B2 (en) Cache management method, cache controller, and computer system
US20200142846A1 (en) Using a machine learning module to select a priority queue from which to process an input/output (i/o) request
US20220205666A1 (en) Control Method for Air Conditioner, and Device for Air Conditioner and Storage Medium
US20180225202A1 (en) Adaptive storage management for optimizing multi-tier data storage system
US20220027284A1 (en) Reading Sequential Data from Memory Using a Pivot Table
CN111245732B (zh) 一种流量控制方法、装置及设备
JP2023525728A (ja) タッチ容量データの調整方法及び装置、電子機器、記憶媒体
CN114356248A (zh) 一种数据处理方法和装置
US20200104260A1 (en) Solid state drive cache eviction policy by an unsupervised reinforcement learning scheme
CN112328171B (zh) 数据分布预测方法、数据均衡方法、设备及存储介质
WO2023050672A1 (zh) 随机写性能调节的方法、装置、电子设备及存储介质
US20210157683A1 (en) Method, device and computer program product for managing data backup
WO2023155695A1 (zh) 处理器、控制方法、设备及介质
CN111090496B (zh) 一种基于自动调节迭代时间的虚拟机内存迁移方法和设备
CN114442935B (zh) 刷脏数据的方法、装置、电子设备及存储介质
CN112748850B (zh) 用于存储管理的方法、设备和计算机程序产品
CN111142790B (zh) 对磁盘写请求的控制方法、装置、电子设备及存储介质
CN114936169A (zh) 存储器的磨损均衡方法和装置、存储器和电子设备
EP3599547B1 (en) Elastic storage volume type selection and optimization engine for public cloud environments
CN113238854A (zh) 一种线程数自动调节的方法、装置、设备及可读介质
CN111562975A (zh) 一种虚拟机大页内存的开机调度方法、装置、设备和介质
CN112433682A (zh) 固态硬盘中控制参数的获取方法、存储介质和电子装置
CN110738476A (zh) 一种样本迁移方法、装置及设备
CN113625949A (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