查看原文
其他

【忆芯技术分享】SSD变砖怎么办?Administrative Controller来帮忙

携手共赢 北京忆芯科技有限公司 2023-10-25

随着固态闪存硬盘在存储领域中的广泛使用,硬盘维护工作面临较大困难。数据中心的管理维护者、硬盘使用者或者硬盘研发人员经常遇到的问题:SSD出问题了,被系统踢盘或者再也不能接入系统,成为一个砖块。随着NVMe规范v1.4以及后续v2.0版本的发布,协议中提出来Administrative Controller的概念,便很好的解决该问题。


图一:NVMe协议2.0版本

01  为什么会踢盘


在此之前的SSD由于PCIe的Class Code申明的为IO Controller类型,这样Controller和读写IO紧密相关的,当读写IO出现异常未返回的情况时,SCSI中层会Abort相关超时IO,并进行超时重试的情况。由于IO在SSD中不知什么情况卡住,不管Abort命令还是重试的IO可能都不响应,这样主机就会将IO相关的块设备移除,进行Disable Controller操作,并移除相应的字符设备,导致主机无法看到SSD盘相关的任何设备,这样对维护SSD带来较大困难。


图二:SSD盘超时踢盘日志


02  传统NVMe模型

Controller是介于主机和NVM Subsystem之间,是连接主机和SSD的重要节点,传统的NVMe模型构建申明为IO Controller,支持主机创建IO Queue和IO读写等操作。Namespace主要是非易失存储NAND Flash的逻辑映射块,主机可以直接访问。

图三:传统NVMe构建模型


Controller在系统中对应为nvme0、nvme1、nvme2等字符设备号,Namespace(NS)在系统中对应nvme0n1、nvme1n1、nvme2n1等块设备号。IO Controller和Namespace紧密相关。


图四:传统SSD盘在系统中的设备号


03  NVMe协议v1.4和v2.0新增Controller类型


新版本协议引入Controller Type概念,主要分为如下三种类型:


图五:Controller类型


1、IO Controller:支持访问用户数据的控制器

2、Discovery Controller:基于NVMe Over Fabrics相关命令的控制器

3、Administrative Controller:仅支持管理相关命令,不支持IO相关命令的控制器


针对只有IO Controller的构型,踢盘后主机对SSD盘就会脱管,给维护人员带来管理困难,为了解决该问题,NVMe协议引进了Administrative Controller。Administrative Controller由于不支持IO相关命令,不支持Namespace管理命令,不和IO强相关,支持带内管理,所以在IO通路出现故障时,仍然可以管理NVMe系统,获取相关状态或者信息,以此来实现SSD永远在线的功能,不会变砖,增加SSD的可维护性。


04  Administrative Controller如何实现

STAR2000E是忆芯科技基于新一代高性能企业级SSD主控芯片STAR2000的产品方案,已经支持Administrative Controller功能,该功能构建使用PCIe的SR-IOV功能的虚拟Function。 


一个SSD Subsystem中支持一个虚拟Function对应的Administrative Controller、一个物理Function对应的IO Controller和若干个虚拟Function对应的IO Controller。


图六:STAR2000E控制器模型构建示意图


Administrative Controller在前端PCIe中申明Class Code为0x010803的设备类型。


图七:PCIe Class Code定义


Controller Capability中申明为Controller Type为3


图八:Controller Type定义


通过主控的多核多线程技术,实现独立通路,保证IO通路异常情况不影响到Administrative Controller的正常工作,能够有效支撑系统管理对SSD健康的轮询,实时掌握和定位IO Controller的异常情况,对主机来说就能保证永久在线。


随着Administrative Controller概念引入,MI信息可以通过带内管理命令走Administrative Controller通路获取SSD相关信息;或者SSD管理也可以通过特定的驱动管理该Controller相关信息,特定驱动可以接管Administrative Controller类型的NVMe字符设备号,方便系统集群化的管理,对数据中心更友好。


Administrative Controller对应的字符设备号为nvme0,IO Controller对应的字符设备号为nvme1,Namespace对应的块设备号nvme1n1,如果IO异常踢盘,则只影响nvme1和nvme1n1,nvme0仍然正常在线,并能响应管理相关命令。


图九:新模型构建的设备号


忆芯科技新一代高性能企业级PCIe4.0 SSD主控芯片STAR2000与产品方案STAR2000E全面支撑NVMe2.0协议,实现了Administrative Controller,SSD对主机永久在线功能。对企业级管理需求能更好的满足,可以轻松支持各种管理模式,提升SSD的可维护性。




忆芯科技

核心职位火热招聘中

扫描二维码了解更多信息

END

推荐阅读

【忆芯技术分享】1+1不等于2?SSD ECC纠错能力如何换算

6-22

忆芯科技凭什么能蝉联IC独角兽榜单?

6-15

【忆芯技术分享】企业级SSD这个创新思路,如何让IO性能如此稳定

6-8


忆芯科技


北京忆芯科技有限公司成立于2015年底,作为国内较早从事高性能固态硬盘主控芯片研发的企业,致力于成为赋能大数据应用的芯片全球领导者。经过7年的发展,公司已成长为国内领先的高端PCIe SSD主控芯片和成品盘供应商,为各行业的信息化发展提供高质量芯片级底层保障业务方向覆盖消费级、工业级和企业级主控芯片及解决方案。

忆芯科技核心成员具有多年研发经验和多项研发成果,拥有从底层算法到芯片设计,再到解决方案设计等多方面的丰富经验。坚持自主研发基础上,研发芯片产品拥有250余项自主知识产权,创新性地将处理器架构首次引入存储领域;现已成功完成3款高端消费级企业级SSD主控芯片流片,所研发的高性能低功耗NVMe SSD主控已量产出货。公司总部位于北京,在上海成都合肥厦门、深圳分别设有研发中心和客户技术支持中心。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存