我对基于 PCIe 的存储的最新发展感到有些困惑,特别是因为它与 NVMe 规范及其硬件兼容性有关。
虽然我在磁盘外形尺寸和一些高端 PCIe 设备(如Fusion-io )中广泛使用过 SSD,但我处于不了解 NVMe 基础知识的位置,并且正在寻求澄清什么类型的服务器支持硬件。
例如,像这样来自 Supermicro 的广告文案令人困惑。
...高性能 CPU PCI-E Gen3 直接连接到 NVMe 设备。
我正在处理基于 Linux 的软件定义存储解决方案,并希望使用备用 Fusion-io 设备,这些设备使用专有驱动程序(向操作系统提供/dev/fioX设备名称)。
当我向供应商寻求帮助时,得到的回应是:
“fioX”设备命名已被新的 NVMe 设备接口淘汰。这意味着我们购买过时的适配器来增加其他人没有要求的支持。
这似乎有点苛刻。我不认为 Fusion-io 适配器已经过时。
我在网上找到的稀缺信息似乎暗示 NVMe 仅在绝对最新一代的服务器硬件(Intel E5-2600v3 CPU 和 PCI 3.0 芯片组?)上受支持。但我无法验证这一点。
这是真的?
采用率是多少?这是工程师在他们的设计决策中考虑的问题,还是我们在谈论一个尚未完全形成的“标准”?
如果 NVMe仅适用于市场上的最新系统,那么(向供应商)建议我的旧系统安装基础不能与 NVMe 兼容是否合理,因此值得添加我要求的支持吗?
NVMe 基于PCIe,并使用为此设计的不同驱动程序。您基本上可以采用 M2 外形 NVM,将其放入适当的适配器,然后在任何带有适当驱动程序的 linux、windows 或 BSD 系统上运行它。
本质上,NVMe 所做的只是将基于 PCIe 的 SSD标准化为一组驱动程序,旨在充分利用它们。
如果您可以从非标准pci ssd 启动,则可以从该启动,并在操作系统中使用适当的驱动程序。如果您将其用于缓存和其他目的,NVMe 没有理由不工作。
你的旧系统可能是兼容的,假设你可以得到一个足够新的操作系统,上面有足够现代的内核。
我需要自己测试一下...
我购买了四个Intel 750 PCIe NVMe SSD安装在HP ProLiant DL380p Gen8服务器中。这些服务器不是当前一代的 Intel 2600v3 系列 CPU,而是 2600v2 CPU。
外卖:
NVMe是一种接口规范。在 Linux 下,设备被列举为
/dev/nvmeXnY
,例如/dev/nvme0n1
和/dev/nvme1n1
。我使用的设备的外形尺寸是 PCIe 3.0 x4。Gen8 ProLiant 服务器在默认 Riser 卡笼上有两个 PCIe 3.0 插槽。这些 NVMe PCIe 卡将在较慢的 PCIe 插槽(或 PCIe 2.0)中工作,但此时会受到总线的限制。
因此,对于我的用例,NVMe 在某种程度上是由操作系统驱动的,但绝对与我稍旧的服务器硬件兼容。
我的两分钱...
NVMe 让各种 SSD 制造商专注于并采用基本标准……基本上,您可以从连接到 NVMe 服务器的 SSD 获得 Nand Flash 性能,以减少 NET。他们也更多是 NVMe over fabric 特性(我还不太熟悉)
见https://www.brighttalk.com/webcast/663/132761
内容“NVMe 和 NVMe over Fabrics 的性能影响” •NVMe over Fabrics 计划概述 •NVMe 支持多种结构,包括带有 RDMA 的以太网 (iWARP) •NVM Express 端到端如何消除 SCSI 转换延迟 •实现性能与数百个 SSD 相当的优势——本地和远程
PCWorld 上的这篇文章可能会引起您的兴趣。
我在Thinkmate上写了一篇文章,试图对 NVMe 进行一个很好的概述,并作为选择正确驱动器和系统的一个很好的小指南,这是我在网上发现的缺失的东西。我们主要销售 Supermicro 服务器,我同意 - 事情可能会有点混乱......这就是我写这篇文章的原因!
至于采用率,我不能代表整个行业,但 Thinkmate 对 NVMe 的兴趣非常浓厚,我们从客户那里得到的反馈是,他们对购买非常满意,主要是因为性能优势.
我看到很多关于价格的讨论,但我认为最重要的是要考虑的是价值,而不是价格。您对闪存的选择应在很大程度上取决于每种解决方案在驱动器和系统的整个生命周期内为您的应用程序带来的价值。
我在 DL 380p gen 8 中添加了一张英特尔 750 400GB nvme 卡,一点问题都没有。BIOS 将其识别为大容量存储设备。
我正在使用 FreeBSD 9.3,它立即识别了 nvme 驱动器,运行良好且速度非常快。我无法评论从驱动器启动,因为我将它用作第二个驱动器。
下面的文章中有一个我认为很重要的细节,它超越了“just pcie”。
正是 32k 同时排队的请求可以改变一些应用程序。如果我没看错的话,那不能通过“将它安装在一个可以容纳它的插槽中”的解决方案来获得。它需要一个合适的 NVMe 板。
仅供参考。我也在学习!
http://www.pcworld.com/article/2899351/everything-you-need-to-know-about-nvme.html
关键问题是您是否尝试启动设备?
如果您想从设备启动,则设备需要提供可用于启动它的“选项 rom”,或者主板上固件上的 BIOS/UEFI 需要了解如何与设备通信。NVME SSD 通常不附带选项 rom,因此您只能在足够新的系统上引导它们,以便固件能够理解 NVME。
如果答案是否定的,那么 NVME SSD 只是另一个 PCIe 设备。没什么特别的,只要你可以物理连接它(可能需要一个适配器,因为大多数 NVME 驱动器都采用 M.2 外形尺寸)并且你的操作系统有一个驱动程序,你应该能够使用它。