I'm a bit confused about the recent developments in PCIe-based storage, particularly as it relates to the NVMe specification and its hardware compatibility.
While I've worked extensively with SSDs in disk form-factor and some higher-end PCIe devices like Fusion-io, I'm in a position where I don't understand the basics of NVMe and am seeking clarification on what type of server hardware is supported.
For instance, ad copy like this from Supermicro is confusing.
...high performance CPU PCI-E Gen3 direct connnect to NVMe devices.
I'm dealing with a Linux-based software-defined-storage solution and wanted to use spare Fusion-io devices, which use a proprietary driver (presenting /dev/fioX device names to the OS).
When I asked for help from the vendor, the response was:
The "fioX" device naming is made obsolete by the new NVMe device interface. It means us purchasing obsolete adapters to add support that nobody else has asked for.
This seems a bit harsh. I didn't think Fusion-io adapters were obsolete.
The scarce information I find online seems to hint that NVMe is only supported on the absolutely newest generations of server hardware (Intel E5-2600v3 CPUs and PCI 3.0 chipsets?). But I can't verify this.
Is this true?
What's the adoption rate? Is this something that engineers are accounting for in their design decisions, or are we talking about a "standard" that's not fully formed?
If NVMe is something that only applies to the newest systems in the market, is it reasonable to suggest (to the vendor) that my install base of older systems can't be NVMe-compatible, so it's worth adding the support I requested?