Is it RDMA? Is it a modification of SR-IOV?
I’m having trouble even trying to find out more about this since the RDMA definition just says “remote access to device memory” and I’d like to confirm if that includes virtual instances of PCIe devices over the network.
Essentially, I’m looking for a way to share virtual instances of supported PCIe devices over IP. I.e. If you have a GPU, you can create virtual slices of it with SR-IOV on KVM-based hypervisors. I’m looking for something that will take this and make it available over IP.
I have come across Infiniband and QLogic, Mellanox and HP and IBM and RDMA support on Debian and all of that. I just need someone to ELI5 this to me so I know where/what to search and see if what I want is really even possible with FOSS.
I know that Nutanix allows one to serve PCIe hardware over IP on their hypervisor, but I plan to stick with FOSS as far as possible.
Thanks!
Edit: Please let me know what makes my post so hard to grasp - the answer was simple RoCE/iWARP. RDMA is definitely the underlying technology that offers access to the memory of the device whilst bypassing the kernel for good performance; security considerations aside, this is a very good idea since RoCE/iWARP work on the UDP/IP and the TCP/IP stack, making them routable.
Apologies if my post didn’t make the most sense, I tried to describe it the best I could. Thanks
I have no experience about what you are trying to achieve, but rdma and related technologies (infiniband, qlogic, sr-iov, ROCE) is not it. These are network technologies that permit high bandwidth/low latency data transfer between hosts. Most of these bypass the IP stack entirely.
Infiniband is a network stack that enable RDMA, it’s only vendor is now NVIDIA which acquired mellanox. Qlogic was another vendor, but it got acquired by Intel that tried to market it as Omnipath, but it was spinned off to Cornelis network.
Sr-iov is a way to share an infiniband card to a virtual machine on the same host.
ROCE is an implementation of the rdma software stack over ethernet instead of infiniband.
I read a bit more and I’d like to add:
RoCE/iWARP is the technology with which one would be able to route DMA over the network. The bandwidth of the network is the bottleneck but we’ll ignore that for now.
SR-IOV is a way to share virtual functions of PCIe devices on the same host.
Regardless of whether one uses IB or iWARP, they can also route data to and from a PCIe device attached to a host to another host over the network. I still have to research the specifics but I’m now positive that it can be done.
Thanks
I’m fairly sure there’s a way to provide compatible PCIe devices over IP on a network, or “some network” (if you’re bypassing the IP stack, perhaps). I just don’t know what it’s called, and I’m getting more confused by whether RDMA support can do this or not. Essentially, I want to leverage what SR-IOV allows me to do (create virtual functions of eligible PCIe devices) and pass them over IP or some other network tech to VMs/CTs on a different physical host.
Do you mean stuff like PCIeoF (PCIe over Fiber)?
Is there a PCIEoE?
I don’t think so, at least I haven’t heard of it. I guess Ethernet would have too much overhead
I suppose RoCE/iWARP were what I was asking for