一种全闪存储阵列的主机与固态盘协同垃圾回收方法转让专利
申请号 : CN201910587609.6
文献号 : CN110309078B
文献日 : 2021-07-02
发明人 : 梁书铭 , 冯志华 , 万星 , 安东博 , 罗重 , 余仲 , 余艺 , 宋峙峰 , 邓威 , 吴飞 , 李燕婷 , 张勇
申请人 : 北京计算机技术及应用研究所
摘要 :
权利要求 :
1.一种全闪存储阵列的主机与固态盘协同垃圾回收方法,其特征在于,包括:(1)阵列主机通过扩展NVMe驱动发送Get_block_stats或Get_firmware_stats命令;
(2)固态盘固件解析命令,将块状态NAND_Block_Table或固件状态Firmware_Stats打包发送给阵列主机;
(3)阵列主机接收固态盘发送块状态或固件状态,判断是否需要进行垃圾回收操作,包括:
判断NAND_Block_Table中无效块比例是否超过一阈值Nth;
超过限定阈值Nth,则强制触发垃圾回收操作;
未超过限定阈值Nth时,判断无效块比例是否超过触发阈值Mth;
超过触发阈值Mth,判断固态盘是否有I/O请求;无I/O请求时,将固态盘标记为空闲状态,触发垃圾回收机制;有I/O请求时,将固态盘标记为待回收状态,发送Abort_GC命令挂起垃圾回收,当处于空闲状态时继续触发垃圾回收操作;
(4)如需执行垃圾回收,主机端发送Force_GC命令,强制固态盘进行垃圾回收;如需暂停垃圾回收,阵列主机发送Abort_GC命令,固态盘暂停内部垃圾回收操作;
(5)固态盘接收到垃圾回收相关命令并执行,并更新块状态及固件状态。
2.如权利要求1所述的全闪存储阵列的主机与固态盘协同垃圾回收方法,其特征在于,通过扩展NVMe驱动发送Force_GC命令给固态盘固件,固态盘执行垃圾回收操作。
3.如权利要求1所述的全闪存储阵列的主机与固态盘协同垃圾回收方法,其特征在于,还包括:阵列主机利用获取的NAND_Block_Table及I/O请求调整垃圾回收触发机制。
4.如权利要求1所述的全闪存储阵列的主机与固态盘协同垃圾回收方法,其特征在于,设定无效页面阈值Hth,标记块内无效页面比例超出阈值的块为无效块,并维护无效块信息表NAND_Block_Table;反馈当前固态盘固件状态Firmware_Stats。
5.如权利要求2所述的全闪存储阵列的主机与固态盘协同垃圾回收方法,其特征在于,固态盘接收到主机端发送的强制垃圾回收命令,在固态盘内部进行无效页搬迁,完成垃圾回收操作;接收到主机端发送的禁止垃圾回收命令,挂起内部正在执行的垃圾回收操作。
说明书 :
一种全闪存储阵列的主机与固态盘协同垃圾回收方法
技术领域
背景技术
闪存储阵列系统的性能波动。为此,通常采用开放通道式固态盘构建存储系统,以解决垃圾
回收给整体系统带来的性能影响。开放通道式固态盘将FTL层放于阵列主机,固态盘直接将
底层NAND信息暴露给主机接口,阵列主机可根据FTL状态动态调整I/O负载,避免垃圾回收
操作对性能造成波动,提高阵列系统性能稳定性。
负载,不适用于大量固态盘组成的全闪存储阵列系统。因此,本文提出了一种开放通道控制
器设计思想的协同垃圾回收机制,利用扩展NVMe协议将垃圾回收操作交由阵列主机处理,
同时将地址映射及其余算法保留在固态盘内,减轻CPU负担同时避免垃圾回收与I/O操作的
冲突。
发明内容
固件解析命令,将块状态NAND_Block_Table或固件状态Firmware_Stats打包发送给阵列主
机;(3)阵列主机接收固态盘发送块状态或固件状态,判断是否需要进行垃圾回收操作,包
括:判断NAND_Block_Table中无效块比例是否超过一阈值Nth;超过限定阈值Nth,则强制触
发垃圾回收操作;未超过限定阈值Nth时,判断无效块比例是否超过触发阈值Mth;超过触发
阈值Mth,判断固态盘是否有I/O请求;无I/O请求时,将固态盘标记为空闲状态,触发垃圾回
收机制;有I/O请求时,将固态盘标记为待回收状态,发送Abort_GC命令挂起垃圾回收,当处
于空闲状态时继续触发垃圾回收操作;(4)如需执行垃圾回收,主机端发送Force_GC命令,
强制固态盘进行垃圾回收;如需暂停垃圾回收,阵列主机发送Abort_GC命令,固态盘暂停内
部垃圾回收操作;(5)固态盘接收到垃圾回收相关命令并执行,并更新块状态及固件状态。
值Nth;(2)超过限定阈值Nth,阵列主机发送Force_GC命令;(3)未超过限定阈值Nth时,判断
P是否超过触发阈值Mth;(4)超过触发阈值Mth,判断固态盘是否有I/O请求;(5)无I/O请求
时,将固态盘标记为空闲状态,触发垃圾回收机制,主机软件通过扩展NVMe驱动发送Force_
GC收命令给固态盘固件,固态盘执行垃圾回收操作;有I/O请求时,将固态盘标记为待回收
状态,发送Abort_GC命令挂起垃圾回收,当处于空闲状态时继续触发垃圾回收操作。
信息表NAND_Block_Table;反馈当前固态盘固件状态Firmware_Stats。
圾回收操作;接收到主机端发送的禁止垃圾回收命令,挂起内部正在执行的垃圾回收操作。
相比于传统固态盘本地垃圾回收机制,本方案阵列主机参与固态盘内部垃圾回收操作,阵
列主机可根据I/O请求动态调整垃圾回收策略。与开放通道式固态盘相比,本发明将地址映
射、磨损均衡、垃圾回收等算法在固态盘内部实现,减轻了开放通道固态盘阵列的主机CPU
负担。
附图说明
具体实施方式
垃圾回收方法包括:
暂停内部垃圾回收操作。
固件,固态盘执行垃圾回收操作;有I/O请求时,将固态盘标记为待回收状态,发送Abort_GC
命令挂起垃圾回收,当处于空闲状态时继续触发垃圾回收操作。固态盘固件在NVMe协议1.3
标准的基础上,扩展命令包括:(1)Get_block_stats:获取块状态信息;(2)Get_firmware_
stats:获取固件状态信息;(3)Force_GC:强制垃圾回收;(4)Abort_GC:挂起垃圾回收。
NAND_Block_Table,并通过NVMe协议发送给阵列主机;扩展NVMe命令解析模块也可以接收
阵列主机发送的Force_GC或Abort_GC命令,并通过GC执行模块执行垃圾回收操作或挂起。
扩展NVMe命令解析模块可接收阵列主机发送Get_firmware_stats反馈固件执行状态。阵列
主机利用获取的NAND_Block_Table及I/O请求调整垃圾回收触发机制。
NAND_Block_Table;固态盘固件状态监测模块可反馈当前固态盘固件状态Firmware_
Stats,该变量标记垃圾回收运行状态。
将固态盘标记为待回收状态,发送Abort_GC命令挂起垃圾回收,当处于空闲状态时继续触
发垃圾回收操作。
传统固态盘本地垃圾回收机制,本方案阵列主机参与固态盘内部垃圾回收操作,阵列主机
可根据I/O请求动态调整垃圾回收策略。与开放通道式固态盘构建全闪存储阵列相比,本发
明将地址映射、磨损均衡、垃圾回收等算法在固态盘内部实现,减轻主机CPU负载,增强全闪
存储阵列系统性能稳定性。
相比于传统固态盘本地垃圾回收机制,本方案阵列主机参与固态盘内部垃圾回收操作,阵
列主机可根据I/O请求动态调整垃圾回收策略。与开放通道式固态盘相比,本发明将地址映
射、磨损均衡、垃圾回收等算法在固态盘内部实现,减轻了开放通道固态盘阵列的主机CPU
负担。
也应视为本发明的保护范围。