Infiniband (иногда сокр. IB) — высокоскоростная коммутируемая компьютерная сеть, используемая в высокопроизводительных вычислениях, имеющая очень большую пропускную способность и низкую задержку. Также используется для внутренних соединений в некоторых вычислительных комплексах. По состоянию на 2014 год Infiniband являлся наиболее популярной сетью для суперкомпьютеров. Контроллеры Infiniband (host bus adapter) и сетевые коммутаторы производятся компаниями Mellanox и Intel. При создании Infiniband в него закладывалась масштабируемость, сеть использует сетевую топологию на основе коммутаторов (Switched fabric).
В качестве коммуникационной сети кластеров Infiniband конкурирует с группой стандартов Ethernet и проприетарными технологиями[1], например компаний Cray и IBM. При построении компьютерных сетей IB конкурирует с Gigabit Ethernet, 10 Gigabit Ethernet, и 40/100 Gigabit Ethernet. Также IB используется для подключения накопителей информации DAS.[2] Развитием и стандартизацией технологий Infiniband занимается InfiniBand Trade Association(англ.)русск.[3].
Ранние версии Infiniband использовали электрические кабели 4x с разъёмами CX4 (SFF 8470). Показан фрагмент коммутатора Voltaire ISR-6000 с портами 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 Гбит/с[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
Эффективная пропускная способность, Гбит/с, на 1x шину[7]
Два двухпортовых HCA-адаптера, подключаемые к компьютеру по PCI Express.
InfiniBand использует коммутируемую среду с соединениями точка-точка, в отличие от ранних вариантов сетей Ethernet, которые использовали общую среду и, изначально, шинное соединение. Все передачи начинаются и заканчиваются на адаптере канала. Каждый вычислительный узел содержит HCA-адаптер (host channel adapter), подключаемый к процессору по интерфейсу PCI Express (ранее через PCI-X). Между адаптерами пересылаются данные и управляющая информация, в том числе необходимая для реализации QoS (quality of service).
Для периферийных устройств предполагалось использование TCA-адаптеров (target channel adapter), но они не получили распространения, а такие периферийные устройства создаются на базе стандартных материнских плат[10].
HCA-адаптеры обычно имеют один или два порта 4x, которые могут подключаться либо к таким же портам HCA и TCA, либо к коммутаторам (свитчам). Коммутаторы могут быть организованы в сети с топологиями толстое дерево (Fat Tree), Сеть Клоза, реже - многомерный тор, двойная звезда, и в различных гибридных комбинациях[5][11].
Порты и кабели Infiniband 4x имеют форм-факторы:
CX4 (SFF-8470, например, Fujitsu MicroGiGaCN), только до скоростей DDR (иногда до QDR)
Кабели 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 Datagram (UD) - ненадежная доставка, не требует инициализации
Позже был введен сервис XRC[13], комбинирующий в себе некоторые свойства RC и RD
Infiniband позволяет использовать принцип RDMA (англ.Remote Direct Memory Access — удалённый прямой доступ к памяти), при котором передача данных из памяти удаленного компьютера в локальную память инициатора запроса производится непосредственно сетевым контроллером, при этом исключается участие CPU удаленного узла. RDMA позволяет передавать данные без дополнительной буферизации и не требует активной работы ОС, библиотек или приложения на узле, к памяти которого производится обращение.
Infiniband может использоваться с двумя низкоуровневыми универсальными программно-аппаратными интерфейсами (API), которые были разработаны на базе U-Net (Cornell, середина 1990-х) и VIA (Virtual Interface Architecture[en], конец 1990-х)[14]:
Infiniband verbs (IB verbs, OFED verbs) — стандартизация программного интерфейса от группы Open Fabrics Alliance
uDAPL (от DAT Collaborative.
С помощью verbs или uDAPL могут быть реализованы высокоуровневые программные интерфейсы и протоколы, в частности:
MPI (Message Passing Interface) — популярный стандарт пересылки сообщений в компьютерных кластерах. Существует множество реализаций MPI, поддерживающих сети Infiniband.
SHMEM, GASnet и другие популярные интерфейсы для работы с RDMA
IPoIB (IP over Infiniband) — группа протоколов, описывающих передачу IP-пакетов поверх Infiniband[15]:
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[15]. Определён в стандарте ANSI INCITS 365—2002.
DDP (RFC 4296 —— архитектура для реализации прямого размещения данных (DDP) и удаленного прямого доступа к памяти (RDMA) в Internet-сетях.
SDP (англ.Socket Direct Protocol) — протокол установления виртуальных соединений и обмена данными между сокетами поверх Infiniband[15], передача данных не использует 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.[16]
Версия 1.0 спецификации InfiniBand - InfiniBand Architecture Specification была выпущена в 2000 году. Изначально в ней предполагалось, IB одновременно сможет стать заменой медленной шины PCI для ввода-вывода, сетей Ethernet, специализированных кластерных сетей и Fibre Channel.[17][18]
2001: Mellanox начала поставки устройств серии InfiniBridge, работающих на скоростях 10 Гбит/с (4x SDR) и поставила более 10 тысяч InfiniBand портов.[19]
2002: Intel объявил, что вместо поставок чипов IB займется развитием шины PCI Express. Microsoft прекратила поддержку проекта, переключившись на расширение Ethernet. Sun и Hitachi продолжили поддерживать IB.[20]
2004: IB начинает применяться в качестве кластерной сети, предлагая более низкие задержки, чем Ethernet-сети.[17] Альянс OpenFabrics Alliance разрабатывает стандартизированный программный стек InfiniBand для ОС Linux. На следующий год ядро Linux получает поддержку IB.[21]
2005: IB начинает использоваться как сеть для подключения устройств хранения информации.[22]
2005: Компания Topspin была приобретена компанией Cisco.
2009: Среди Top500 суперкомьютеров мира Gigabit Ethernet использовался в 259, а InfiniBand в 181 кластере.[23]
2010: Лидеры рынка Infiniband, компании Mellanox и Voltaire объединяются[24][25]. Кроме них остался ещё один производитель IB устройств, QLogic, который, однако производит больше устройств Fibre Channel. Oracle делает крупные инвестиции в Mellanox.
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.
Introduction to InfiniBand for End Users "The concept of a TCA is not widely deployed today; instead most I/O devices are implemented using standard server motherboards"
↑ Appendix A InfiniBand Concepts // Cisco SFS Product Family Element Manager User Guide.
An Introduction to the InfiniBand Architecture. Проверено 28 июля 2014.
↑ Brief History of InfiniBand: Hype to Pragmatism. Oracle. Проверено 28 июля 2014.
Understanding PCI Bus, PCI-Express and InfiniBand Architecture // Mellanox Whitepaper, 2006: "So many members of the IBTA and the IBTA itself promoted InfiniBand as a replacement for PCI."
Timeline. Mellanox Technologies. Проверено 28 июля 2014.
Sun confirms commitment to InfiniBand. Проверено 28 июля 2014.
Linux Kernel 2.6.11 Supports InfiniBand. Проверено 29 июля 2014.
«Is InfiniBand poised for a comeback?»", Infostor Т. 10 (2), <http://www.infostor.com/index/articles/display/248655/articles/infostor/volume-10/issue-2/news-analysis-trends/news-analysis-trends/is-infiniband-poised-for-a-comeback.html>
Two rival supercomputers duke it out for top spot. COMPUTERWORLD. Проверено 29 июля 2014.
Mellanox Technologies.
Largest InfiniBand vendors merge; eye converged networks. Проверено 29 июля 2014.
Mellanox Demos Souped-Up Version of Infiniband, CIO (20 June 2011). Проверено 1 августа 2011.
Intel buys QLogic’s InfiniBand assets for $125 million. // ZDNet.
Intel Snaps Up InfiniBand Technology, Product Line from QLogic, HPCwire (January 23, 2012). Проверено 27 января 2012.
Mellanox shrugs off Intel's InfiniBand buy // The Reg 26 Jan 2012
Литература
Tom Shanley, Infiniband Network Architecture, Addison-Wesley, 2000, ISBN 0-201-726823zz
GREGORY F. PFISTER, Chapter 42: An Introduction to the InfiniBand Architecture // High Performance Mass Storage and Parallel I/O: Technologies and Applications - Wiley, 2002, ISBN: 978-0-471-20809-9, pages 617–632.