Infiniband

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 10 июля 2019; проверки требует 1 правка.

Перейти к навигацииПерейти к поиску

Infiniband (иногда сокр. IB) — высокоскоростная коммутируемая компьютерная сеть, используемая в высокопроизводительных вычислениях, имеющая очень большую пропускную способность и низкую задержку. Также используется для внутренних соединений в некоторых вычислительных комплексах. По состоянию на 2014 год Infiniband являлся наиболее популярной сетью для суперкомпьютеров. Контроллеры Infiniband (*host bus adapter*) и сетевые коммутаторы производятся компаниями Mellanox и Intel. При создании Infiniband в него закладывалась масштабируемость, сеть использует сетевую топологию на основе коммутаторов (*Switched fabric*).

В качестве коммуникационной сети кластеров Infiniband конкурирует с группой стандартов Ethernet и проприетарными технологиями, например, компаний Cray и IBM. При построении компьютерных сетей IB конкурирует с Gigabit Ethernet, 10 Gigabit Ethernet, и 40/100 Gigabit Ethernet. Также IB используется для подключения накопителей информации DAS. Развитием и стандартизацией технологий Infiniband занимается InfiniBand Trade Association (англ.)русск.

## Содержание

* 1Краткое описание
* 2Топология и соединения
* 3Протоколы и API
* 4История
* 5См. также
* 6Примечания
* 7Литература
* 8Ссылки

## Краткое описание

Ранние версии Infiniband использовали электрические кабели 4x с разъёмами CX4 (SFF 8470). Показан фрагмент коммутатора Voltaire ISR-6000 с портами SDR 4x.

CX4 (SFF 8470) кабель InfiniBand для SDR 4x.

Подобно многим современным шинам, например, 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 Гбит/с, 4x порт предоставляет около 56 Гбит/с
* Enhanced Data Rate (EDR) — скорость 1x 25.78125 Гбит/с, 4x — около 100 Гбит/с

Основное назначение Infiniband — межсерверные соединения, в том числе и для организации RDMA (Remote Direct Memory Access).

## Топология и соединения

Два двухпортовых HCA-адаптера, подключаемые к компьютеру по PCI Express.

InfiniBand использует коммутируемую среду с соединениями точка-точка, в отличие от ранних вариантов сетей Ethernet, которые использовали общую среду и, изначально, шинное соединение. Все передачи начинаются и заканчиваются на адаптере канала. Каждый вычислительный узел содержит *HCA*-адаптер (host channel adapter), подключаемый к процессору по интерфейсу PCI Express (ранее через PCI-X). Между адаптерами пересылаются данные и управляющая информация, в том числе необходимая для реализации QoS.

Для периферийных устройств предполагалось использование TCA-адаптеров (target channel adapter), но они не получили распространения, а такие периферийные устройства создаются на базе стандартных материнских плат.

HCA-адаптеры обычно имеют один или два порта 4x, которые могут подключаться либо к таким же портам HCA и TCA, либо к коммутаторам (свитчам). Коммутаторы могут быть организованы в сети с топологиями типа утолщенное дерево (Fat Tree), Сеть Клоза, реже — многомерный тор, двойная звезда, и в различных гибридных комбинациях[5][12].

Порты и кабели Infiniband 4x имеют форм-факторы:

* CX4 (SFF-8470, например, Fujitsu MicroGiGaCN), только до скоростей DDR (иногда до QDR)
* QSFP (SFF-8435, SFF-8436, 40Гбит/с)
* QSFP+ (QSFP14, SFF-8685, 56 Гбит/с)
* zQSFP+ (QSFP28, SFF-8665, 100 Гбит/с).

Более редкие порты 12x выполняются в форм-факторах:

* 12x MicroGiGaCN (Fujitsu FCN-260C024)[5]
* CXP[13]

Чтобы обеспечить максимальную пропускную способность, было принято решение ограничить допустимую длину кабеля InfiniBand до 10 метров (только активный кабель).

Кабели Infiniband могут иметь различное исполнение:

* Пассивные электрические кабели (медные многожильные провода), длиной обычно в единицы метров, иногда до 30 м. Для более длинных кабелей доступны меньшие скорости (7 м для QDR)
* Активные электрические кабели (то же, но с усилителями, позволяют немного увеличить максимальную длину кабеля для данной скорости)
* Активные оптические кабели с интегрированным оптоволоконным кабелем длиной от единиц до десятков и сотен метров.
* Активные оптические модули с оптическим коннектором MTP/MTO для подключения оптоволоконных кабелей типа OM3/OM4 (8 волокон), либо SR4, либо LC/LC

Также при использовании универсальных Infiniband/Ethernet адаптеров в Ethernet инфраструктуре могут применяться переходники на порты SFP+.

Сигналы Infiniband могут передаваться на несколько дюймов по печатным платам, в том числе через внутренние разъёмы с подходящими частотными характеристиками, при условии почти одинаковой длины всех пар в порту.

## Протоколы и API

На физическом уровне InfiniBand передаёт данные в виде пакетов длиной до 4 КБ (килобайт), которые после объединения формируют сообщение. Некоторые устройства поддерживают меньший максимальный размер пакетов, например, 2 КБ. Типы сообщений:

* операция доступа к памяти — чтение или запись в память получателя (RDMA).
* канальные операции пересылки сообщений (отправитель посылает сообщение с данными, получатель принимает его в заранее выделенный буфер)
* транзакционная операция
* передача нескольким получателям (multicast, поддерживается не всеми коммутаторами)
* атомарная операция в память удалённого узла (атомарное сложение и сравнение-с-обменом для 64-битных целых)

Сообщения Infiniband разделяются на сервисы в зависимости от гарантий доставки и необходимости инициализации соединения перед обменом:

* Reliable Connected (RC) — надёжная доставка, необходима инициализация соединения между получателем и отправителем
* Unreliable Connected (UC) — ненадёжная доставка, необходима инициализация
* Reliable Datagram (RD) — опциональный сервис, реализуется редко. Надёжная доставка без инициализации
* Unreliable Datagram (UD) — ненадёжная доставка, не требует инициализации
* Позже был введён сервис XRC, комбинирующий в себе некоторые свойства RC и RD

Infiniband позволяет использовать принцип RDMA (англ. Remote Direct Memory Access — удалённый прямой доступ к памяти), при котором передача данных из памяти удалённого компьютера в локальную память инициатора запроса производится непосредственно сетевым контроллером, при этом исключается участие CPU удалённого узла. RDMA позволяет передавать данные без дополнительной буферизации и не требует активной работы ОС, библиотек или приложения на узле, к памяти которого производится обращение.

Infiniband может использоваться с двумя низкоуровневыми универсальными программно-аппаратными интерфейсами (API), которые были разработаны на базе U-Net (Cornell, середина 1990-х) и VIA (*Virtual Interface Architecture[en]*, конец 1990-х):

* 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:
	+ 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], передача данных не использует TCP-стек операционной системы, однако использует IP-адреса и может использовать IPoIB для их разрешения.
* iSER (англ. iSCSI Extensions for RDMA) — IETF-стандарт для адаптации iSCSI к RDMA сетям

## История

InfiniBand появился в 1999 году при объединении двух конкурировавших проектов: Future I/O и Next Generation I/O. При этом была сформирована ассоциация *InfiniBand Trade Association*, в которую вошли Compaq, Dell, Hewlett-Packard, IBM, Intel, Microsoft, и Sun.

Версия 1.0 спецификации InfiniBand — InfiniBand Architecture Specification — была выпущена в 2000 году. Изначально в ней предполагалось, что IB одновременно сможет стать заменой медленной шины PCI для ввода-вывода, сетей Ethernet, специализированных кластерных сетей и Fibre Channel.

Оборудование Infiniband производили: Qlogic, Mellanox, Voltaire, Topspin.

Основные даты:

* 2001: Mellanox начала поставки устройств серии InfiniBridge, работающих на скоростях 10 Гбит/с (4x SDR) и поставила более 10 тысяч InfiniBand портов.
* 2002: Intel объявил, что вместо поставок чипов IB займется развитием шины PCI Express. Microsoft прекратила поддержку проекта, переключившись на расширение Ethernet. Sun и Hitachi продолжили поддерживать IB.
* 2004: IB начинает применяться в качестве кластерной сети, предлагая более низкие задержки, чем Ethernet-сети. Альянс OpenFabrics Alliance разрабатывает стандартизированный программный стек InfiniBand для ОС Linux. На следующий год ядро Linux получает поддержку IB.
* 2005: IB начинает использоваться как сеть для подключения устройств хранения информации.
* 2005: Компания Topspin была приобретена компанией Cisco.
* 2009: Среди Top500 суперкомьютеров мира Gigabit Ethernet использовался в 259, а InfiniBand в 181 кластере.
* 2010: Лидеры рынка Infiniband, компании Mellanox и Voltaire объединяются. Кроме них, остался ещё один производитель IB-устройств, QLogic, который, однако производит больше устройств Fibre Channel. Oracle делает крупные инвестиции в Mellanox.
* 2011: На конференции International Supercomputing Conference анонсируются коммутаторы и адаптеры FDR.
* 2012: Intel приобретает технологии QLogic, связанные с InfiniBand.
* 2019: NVIDIA поглощает компанию Mellanox и становится эксклюзивным поставщиком решений на основе InfiniBand