Стандарт InfiniBand
Рис.
8.9. Шина ввода-вывода InfiniBand
адаптеры канала целевого устройства;
коммутаторы InfiniBand;
физический носитель.
На рис. 8.9 демонстрируется структура шины ввода-вывода InfiniBand и взаимоотношение различных компонентов, которые более подробно рассматриваются далее.
Адаптер канала узла (host channel adapter – НСА) представляет собой устройство, которое работает в качестве точки соединения центрального процессора узла и связной архитектуры InfiniBand. Адаптеры каналов узла тесно связаны с серверами и размещаются рядом с ними. Адаптер НСА уменьшает количество прерываний, сдерживает «вмешательство» операционной системы и может обмениваться данными непосредственно с памятью. Каждый адаптер имеет уникальный идентификатор, созданный на основе адреса протокола IPv6.
Адаптер канала целевого устройства (target channel adapter – ТС А) является аналогом адаптера НСА, предназначенного для периферийных устройств, а не ЦПУ узлов. Адаптеры ТС А обычно взаимодействуют с периферийными устройствами и также размещены недалеко от них.
Коммутатор InfiniBand предоставляет возможность подключения нескольких адаптеров ТСА к одному адаптеру НСА. Кроме того, коммутаторы поддерживают маршрутизацию нескольких логических элементов связной архитектуры (они называются подсетями). В то время как коммутаторы InfiniBand поддерживают подключения внутри подсети, маршрутизаторы InfiniBand реализуют подключение между подсетями. Маршрутизаторы обычно настраиваются так, чтобы дополнять возможности коммутаторов новыми функциями.
Технология InfiniBand поддерживает использование обычных медных или оптических кабелей, при этом линии связи могут достигать 17 метров для медных носителей и 100 метров для оптических кабелей. Подключение InfiniBand может включать в себя разное количество линий связи, каждая из которых имеет быстродействие 2,5 Гбит/с. Поддерживаются комбинации от IX (1 кабель) до 4Х (4 кабеля) для быстродействия 10 Гбит/с или 12Х (12 кабелей) для быстродействия 30 Гбит/с.
Архитектура InfiniBand включает в себя не только физические, но и логические компоненты, описанные далее.
8.2.2.1 Линии связи InfiniBand и сетевые уровни
На уровне канала передачи данных (уровень 2 модели OSI) каждая линия InfiniBand делится максимум на 16 потоков и минимум на 2 потока. Один из потоков всегда выделяется на управление связной архитектурой. Потоки получают приоритеты QoS, а поток управления поЛучает наивысший приоритет (виртуальный поток 15; потоки 0–14 используются для передачи данных) и соответствующий уровень QoS.
Следует отметить, что, в отличие от потока, канал передачи данных представляет собой физический компонент. Поток позволяет двум узловым системам связываться друг с другом. Установившие сеанс связи системы могут поддерживать различное количество виртуальных потоков, для чего в спецификации InfiniBand описан соответствующий алгоритм. Установившие связь конечные точки называются парой очереди (queue pair). Пары очереди имеют связанные с ними буферы приема и отправки. Каждый виртуальный поток (virtual lane – VL) предоставляет собственное управление потоком на кредитной основе. Пакеты управления обеспечивают перечисление устройств, управления подсетями и устойчивость к ошибкам.
Технология InfiniBand поддерживает одновременную передачу данных без коллизий. Для обеспечения надежной передачи данных технология InfiniBand использует сквозное управление потоком и не одну, а две проверки целостности по алгоритму CRC. Управление потоком выполняется с помощью выделения буферов на принимающем узле и передачи количества буферов отправляющему узлу. Этим значением указывается количество буферов данных, которые можно отправить без подтверждения приема. Два значения CRC подсчитываются и передаются вместе с данными. Получающая сторона также подсчитывает эти значения. Значение CRC размером 32 бит создается для связи «точка-точка». В то же время данные могут передаваться через промежуточные узлы. Между промежуточными узлами или между промежуточным и конечным узлами используются значения размером 16 бит.
В архитектуре InfiniBand базовой единицей передачи является сообщение (message). Сообщение может быть отправлено или принято с помощью операции RDMA, операции отправки или приема или с помощью операции групповой отправки. Операция удаленного прямого доступа к памяти (Remote Direct Memory Access – RDMA) обеспечивает непосредственный обмен сообщениями между памятью узлов, минуя прерывания операционной системы и не требуя использования служб. Технологией InfiniBand определено шесть режимов передачи данных.