Мне нужно получить доступ к карте PCIe по локальной сети. Мне интересно, существует ли для этого решение для виртуализации или мне нужно создать собственное решение.

Сценарий таков: мне нужно использовать карту PCIe на сервере A, но эта карта PCIe физически находится на сервере B. Сервер A и B подключены по локальной сети. Я должен быть в состоянии сделать это по соображениям безопасности. Оба сервера работают под управлением Linux.

Одним из возможных решений, которое я нашел, является socat. С помощью этого инструмента я мог прослушивать порт на сервере A, передавать все входящие пакеты на приемник socat на сервере B, который затем отправлял данные на устройство PCIe. Тем не менее, это все теоретическое, и я понятия не имею, будет ли это работать.

Другой возможностью, о которой я подумал, было создание виртуального устройства PCIe на сервере A, которое отправляет данные по локальной сети на сервер B. Но, опять же, я не знаю, возможно ли это.

Можете ли вы помочь мне найти хорошее решение этой проблемы?

1 ответ1

0

Если производительность не является проблемой, вы можете написать драйвер pcie на хосте A, который перенаправляет запросы pcie в сетевой стек, который отправляет его по локальной сети на хост B, где другой драйвер принимает этот пакет и передает его на карту pcie .... Если это высокопроизводительное приложение и pcie-карта поддерживает несколько функций, я бы посоветовал вам использовать экспресс-коммутатор. Это поможет вам назначить разные функции карты различным хост-машинам. Таким образом, оба хоста должны иметь доступ к карте одновременно через pcie. Вы будете иметь почти родную производительность pcie с общей карты pcie. И это тоже с родными драйверами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .