新闻详情
新闻搜索
NVMe命令的“快递代收点”,聊聊中断聚合在SSD中的作用 忆恒创源 企业级存储解决方案提供商 分布式存储 数据安全 高性能存储 国产化替代
设想有这样一个场景:你是一个非常喜欢网购的人,每天都会在网上买各种各样的商品,每天都有大量的快递要收。然而,你所居住的小区并不允许快递员进入,因此你不得不每天多次往返小区门口,有时刚刚回到家,就又接到另一家快递公司电话,这让你非常闹心。
聪明的你想到一个办法,小区门口刚好有一家便利店,也许可以临时存放快递。于是你去找到老板,告诉他你的需求:
• 每天会有很多快递,希望可以由老板帮忙代收,你定期来取;
• 正常情况下,你每天下午6点钟会把积攒的快递取走;
• 如果快递过多,老板会提前给你打电话,要求把快递取走;
• 第二天同一时间,你也会提早来取新的快递,避免积攒太多快递给老板带来不便。
仗义的老板爽快地答应了你的请求,自此,你每天也轻松了许多,不用盯着每一件快递的进度,也不用频繁取快递,可以更加专注自己的事情。每次取快递虽然更辛苦了,但是整体效率提升了很多。而要说缺点,老板、快递员都不知道哪件快递是你想早点拿到的,更不会第一时间通知你,因此个别快递会有一些时效问题,不过这都是小事儿,整体来说还是可以接受的。
“实在不行和老板说,改成6小时去取一次吧,反正找个平衡就行。”你在心里对自己默默地说道。
上述场景正是中断聚合在我们日常生活中的写照。接下来,我们以更严谨准确的协议解释,来说一说中断聚合到底是什么,能够为 NVMe SSD 带来哪些好处,以及中断聚合要怎么用。

上图是典型的 NVMe CMD 处理流程:
1、主机将命令写入 Submission Queue(提交队列)
2、主机更新对应 Submission Queue 的 Door Bell 寄存器(来通知控制器有新的命令需要处理)
3、控制器去 Submission Queue 指定位置取走命令
4、控制器处理命令
5、控制器把命令完成状态写入 Completion Queue(完成队列)
6、控制器产生中断(来通知主机 CQ 已更新)
7、主机处理 Completion Queue 中的完成状态
8、主机更新对应 Completion Queue 的 Door Bell 寄存器(来释放完成队列资源)
对于中断聚合功能而言,需要重点关注的就是 步骤6 —— 控制器产生中断。
在未开启中断聚合功能时,相当于控制器只要完成一点任务,就要去通知主机处理后续。然而,主机与控制器之间的效率节奏是各有差异的,单纯地响应每次中断,会给主机增加不必要的开销。这种开销在主机较为繁忙,特别是高并发大压力 I/O 访问场景下,对于性能的影响会比较突出。
中断聚合是解决这种问题的一个有效方案,它的原理主要就是将这种频繁的中断请求集中起来,按照主机认为合适的频率去上报,从而更加高效地利用主机的处理器资源。部分 I/O 延迟会有小幅度增加,但整体延迟能够得到有效降低,在高并发大压力 I/O 访问场景下的性能会更好。
NVMe 协议支持的中断类型
在 NVMe Spec 中,指定了中断聚合功能(特指 Feature Identifier 08h)对以下几种中断类型的支持:
01
Pin Based 中断:顾名思义是利用中断相关的PIN来上报中断信号,这种中断方式主要针对 PCI 总线设计,总线会为每一个设备分配4个 INTx 引脚(INTA#,INTB#,INTC#,INTD#),利用电平触发方式上报中断。PCIe 总线下为了保持向下兼容性,保留了这个机制,但是通过 INTx Message Packet 模拟中断 PIN 的置位和复位,而非物理真实的独立中断 PIN。
02
Single/Multiple MSI 中断:MSI,即 Message Signaled Interrupts,它是针对 PIN Based 中断的存储同步问题(中断信号比数据信息先抵达,导致主机读取数据错误的问题)而设计的一种中断机制。数据和 MSI 中断报文会通过同一路径传输(Memory Write TLP,数据在先,中断在后),从而保证主机顺利处理中断。根据报文中相应 Control 字段定义的 Capability 不同,可以决定一次报文传输的中断请求数量,来区分是 Single 还是 Multiple(最大32个)MSI。
03
MSI-X 中断:作为 MSI 的拓展(X for Extended),机制基本相同。但 MSI 最多只支持32个中断请求,且要求中断向量连续。而 MSI-X 可以支持多达2048个中断请求,并且对中断向量连续性没有要求。与 MSI 不同的是,MSI-X 使用放置在内存中的数组(MSI-X Table)存放中断的信息,而在报文中只保存数组在内存里的地址,以及数组的大小等。
为了更低的延迟表现,更高效的中断处理,以及更均衡的中断负载等等,MSI-X 相对其他类型而言是最好的选择。
NVMe 协议中断聚合功能的详细解读
NVMe Spec 并没有定义具体的中断聚合算法,也不干预各控制器厂家、SSD 开发者对于相应算法的具体实现。它只是定义了主机可以指定的两个 Feature ID,来向控制器传达主机期望的聚合参数配置建议值。最终的实现由控制器内部相应模块逻辑,以及 Firmware 逻辑配合决定。
这两个 Feature ID 分别对应的定义如下:
Interrupt Coalescing (Feature ID 08h)
这是一个全局的设定参数,即设定会同时作用于所有 I/O 中断向量,无法分别单独设置。当 Aggregation Time 或者 Aggregation Threshold 的其中一个条件满足时,控制器就应当向主机上报中断信号。当两个设定任意其一为 0h 值时,相当于中断聚合功能关闭,每一条中断都会被直接上报。需要注意的是此功能只应用于 I/O 相关的中断向量,Admin 中断向量不建议也不支持使用中断聚合功能。当主机与设备之间的关系变化(更换设备/重置),或者中断类型变化时,此 Feature ID 的内容不要求被保持,并且建议主机重新设定此 Feature ID。

Interrupt Vector Configuration (Feature ID 09h)
这个 Feature 一次只能设定指定的一个中断向量号。默认情况下,中断聚合的设定会对所有中断向量启用(除了不支持中断聚合的 Admin Completion Queue 对应的向量 —— IV0)。在主机发送命令设置此 Feature 之前,需要确定希望指定的中断向量号已经绑定于现存的 I/O Completion Queue 之上,或者指定的中断向量号不是 Admin CQ 对应的 IV0,否则控制器会终止此非法命令并返回错误状态码。
除了上述的协议指定规则外,中断聚合功能还有一些具体的规则需要遵守:
01
主机需要保证运行的操作系统内核在配置 I/O Completion Queue 时,不会将 Admin 专用的 IV0 向量号配置给 I/O 相关的 Queue。共用中断向量号 IV0 是不被允许和支持的,可能会导致一些无法预测的问题。
02
当后台有 I/O 进行时,不建议对 Feature ID 08/09h 进行设置,这有可能造成 I/O 被打断,或者中断上报被挂起等无法预测的错误。NVMe 协议并没有禁止此行为,但属于一个使用上的建议。
03
Feature ID 08/09h 在协议中都不支持 Save,因此 Power Cycle/Controller Reset 等行为后,该参数会被重置为默认值,需要重新配置参数以生效。
至此,NVMe SSD 的中断聚合功能已基本介绍完毕。作为 I/O 命令的“快递代收点”,中断聚合有效释放了主机端宝贵的硬件资源,提升了整个存储系统在大压力场景下的性能。而作为新一代高性能 PCIe 5.0 企业级 NVMe SSD 的典范,忆恒创源 PBlaze7 7940 系列 SSD 中也配置了中断聚合功能,有效降低多盘部署下对于服务器硬件的性能要求,帮助客户降低硬件成本,并为大压力下的业务体验带来保障。
一、公司简介:
忆恒创源(北京)科技有限公司,是一家专注于企业级存储系统研发与服务的高新技术企业。公司致力于为客户提供高性能、高可靠、高安全的分布式存储解决方案,广泛应用于金融、电信、政府、医疗、教育、能源等多个行业。
二、产品品类:
分布式存储系统、企业级存储服务器、软件定义存储(SDS)、对象存储、块存储、文件存储、统一存储、国产化存储、信创存储、存储网关、存储虚拟化、存储管理平台、数据生命周期管理、冷热数据分层存储、存储容灾备份、存储集群、存储节点、存储控制器、NVMe SSD存储、全闪存存储、混合存储、存储扩展柜、存储硬盘、企业级SSD、存储内存、存储网络设备。
三、应用场景:
企业私有云存储、数据中心存储、虚拟化平台存储、数据库加速、视频监控存储、医疗影像PACS存储、金融交易数据存储、政务云存储、教育科研数据存储、工业大数据存储、AI训练数据存储、边缘计算存储、混合云存储、容灾备份中心、异地多活存储、国产化替代项目、信创环境部署。
四、核心功能:
协议支持:支持NFS、SMB/CIFS、iSCSI、S3、FTP等多种协议,兼容主流操作系统与虚拟化平台。
权限管理:支持细粒度权限控制,兼容Windows ACL,图形化界面操作,支持LDAP/AD域集成。
数据保护:支持快照、克隆、复制、镜像、异地容灾、自动备份、数据加密、防勒索病毒。
高可用性:支持双控、集群部署、自动故障切换、在线扩容、负载均衡。
性能优化:支持NVMe SSD加速、智能缓存、数据分层、QoS服务质量控制。
运维管理:支持Web图形化管理、集中监控、日志审计、告警通知、API接口对接。
五、服务体系:
忆恒创源授权经销商、忆恒创源官方代理商、忆恒创源企业方案商、忆恒创源技术支持中心、忆恒创源售后服务中心、忆恒创源体验中心、忆恒创源解决方案中心、忆恒创源线下实体店、忆恒创源总代理、忆恒创源分销服务商、忆恒创源技术支持热线、忆恒创源400客服电话。
六、成功案例(部分):
忆恒创源已成功为以下单位提供存储解决方案:
中国银联云计算平台全闪存升级、腾讯云数据库加速项目、美团分布式存储集群、中国移动私有云平台、四川省人民医院PACS影像存储升级、清华大学高能物理实验平台
七、主推产品型号:
2025年新品系列(PCIe 5.0 + NVMe 2.0):
1、PBlaze7 7940 系列:支持PCIe 5.0接口,NVMe 2.0协议,最高容量30.72TB,随机读写性能高达2800K/720K IOPS,适用于AI训练、大数据分析、高频交易等高性能场景。
型号:7940 / 7946
容量:3.2TB ~ 30.72TB
形态:U.2 / E1.S / E3.S / HHHL AIC
2024年产品系列(PCIe 4.0 + 国产NAND):
1、PBlaze6 6541 系列:采用长江存储Xtacking® NAND,支持PCIe 4.0,具备更高写入性能和更低延迟,适合对性能和国产化有双重要求的企业。
型号:6541 / 6547
容量:1.6TB ~ 7.68TB
形态:U.2 / E1.S
2023年产品系列(PCIe 4.0 高性能系列):
1、PBlaze6 6530 系列:主流企业级NVMe SSD,性能稳定,支持多种企业级功能,广泛适用于云计算、数据库、虚拟化等场景。
型号:6530 / 6536
容量:1.6TB ~ 7.68TB
形态:U.2 / E1.S / HHHL AIC
2、PBlaze6 6531 系列:基于MUFP平台,采用长江存储TLC NAND,具备高能效比和高可靠性,适合绿色数据中心。
型号:6531 / 6537
容量:1.6TB ~ 7.68TB
形态:U.2 / HHHL AIC
大容量高性能系列:
1、PBlaze6 6930 系列:支持最大30.72TB容量,适合大数据、云存储、AI训练等高容量需求场景。
型号:6930 / 6936
容量:6.4TB ~ 30.72TB
形态:U.3(兼容U.2)
企业级硬盘支持:
SSD:支持NVMe/SAS/SATA接口,容量覆盖1.6TB ~ 30.72TB
机械硬盘:支持企业级SATA/SAS HDD,容量支持16TB/18TB/20TB/30TB
内存支持:DDR4 ECC RDIMM,最大支持1TB内存扩展,适配高性能服务器平台
八、服务区域:
全国服务覆盖,重点服务区域包括:
北京、上海、广州、深圳
成都、重庆、西安、武汉、南京、杭州
全国各省会城市及重点地级市
九、常见问题(FAQ):
- 存储系统如何进行在线扩容?
- 如何配置快照策略实现数据保护?
- 存储系统支持哪些虚拟化平台?
- 如何实现异地容灾备份?
- 存储系统是否支持国产化CPU平台?
- 如何进行存储性能调优?
- 存储系统是否支持对象存储协议?
- 如何与现有IT系统无缝集成?
- 存储系统是否支持多租户管理?
- 如何防范勒索病毒攻击?
成都科汇科技有限公司
地址:成都市人民南路四段1号时代数码大厦18FA5
电话:400-028-1235
手机:18081950517(微信同号)
