一种让SSD进入应急模式并被主机端可见的方法及设备技术

技术编号:35305977 阅读:23 留言:0更新日期:2022-10-22 12:56
本发明专利技术公开一种让SSD进入应急模式并被主机端可见的方法及设备。所述SSD的固件被分离成前端组件和后端组件,所述前端组件用于响应主机命令,所述后端组件用于管理NAND;所述方法包括在SSD运行出现故障时,SSD重启后进入应急模式,在应急模式下,仅运行前端组件,由前端组件处理主机发送给SSD的命令使主机端能够识别SSD。采用本申请技术方案,能够实现在SSD固件发生故障时,重启后SSD能够进入应急模式,应急模式下SSD固件与主机端可以相互发送指令,及时解决设备故障。及时解决设备故障。及时解决设备故障。

【技术实现步骤摘要】
一种让SSD进入应急模式并被主机端可见的方法及设备


[0001]本专利技术涉及存储
,尤其涉及一种让SSD进入应急模式并被主机端可见的方法及设备。

技术介绍

[0002]因为诸如SSD(固态硬盘)的存储设备的控制器寄存器的一些状态是缓存在主机端的内存(Host DDR)中,这些寄存器状态当传统SSD出现一些固件运行故障或异常掉电保护失效后,可能由于SSD后端恢复数据失败,导致前端NVMe初始化失败,主机端无法识别到SSD,无法及时获取设备出现故障第一时间的错误寄存器日志信息,极大影响问题快速定位和分析效率。由于主机端无法识别SSD设备,导致用户数据无法访问,SSD故障处理的用户体验不好。

技术实现思路

[0003]本专利技术提供了一种让SSD进入应急模式并被主机端可见的方法,所述SSD的固件被分离成前端组件和后端组件,所述前端组件用于响应主机命令,所述后端组件用于管理NAND;所述方法包括:在SSD运行出现故障时,SSD重启后进入应急模式,在应急模式下,仅运行前端组件,由前端组件处理主机发送给SSD的命令使主机端能够识别SSD。
[0004]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,前端组件包括PCIe模块、Admin模块、数据管理模块,用于处理PCIe物理层面的事件,执行NVMe管理指令,管理数据处理读写请求,将前端读请求转换为后端可用的微码;后端组件包括NAND管理相关模块,包括更新FTL的日志记录,便于FTL重构,用于异常掉电后数据的完整恢复;包括垃圾回收功能;包括对读、写、擦指令根据不同优先级进行调度的功能。
[0005]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,SSD固件的前端组件响应主机下发的IO指令,通过返回错误状态码防止主机宕机。
[0006]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,SSD固件的前端组件给主机端报告一条或者多条异步事件,用于在发生这些事件时通知主机端SSD的运行状态,包括错误和运行健康状况信息。
[0007]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,前端组件支持对SSD固件的升级功能,通过升级固件修复问题。
[0008]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,Elog进入只读状态,使重要关键信息不被覆盖或损坏。
[0009]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,前端组件响应于收到控制器重置命令,删除所有IO提交和完成队列,重置管理提交队列和完成队列,以兼容不同主机。
[0010]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,SSD后端组件停止,保证用户数据处于冻结状态。
[0011]如上所述的一种让SSD进入应急模式并被主机端可见的方法,其中,应急模式下,前端组件响应NVMe格式化命令,清除应急模式标记,使得SSD进入正常模式。
[0012]本专利技术还提供一种固态存储设备,包括存储器、控制器与非易失性存储器,其中,控制器执行上述之一所述的方法。
[0013]本专利技术实现的有益效果如下:采用本申请技术方案,能够实现在SSD固件发生故障时,重启后SSD能够自动进入应急模式,应急模式下SSD固件与主机端可以相互发送命令,而不是不响应任何主机命令的“死机”状态,从而方便用户有效发现并及时解决设备故障。
附图说明
[0014]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0015]图1是SSD固件指令处理流程图;
[0016]图2是主机发起的遥测日志(Telemetry:Host

Initiated log)的数据结构示意图;
[0017]图3是SSD固件发生错误时处理流程图;
[0018]图4是SSD冷启动自动进入应急模式的处理流程图;
[0019]图5是根据本申请又一实施例的SSD进入应急模式的流程图;
[0020]图6是根据本申请依然又一实施例的SSD进入应急模式的流程图;
[0021]图7是根据本申请再一实施例的SSD进入应急模式的流程图。
具体实施方式
[0022]下面结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0023]实施例一
[0024]图1为SSD固件指令处理流程图。图中一条指令的执行先译码上下文、分发到某个具体核、再取元数据提交计算请求、计算完结果验证计算结果是否可用,最后检查异常寄存器的状态。
[0025]在没有设计本申请的panic mode(应急模式)之前,如果固件运行异常,则SSD的控制器的寄存器状态会全部丢失,只能通过查看静态日志确定异常情况,而日志中一般只会记录根据经验设定比较重要的寄存器故障时的状态而不是全部寄存器的状态。基于此,本申请设计panic mode(应急模式),主机端内存缓存(例如Telemetry数据区2)的控制器寄存器状态等信息可以保存到SSD的NAND;存储设备设备重新启动,将Telemetry数据区2重新加载,就可以看到所有寄存器状态。
[0026]其中,遥测(Telemetry)是NVMExpress
TM BaseSpecification(例如从下列地址可获得https://nvmexpress.org/wp

content/uploads/NVM

Express

Base

Specification

2_0

2021.06.02

Ratified

5.pdf)定义的错误日志收集标准接口,来收集SSD厂商自定义数据日志,用户下发一条标准NVMe命令就可以获取需要的日志,然后将收集到的日志发给SSD厂商做进一步日志分析。减少或节省为了收集日志需要将SSD从部署系统移出的可能性,有效减低现场调试时间,提升用户运维效率。遥测(Telemetry)功能定义收集SSD厂商自定义日志的机制,Telemetry数据采集可以是主机发起(Host

Initiated)或控制器发起(Controller

Initiated),前者是主机发起获取SSD一些关键信息,后者是SSD认为重要的数据,数据内容与格式由SSD厂商自定义。
[0027]图2是主机发起的遥测日本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种让SSD进入应急模式并被主机端可见的方法,其特征在于,所述SSD的固件被分离成前端组件和后端组件,所述前端组件用于响应主机命令,所述后端组件用于管理NAND;所述方法包括:在SSD运行出现故障时,SSD重启后进入应急模式,在应急模式下,仅运行前端组件,由前端组件处理主机发送给SSD的命令使主机端能够识别SSD。2.如权利要求1所述的一种让SSD进入应急模式并被主机端可见的方法,其特征在于,前端组件包括PCIe模块、Admin模块、数据管理模块,用于处理PCIe物理层面的事件,执行NVMe管理指令,管理数据处理读写请求,将前端读请求转换为后端可用的微码;后端组件包括NAND管理相关模块,包括更新FTL的日志记录,便于FTL重构,用于异常掉电后数据的完整恢复;包括垃圾回收功能;包括对读、写、擦指令根据不同优先级进行调度的功能。3.如权利要求1所述的一种让SSD进入应急模式并被主机端可见的方法,其特征在于,应急模式下,SSD固件的前端组件响应主机下发的IO指令,通过返回错误状态码防止主机宕机。4.如权利要求1所述的一种让SSD进入应急模式并被主机端可见的方法,其特征在于,应急模式下,SSD固件的前端组件给主机端报告一条...

【专利技术属性】
技术研发人员:武明伟袁戎
申请(专利权)人:北京忆恒创源科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1