Access PCIe card over network / PCIe virtualization

0

I need to access a PCIe card over LAN. I am wondering if there is an existing virtualization solution for this or if I need to create my own solution.

The scenario is as follows: I need to use an PCIe card on a server A, but that PCIe card is physically in server B. Server A and B are connected over LAN. I need to be able to do this for security reasons. Both servers run Linux.

One possible solution I have found is socat. With this tool I could listen on a port on server A, transfer all incoming packets to a socat listener on server B, which then sends the data to the PCIe device. However, this is all theoretical and I have no idea if this will work.

Another possibility I thought of was creating a virtual PCIe device on server A, which sends data over LAN to server B. But again, I do not know if this is feasible.

Can you help me come up with a good solution to this problem?

Joost van Oorschot

Posted 2015-01-08T09:02:54.460

Reputation: 3

Answers

0

If performance is not an issue, you can write a pcie driver on host A that forwards pcie requests over to networking stack, which sends it over LAN to host B, where another driver takes this packet and gives it to pcie card.... If it is performance intensive application and pcie card supports multiple functions then I would suggest you use express fabric switch. This will help you assign different card functions to different host machines. So both hosts shall be able to access the card simultaneously over pcie. You shall have near native pcie performance from a shared pcie card. And that too with native drivers.

philosopher.stoned

Posted 2015-01-08T09:02:54.460

Reputation: 31