前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NVMe协议及视频转码应用

NVMe协议及视频转码应用

作者头像
用户1324186
发布2018-12-24 15:55:41
3.2K0
发布2018-12-24 15:55:41
举报
文章被收录于专栏:媒矿工厂媒矿工厂

摘要:

NVMe(非易失性存储器Express)是一种用于访问高速存储介质的新协议,与传统协议相比具有许多优势。大规模数据的性能,经济性和耐久性至关重要。NVMe对企业及其如何处理数据产生了巨大影响,特别是用于实时分析和新兴技术的快速数据。业内已经出现基于该协议的高密度视频转码方案,我们来一探究竟。

NVM协议简介

NVMe的演变

第一批基于闪存的SSD利用传统的SATA / SAS物理接口,协议和外形,最大限度地减少现有基于硬盘(HDD)的企业服务器/存储系统的变化。但是,这些接口和协议都没有设计用于高速存储介质(即NAND和/或永久存储器)。由于接口速度,新存储介质的性能以及与CPU的接近程度,PCI Express(PCIe)是下一个逻辑存储接口。

PCIe插槽直接连接到CPU,提供类似内存的访问,并可运行非常高效的软件堆栈。但是,早期的PCIe接口SSD没有行业标准,也没有企业功能。杠杆专有固件的PCIe固态硬盘,这是特别具有挑战性的用于系统的缩放因各种原因,其中包括:a)运行和维护设备固件,b)用不同的系统软件的固件/设备的不兼容性,c)不总是使可用的车道和CPU的最佳利用接近度,以及d)缺乏企业工作负载的增值功能。NVMe规范的出现主要是应对这些挑战。

什么是NVMe?

NVMe是一种高性能的NUMA(非统一内存访问)优化和高度可扩展的存储协议,可将主机连接到内存子系统。该协议相对较新,功能丰富,并且从头开始设计用于通过PCIe接口直接连接到CPU的非易失性存储介质(NAND和永久存储器)(见图1)。该协议建立在高速PCIe通道上。PCIe Gen 3.0链路可提供比SATA接口高2倍以上的传输速度。

图1 CPU通过PCIe接口与I/O控制器和HBA连接SSD

NVMe价值主张

NVMe协议利用与底层媒体的并行,低延迟数据路径,类似于高性能处理器架构。与传统的SAS和SATA协议相比,这提供了更高的性能和更低的延迟。这不仅可以加速需要高性能的现有应用程序,还可以为数据中心和Edge中的实时工作负载处理提供新的应用程序和功能。

传统协议消耗许多CPU周期以使数据可用于应用程序。这些浪费的计算周期使企业真正赚钱。IT基础架构预算没有按照数据的速度增长,并且面临着最大化基础设施回报的巨大压力 - 无论是在存储还是计算方面。由于NVMe可以通过较小的基础架构占用来处理严格的应用程序工作负载,因此企业可以降低总体拥有成本并加速顶线业务增长。

NVMe架构 - 了解I/O队列

让我们深入探讨NVMe架构以及它如何实现高性能和低延迟。NVMe可以支持多个I/O队列,最多64K,每个队列有64K条目。传统SAS和SATA只能支持单个队列,每个队列可以分别拥有254和32个条目。根据系统配置和预期工作负载,NVMe主机软件可以创建最多NVMe控制器允许的最大队列。NVMe支持分散/收集IO,最大限度地减少数据传输的CPU开销,甚至可以根据工作负载要求更改其优先级。

下图(图2)是主机和NVMe控制器之间通信的简化视图。该架构允许应用程序同时启动,执行和完成多个I/O请求,并以最有效的方式使用底层媒体,以最大限度地提高速度并最大限度地减少延迟。

NVMe命令如何工作?

这种方式的工作方式是主机写入I/O命令队列和门铃寄存器(I/O命令就绪信号); 然后,NVMe控制器选择I/O命令队列,执行它们并发送I/O完成队列,然后向主机发送中断。主机记录I/O完成队列并清除门控寄存器(I/O命令完成信号),见图2。与SAS和SATA协议相比,这可以显着降低开销。

图2 简化的NVMe架构视图

为什么NVMe从多核处理器获得最佳性能

如上所述,NVMe是NUMA优化协议。这允许多个CPU核心共享队列的所有权,它们的优先级,以及仲裁机制和命令的原子性。因此,NVMe SSD可以分散/收集命令并反过来处理它们,以提供更高的IOPS和更低的数据延迟。

NVMe协议创新功能

NVMe专为高性能和非易失性存储介质而设计,是唯一在高要求和计算密集型企业,云和边缘数据生态系统中脱颖而出的协议。NVMe协议的性能不仅对数据驱动的工作负载具有重要意义,还具有一些非常创新的功能,可为现有工作负载带来独特优势,并为新应用程序提供开放式可能性。

无需自定义设备驱动程序

早期PCIe连接的SSD都需要自己的设备驱动程序来做任何事情。如果用户要升级操作系统,交换操作系统或虚拟机管理程序,或者甚至只升级带有安全补丁的内核,则通常需要部署全新的设备驱动程序来访问SSD。这是一个容易出错,引发头痛的过程,并没有直接使企业受益。 不过NVMe SSD在主要的现代操作系统和虚拟机管理程序中都是开箱即用的。由于接口已标准化,因此单个设备驱动程序可以支持任何制造商提供的任何NVMe SSD。

I/O多路径,命名空间和SR-IOV

除了性能之外,NVMe协议还支持IO多路径,这对于冗余和负载平衡目的特别有用。这是高可用性系统的强制功能:如果一条路径不可访问或繁忙,则可通过另一条路径访问数据。命名空间所有者可以拥有独占控件或彼此共享(参见图3)。共享命名空间所有者可以与命令原子性同时操作。NVMe名称空间共享与多路径相结合,为企业级存储系统奠定了基础。

IO虚拟化与命名空间一起使NVMe对企业SAN,超大规模服务器SAN,虚拟化和超融合用例非常有用。更进一步,SR-IOV(单根I/O虚拟化)允许不同的虚拟机(VM)共享单个PCIe硬件接口。使用SR-IOV,虚拟机管理程序无需参与IO活动,仍然可以共享组件,这有助于提高IO性能和整体系统利用率以及基础架构整合。

图3 IO所有权(NUMA)

多流写入

与硬盘驱动器相比,SSD的磨损方式不同。由于NAND闪存的特性,SSD具有有限的寿命,这些写入操作的数量由称为NAND闪存可以承受的编程/擦除(P/E)周期的写入操作决定。

多写入流是另一个有用的功能,它可以帮助SSD在相邻位置放置类似的数据,以最大限度地减少垃圾收集工作。正确实现后,这可以减少写入放大,提高用户写入性能并降低写入延迟。通过减少系统(设备管理)写入次数和增加用户写入次数,它还可以延长设备的使用寿命,参见图4。

图4 多流写入

异步事件捕获

NVMe协议还支持异步事件,例如SMART状态检查,错误报告,固件提交,清理等。这些对于主机在需要时理解,响应和控制设备至关重要。这些事件可能不会立即执行,也不会超时。每当发生这些事件时,主机接收消息并触发动作(例如,如果温度超过预定阈值,则可以开始节流或者可以停止IO操作直到设备冷却或风扇可以以更高的速度运行)。主机还可以发出异步固件下载和提交命令,以便下载,验证并使其在特定的映像插槽中可用。

随着新功能的添加,错误的修复以及安全补丁的发布,固件升级很常见。但在企业数据中心,停机意味着收入损失。因此,这些设备需要支持计划内停机时间,提供多个固件映像,并尽可能减少停机时间。控制器可以使用校验和,加密哈希或数字签名来验证和验证映像,并使其在特定固件插槽中可用。通常可在下一个复位周期后加载图像。

引导分区

NVMe规范还定义了一个启动分区,即使在控制器就绪之前也可以读取。分区空间可以具有系统初始化代码以引导到诸如UEFI的预OS环境。此选项对于安全启动应用程序也很有用。

电力和热管理

与读取操作相比,底层NAND器件在写入操作期间消耗更高的功率。功率越高,散热越高。通过识别IO模式,然后为选定的几个设备提供更高的功率是一个有趣的功能。这为用户提供了在管理电源和温度挑战方面的灵活性,同时提供了企业级性能。例如,应用程序可以为写密集型工作负载设置更高的功耗和热预算,为读取主导的工作负载设置更低的功率和热预算。这有助于管理企业服务器/存储系统的总体热量和功率预算。

总之,NVMe正在成为一种普遍的技术,具有领先的性能,支持高吞吐量和低延迟的应用(如数据库,虚拟化,数据挖掘,实时分析,物联网和其他高性能计算)。此外,独特的NVMe功能为数据中心,云端和Edge中的新应用打开了大门。

一个基于NVMe的高密度转码解决方案

Netint公司近期推出的视频转码Codensity T400模块,提供了一个存储服务器的高密度转码解决方案。其Codensity G4 SoC包括了ASIC方案的视频编解码器,支持H.264 / H.265的的4K@60 fps或8x 1080p@30 fps实时编解码。T400模块设计为U.2 NVMe托架接口模块,通过替换传统存储服务器中的U.2 SSD卡,实现转码容量的增加,而非存储容量的增加。如图5所示,在10个NVMe托架的1U服务器,通过插入10个 T400转码器模块,可支持80路同步1080p @ 30 fps实时转码。

图5 基于NVMe硬件模块的高密度转码方案

在这种解决方案中,T400视频转码的控制是通过NVMe R1.3接口完成。实际应用中可通过安装Xcoder lib与FFmpeg无缝集成,如图6所示。

图6 基于NVMe硬件转码模块的应用层方案

相关链接

ICT技术之喷—基础架构

参考资料

[1]https://blog.westerndigital.com/nvme-important-data-driven-businesses/

[2]https://blog.westerndigital.com/nvme-features-enterprise-edge-storage/

[3]https://www.netint.ca/product/t400_transcoder/

[4]https://www.netint.ca/blog/presentation_at_streaming_media_west_2018/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云点播
面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化的高品质媒体服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档