Архитектура виртуального интерфейса - Virtual Interface Architecture

В Архитектура виртуального интерфейса (ЧЕРЕЗ) - это абстрактная модель пользовательского уровня нулевая копия сеть, и является основой для InfiniBand, iWARP и RoCE. Сделано Microsoft, Intel, и Compaq, исходный VIA стремился стандартизировать интерфейс для высокопроизводительных сетевых технологий, известных как System Area Networks (SAN; не путать с Сети хранения данных ).

Сети - это общий ресурс. С традиционными сетевыми API, такими как API сокетов Беркли, то ядро участвует во всех сетевых коммуникациях. Это представляет собой огромное узкое место в производительности, когда задержка это проблема.

Одной из классических разработок вычислительных систем является виртуальная память, сочетание аппаратного и программного обеспечения, которое создает иллюзию частной памяти для каждого процесса. В соответствии с той же школой, к виртуальному сетевому интерфейсу, защищенному вне границ процесса, можно получить доступ на уровне пользователя. С помощью этой технологии «потребитель» управляет своими собственными буферами и графиком связи, в то время как «провайдер» обеспечивает защиту.

Таким образом, сетевая карта (NIC) обеспечивает «частную сеть» для процесса, и процессу обычно разрешается иметь несколько таких сетей. Виртуальный интерфейс (VI) VIA относится к этой сети и является просто адресатом коммуникационных запросов пользователя. Связь осуществляется через пару VI, по одному на каждом из узлов обработки, участвующих в передаче. В режиме «обход ядра» пользователь управляет своими собственными буферами.

Другой аспект традиционных сетей заключается в том, что поступающие данные помещаются в предварительно выделенный буфер, а затем копируются в указанное пользователем конечное место назначения. Копирование больших сообщений может занять много времени, поэтому исключение этого шага полезно. Еще одна классическая разработка вычислительных систем - это прямой доступ к памяти (DMA), при котором устройство может напрямую обращаться к основной памяти, в то время как ЦП свободен для выполнения других задач.

В сети с «удаленным прямым доступом к памяти» (RDMA ) отправляющая сетевая карта использует DMA для чтения данных в указанном пользователем буфере и передачи их в виде автономного сообщения по сети. Затем принимающая сетевая карта использует DMA для помещения данных в указанный пользователем буфер. Промежуточное копирование отсутствует, и все эти действия происходят без участия ЦП, что дает дополнительное преимущество в виде более низкой загрузки ЦП.

Чтобы сетевая карта действительно могла получить доступ к данным через DMA, страница пользователя должна находиться в памяти. В VIA пользователь должен «закрепить» свои буферы перед передачей, чтобы операционная система не выгружала страницу на диск. Это действие - одно из немногих, в котором задействовано ядро ​​- связывает страницу с физической памятью. Чтобы гарантировать, что только процесс, владеющий зарегистрированной памятью, может получить к ней доступ, сетевым адаптерам VIA требуются ключи доступа, известные как «теги защиты» во время связи.

По сути, VIA - это стандарт, который определяет обход ядра и RDMA в сети. Он также определяет библиотеку программирования под названием «VIPL». Это было реализовано, в первую очередь, в cLAN от Giganet (сейчас Эмулекс ). Однако в основном основной вклад VIA заключался в создании основы для InfiniBand, iWARP и стандарты RoCE.

внешняя ссылка

  • Заметки Usenix о VIA
  • Архитектура виртуального интерфейса, книга от Intel
  • Как планировать, проектировать и оптимизировать корпоративные сети
  • Спецификация архитектуры виртуального интерфейса UML, cs520
  • Ада Гавриловская, Достижение высокопроизводительных коммуникаций: вертикальный подход (CRC Press, ISBN  9781420093131, 2009), стр. 193 «8.2.4 Исторические основы RDMA»