NVMe over Fabrics Explained
blog.westerndigital.com
blog.westerndigital.com
NVMe to ethernet is simply making the SSD the endpoint with a functional NFS/SMB and IP stack. Soon it will move out of the backplane into a stand-alone cage, and be a NAS...
Confused by this comment. NVMeoF is about tunneling the NVMe command set over a network, instead of tunneling SCSI over IP or Fibre Channel, when communicating with a NAS-like device; not about plugging an ethernet cable to the SSD.
Performance is awesome and I have not had any problems. It is a bit messy to configure on the target. But is very easy to configure on the initiator. There is also a free NVMe-oF client driver for Windows, https://www.starwindsoftware.com/starwind-nvme-of-initiator but I have not tested it yet.
I use NVMe-oF both for block devices(ZFS volumes from traditional hard drives) and Intel Optane. It also works with SATA/SAS SSD's. It is not as fast as native, you get some additional latency but still much much better than the alternatives.
What is really cool is that Optane is so fast that I can easily create 4+ partitions and share the Optane device to 4+ different systems.
SATA might be slower, but I much prefer a slower interface that can break but supports 12x drives than a single NVMe drive!!!
Also I need to see some CPU overhead graphs on those 12x SATA drives vs. a single NVMe?!
My suspicion is that the overhead will be lower if the SATA control chip is buffering data to avoid the CPU waiting.
You could get 12 quite easily even on consumer hardware. AMD Threadripper gives you 64 PCIe 4.0 lanes (so up to 72 with the TRX40 chipset), so you just use three PCIe x16 expansion cards each providing four NVMe 4x slots.
Attachment is a solved issue as all you do is buy a PCIe switch and hang more nvme off your cpu. The issue I see is no clear standard for nvme form factors or connectors.
m.2 is a consumer standard that is more mobile friendly than desktop or server yet it appears to be the more common standard in all three. U.2 nvme in the classic 2.5" spinning rust form factor but I don't see them used in desktops. Then there are numerous "ruler" form factors designed to plug into 1U servers.
Connectors are also a mixed bag with m.2, U.2, a 36pin quad channel sff motherboard connector, sata express connector, and OCulink.
And further this whole article is more old-is-new again blogspam as all it talks about yet another SAN technology.
Most NVMe expansion cards ('carrier cards') do not integrate any extra IC (or just a retimer) and instead rely on motherboard feature called PCIe bifurcation which essentially turns a x16 slot into four 'virtual' x4 slots. These can be fairly inexpensive ($50-$80), e.g. Supermicro AOC-SLG3-2M2 which provides two NVMe x4 connectors or Linkreal LRNV95NF which provides four.
If your motherboard does not support bifurcation then you need a more expensive ($150-$200) card with a PCI switch (e.g. SuperMicro AOC-SHG3-4M2P or Linkreal LRNV9524 which use PLX PEX switches).
I think this has more to do with the form factor/connector issue than the interface. m.2 is an awkward form factor even though it is the most popular. An m.2 device is a low cost bare pcb which relies on a cheap board-to-board connector and secured via a screw remotely located from the connector. You cant locate these off board without a carrier and cable and you cant connect them vertically because of the way they are secured. Great for laptops though...
Another thing to consider is NVMe uses a PCI express x4 link meaning you need eight high speed differential pairs in a single cable along with clocking signals and so on. Cables aren't as simple nor cheap to make as sata which only had two differential pairs. Hopefully OCulink will become the standard.
And don't forget that disk form factors and interfaces are tied to desktop standards like ATX which are not the driving force behind computer design anymore. So does it make sense to continue to promulgate these form factors, e.g. U.2? I personally say keep what works but some will argue that.
Until we get this whole physical part of nvme sorted, we're going to be stuck in this awkward transition phase for a bit.
https://en.wikipedia.org/wiki/PCI_Express#SWITCH
https://en.wikipedia.org/wiki/PLX_Technology
https://www.anandtech.com/show/13511/highpoint-releases-the-...
They mainly use SuperMicro. They have been around for decades and have top notch service and pricing.
Also note, check out the Server section as well since there’s a few more in that section that have high NVMe capacity. Like below https://www.siliconmechanics.com/systems/servers/rackform#fe...
I ask because ThinkMate.com web configurator is identical to SiliconMechanics.com
EDIT: I'm going to answer my own question. It appears Silicon Mechanics was acquired by Source Code Corporation, who also owns ThinkMate.
Still, even just being able to get rid of the huge complexity and historical baggage of SCSI is a good thing. One of my favourite examples is how the spec defines the LUN number to not be a number.
The drive is connected to a storage device. Storage is exposed by the device to network. Exposed storage and the drive do not correspond 1to1 (redundancy, etc.)
From a quick search it seems that NVMe-oF is still early days with limited implementations, where iSER is more established. Both rely on RDMA.
I could not find any performance comparisons. Any insight here?
NVMe-oF can do both TCP (akin to iSCSI) and RDMA (akin to iSER). There are likely several reasons NVMe-oF is faster, but one big one is that each connection within a session shares state in iSCSI, so you either process all connections for a session on a single thread or you take locks. In NVMe-oF, it's possible to keep every connection entirely independent, so the NVMe-oF implementations scale better.
Might be related
Once a plot is generated, it can be stored on a slower HDD for the proof-of-space to take place.