Infiniband (иногда сокр. IB) — высокоскоростная коммутируемаякомпьютерная сеть, используемая в высокопроизводительных вычислениях, имеющая очень большую пропускную способность и низкую задержку. Также используется для внутренних соединений в некоторых вычислительных комплексах. По состоянию на 2014 год Infiniband являлся наиболее популярной сетью для суперкомпьютеров. Контроллеры Infiniband (host bus adapter) и сетевые коммутаторы производятся компаниями Mellanox и Intel. При создании Infiniband в него закладывалась масштабируемость, сеть использует сетевую топологию на основе коммутаторов (Switched fabric).
Подобно многим современным шинам, например, PCI Express, SATA, USB 3.0, в Infiniband используются дифференциальные пары для передачи последовательных сигналов. Две пары вместе составляют одну базовую двунаправленную последовательную шину (англ.lane), обозначаемую 1х. Базовая скорость — 2,5 Гбит/с в каждом направлении. Порты Infiniband состоят из одной шины или агрегированных групп 4x или 12x базовых двунаправленных шин. Чаще всего применяются порты 4x[4].
Для портов существует несколько режимов передачи данных по шинам. Более ранние режимы использовали для балансировки сигнала кодирование 8B/10B[5] (каждые 8 бит данных передаются по шине как 10 бит) с накладными расходами в 20 %:
Single Data Rate (SDR, 1999) — работа с базовой скоростью 2,5 Гбит/с, эффективная скорость (с учётом расходов на кодирование) 2 Гбит/с на каждую шину
Double Data Rate (DDR, 2004) — битовая скорость равна удвоенной базовой (5 Гбит/с, эффективная 4 Гбит/с). 4x порт имеет физическую скорость 20 Гбит/с и эффективную 16 Гбит/с
Quad Data Rate (QDR, 2008) — соответственно, учетверённой (базовая 10 Гбит/с), эффективная для 4x порта 32 Гбит/с.
Начиная с режима FDR-10 применяется намного более экономичное кодирование 64B/66B:
Fourteen Data Rate 10 (FDR-10) — эффективная скорость на 1x шину чуть более 10 Гбит/с, для 4x порта 40 Гбит/с
Fourteen Data Rate (FDR, 2011) — базовая скорость 1х шины 14,0625 Гбит/с[6], 4x порт предоставляет около 56 Гбит/с
Enhanced Data Rate (EDR) — скорость 1x 25,78125 Гбит/с, 4x — около 100 Гбит/с
Основное назначение Infiniband — межсерверные соединения, в том числе и для организации RDMA (Remote Direct Memory Access).
Производительность
Поколение:
SDR
DDR
QDR
FDR-10
FDR
EDR
HDR
NDR
XDR
GDR
Эффективная пропускная способность, Гбит/с, на 1x шину[7]
InfiniBand использует коммутируемую среду с соединениями точка-точка, в отличие от ранних вариантов сетей Ethernet, которые использовали общую среду и, изначально - шинное соединение. Все передачи начинаются и заканчиваются на адаптере канала. Каждый вычислительный узел содержит HCA-адаптер (host channel adapter), подключаемый к процессору по интерфейсу PCI Express (ранее - через PCI-X). Между адаптерами пересылаются данные и управляющая информация, в том числе - необходимая для реализации QoS.
Для периферийных устройств предполагалось использование TCA-адаптеров (target channel adapter), но они не получили распространения, а такие периферийные устройства создаются на базе стандартных материнских плат[11].
HCA-адаптеры обычно имеют один или два порта 4x, которые могут подключаться либо к таким же портам HCA и TCA, либо к коммутаторам (свитчам). Коммутаторы могут быть организованы в сети с топологиями типа утолщённое дерево (Fat Tree), Сеть Клоза, реже — многомерный тор, двойная звезда, и в различных гибридных комбинациях[5][12].
Порты и кабели Infiniband 4x имеют форм-факторы:
CX4 (SFF-8470, например, Fujitsu MicroGiGaCN), только до скоростей DDR (иногда - до QDR)
Чтобы обеспечить максимальную пропускную способность, было принято решение ограничить допустимую длину кабеля InfiniBand до 10 метров (только активный кабель).
Кабели Infiniband могут иметь различное исполнение:
Пассивные электрические кабели (медные многожильные провода), длиной обычно в единицы метров, иногда - до 30 м. Для более длинных кабелей доступны меньшие скорости (7 м - для QDR)
Активные электрические кабели (то же, но с усилителями, позволяют немного увеличить максимальную длину кабеля для данной скорости)
Активные оптические кабели с интегрированным оптоволоконным кабелем длиной от единиц до десятков и сотен метров.
Активные оптические модули с оптическим коннектором MTP/MTO для подключения оптоволоконных кабелей типа OM3/OM4 (8 волокон), либо SR4, либо LC/LC
Также при использовании универсальных Infiniband/Ethernet- адаптеров в Ethernet-инфраструктуре могут применяться переходники на порты SFP+.
Сигналы Infiniband могут передаваться на несколько дюймов по печатным платам, в том числе через внутренние разъёмы с подходящими частотными характеристиками, при условии почти одинаковой длины всех пар в порту.
Протоколы и API
На канальном (англ. Data Link) уровне InfiniBand передаёт данные в виде пакетов длиной до 4 КБ (килобайт), которые после объединения формируют сообщение. Некоторые устройства поддерживают меньший максимальный размер пакетов, например, 2 КБ. Типы сообщений:
операция доступа к памяти — чтение или запись в память получателя (RDMA).
канальные операции пересылки сообщений (отправитель посылает сообщение с данными, получатель принимает его в заранее выделенный буфер)
транзакционная операция
передача нескольким получателям (multicast, поддерживается не всеми коммутаторами)
атомарная операция в память удалённого узла (атомарное сложение и сравнение-с-обменом для 64-битных целых)
Сообщения Infiniband разделяются на сервисы в зависимости от гарантий доставки и необходимости инициализации соединения перед обменом:
Reliable Connected (RC) — надёжная доставка, необходима инициализация соединения между получателем и отправителем
Unreliable Datagram (UD) — ненадёжная доставка, не требует инициализации
Позже был введён сервис XRC[14], комбинирующий в себе некоторые свойства RC и RD
Infiniband позволяет использовать принцип RDMA (англ.Remote Direct Memory Access — удалённый прямой доступ к памяти), при котором передача данных из памяти удалённого компьютера в локальную память инициатора запроса производится непосредственно сетевым контроллером, при этом исключается участие CPU удалённого узла. RDMA позволяет передавать данные без дополнительной буферизации и не требует активной работы ОС, библиотек или приложения на узле, к памяти которого производится обращение.
Infiniband может использоваться с двумя низкоуровневыми универсальными программно-аппаратными интерфейсами (API), которые были разработаны на базе U-Net (Cornell, середина 1990-х) и VIA (Virtual Interface Architecture[англ.], конец 1990-х)[15]:
Infiniband verbs (IB verbs, OFED verbs) — стандартизация программного интерфейса от группы Open Fabrics Alliance
uDAPL (от англ.User Direct Access Programming Library, также kDAPL, kernel DAPL) — стандарт на API для абстрактного транспорта прямого доступа (англ.Direct Access Transport, DAT) от DAT Collaborative.
С помощью verbs или uDAPL могут быть реализованы высокоуровневые программные интерфейсы и протоколы, в частности:
MPI (Message Passing Interface) — популярный стандарт пересылки сообщений в компьютерных кластерах. Существует множество реализаций MPI, поддерживающих сети Infiniband.
SHMEM, GASnet и другие популярные интерфейсы для работы с RDMA
IPoIB (IP over Infiniband) — группа протоколов, описывающих передачу IP-пакетов поверх Infiniband[16]:
RFC 4390 «Dynamic Host Configuration Protocol (DHCP) over InfiniBand»
RFC 4391 «Transmission of IP over InfiniBand (IPoIB)»
RFC 4392 «IP over InfiniBand (IPoIB) Architecture»
SRP (англ.SCSI RDMA Protocol) — протокол обмена данными между SCSI-устройствами с использованием RDMA[16]. Определён в стандарте ANSI INCITS 365—2002.
DDP (англ.Direct Data Placement): RFC 4296 —— архитектура для реализации прямого размещения данных (DDP) и удалённого прямого доступа к памяти (RDMA) в Internet-сетях.
SDP (англ.Socket Direct Protocol) — протокол установления виртуальных соединений и обмена данными между сокетами поверх Infiniband[16], передача данных не использует TCP-стек операционной системы, однако использует IP-адреса и может использовать IPoIB для их разрешения.
iSER (англ.iSCSI Extensions for RDMA) — IETF-стандарт для адаптации iSCSI к RDMA сетям[5]
История
InfiniBand появился в 1999 году при объединении двух конкурировавших проектов: Future I/O и Next Generation I/O. При этом была сформирована ассоциация InfiniBand Trade Association, в которую вошли Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft, и Sun.[17]
Версия 1.0 спецификации InfiniBand — InfiniBand Architecture Specification — была выпущена в 2000 году. Изначально в ней предполагалось, что IB одновременно сможет стать заменой медленной шины PCI для ввода-вывода, сетей Ethernet, специализированных кластерных сетей и Fibre Channel.[18][19]
2001: Mellanox начала поставки устройств серии InfiniBridge, работающих на скоростях 10 Гбит/с (4x SDR) и поставила более 10 тысяч InfiniBand портов.[20]
2002: Intel объявил, что вместо поставок чипов IB займется развитием шины PCI Express. Microsoft прекратила поддержку проекта, переключившись на расширение Ethernet. Sun и Hitachi продолжили поддерживать IB.[21]
2004: IB начинает применяться в качестве кластерной сети, предлагая более низкие задержки, чем Ethernet-сети.[18] Альянс OpenFabrics Alliance разрабатывает стандартизированный программный стек InfiniBand для ОС Linux. На следующий год ядро Linux получает поддержку IB.[22]
2005: IB начинает использоваться как сеть для подключения устройств хранения информации.[23]
2005: Компания Topspin была приобретена компанией Cisco.
2009: Среди Top500 суперкомьютеров мира Gigabit Ethernet использовался в 259, а InfiniBand в 181 кластере.[24]
2010: Лидеры рынка Infiniband, компании Mellanox и Voltaire объединяются[25][26]. Кроме них, остался ещё один производитель IB-устройств, QLogic, который, однако производит больше устройств Fibre Channel. Oracle делает крупные инвестиции в Mellanox.
↑Sayantan Sur; Panda, Dhabaleswar K.Network Speed Acceleration with IB and HSE (неопр.). Designing Cloud and Grid Computing Systems with InfiniBand and High-Speed Ethernet 23. Newport Beach, CA, USA: CCGrid 2011 (2011). Дата обращения: 13 сентября 2014. Архивировано 13 июня 2020 года.
↑"Is InfiniBand poised for a comeback?", Infostor, 10 (2), Архивировано25 ноября 2020, Дата обращения: 17 января 2015{{citation}}: |archive-date= / |archive-url= несоответствие временной метки; предлагается 25 ноября 2020 (справка)Источник (неопр.). Дата обращения: 17 января 2015. Архивировано 25 ноября 2020 года.