【忆芯技术分享】SSD变砖怎么办?Administrative Controller来帮忙
随着固态闪存硬盘在存储领域中的广泛使用,硬盘维护工作面临较大困难。数据中心的管理维护者、硬盘使用者或者硬盘研发人员经常遇到的问题: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
6-15
【忆芯技术分享】企业级SSD这个创新思路,如何让IO性能如此稳定
6-8
忆芯科技
北京忆芯科技有限公司成立于2015年底,作为国内较早从事高性能固态硬盘主控芯片研发的企业,致力于成为赋能大数据应用的芯片全球领导者。经过7年的发展,公司已成长为国内领先的高端PCIe SSD主控芯片和成品盘供应商,为各行业的信息化发展提供高质量芯片级底层保障,业务方向覆盖消费级、工业级和企业级,主控芯片及解决方案。
忆芯科技核心成员具有多年研发经验和多项研发成果,拥有从底层算法到芯片设计,再到解决方案设计等多方面的丰富经验。在坚持自主研发基础上,研发的芯片产品拥有250余项自主知识产权,并创新性地将处理器架构首次引入存储领域;现已成功完成3款高端消费级、企业级SSD主控芯片流片,所研发的高性能低功耗NVMe SSD主控已量产出货。公司总部位于北京,在上海、成都、合肥、厦门、深圳分别设有研发中心和客户技术支持中心。