Литмир - Электронная Библиотека
Содержание  
A
A

Запасные менеджеры время от времени опрашивают главного, и если тот перестаёт отвечать на запросы, один из запасных становится главным и перенастраивает подсеть, указывая ей расположение нового менеджера подсети.

IP через InfiniBand (IP over IB, IPoIB)

Работа стека протоколов TCP/IP поверх InfiniBand не является частью спецификации InfiniBand, она определена в соответствующих документах RFC. Работа InfiniBand вполне возможна и без IPoIB. Однако некоторые программы и библиотеки хотя и предназначены для работы поверх InfiniBand, требуют также работающего IP поверх InfiniBand. Чаще всего при помощи IpoIB определяют InfiniBand-идентификаторы (LID, GID) процессов, работающих на других вычислительных узлах, а после определения дальнейшие коммуникации осуществляются без участия стека TCP/IP.

Настройка IP поверх InfiniBand, в общем, не отличается от настройки IP поверх Ethernet. Есть только несколько моментов, на которые следует обратить внимание. Интерфейсы IPoIB в системе называются

ib0, ib1
и т. д. (по одному интерфейсу на порт InfiniBand). Адреса лучше назначать статически, прописывая их в конфигурационных файлах серверов и вычислительных узлов. Работа протокола DHCP поверх IPoIB возможна, но для надёжности мы рекомендуем его не использовать.

Адрес канального уровня (link layer address), который в сетях Ethernet называется MAC-адрес или hardware address, для IPoIB имеет длину в 20 байт. Поэтому некоторые утилиты, в частности, широко применяемая утилита

ifconfig
, в которых жёстко прописана длина MAC-адреса Ethernet в 6 байт, не могут корректно работать и отображать адреса канального уровня для IPoIB. Утилита
ip
, рекомендуемая для замены
ifconfig
, такого недостатка лишена. В адресе канального уровня содержится GID порта, номер пары очередей (Queue Pair Number, QPN, аналог номера порта в TCP для InfiniBand) и флаги, указывающие, какие протоколы транспортного уровня InfiniBand могут использоваться для передачи IP.

Утилиты для просмотра информации по сетям InfiniBand

В этом разделе мы приводим примеры выдачи некоторых утилит из комплекта OFED с объяснениями выдаваемой информации. Эти данные помогут сориентироваться в том, что происходит в сети InfiniBand, и диагностировать некоторые ошибки в её работе.

Команда

ibstat
показывает состояние всех портов на всех адаптерах InfiniBand, установленных на узле, где она запущена

Cуперкомпьютеры: администрирование - i_006.png

Сначала выводится информация по адаптеру: его имя (

mlx5_0
), тип адаптера (название модели), количество портов, версии встроенного программного (firmware) и аппаратного обеспечения, а также идентификаторы Node GUID и System Image GUID.

Для каждого порта в строке

Link layer
выводится тип подключения: InfiiniBand или Ethernet. Некоторые адаптеры InfiniBand позволяют подключаться как к сети InfiniBand, так и к Ethernet. Тип подключения определяется установленным трансивером. Строка
Port GUID
показывает GUID порта.
Base lid
– первый LID, присвоенный данному порту. Всего порту присвоено, как говорилось выше, 2LMC подряд идущих LID.
SM lid
– LID порта, на котором работает менеджер данной подсети. Rate – скорость передачи данных, на которой работает порт (56 в данном случае – это режим 4x FDR).

Physical state
– состояние физического уровня передачи данных. Нормальное состояние –
LinkUp
. Также может быть
Disabled
,
Polling
(в это состояние порт переходит после включения),
Configuration
(согласование режимов работы с другой стороной связи),
Recovery
(восстановление после сбоя связи). Есть и другие состояния, но их появление означает серьёзный сбой в работе оборудования, и мы их здесь описывать не будем.

State
– состояние канального уровня передачи данных.
Active 
– состояние нормального функционирования, возможна передача любых типов данных.
Down
– передача данных невозможна (физический уровень ещё не перешёл в состояние
LinkUp
).
Initialize
– состояние, в которое канальный уровень переходит сразу после того, как физический уровень перешёл в состояние
LinkUp
. В этом состоянии возможны приём и передача только пакетов управления подсетью (SMP, Subnet Management Packets). В этом состоянии менеджер подсети должен настроить порт (задать LID и прочие параметры) и перевести порт в состояние
Active
. Есть и другие состояния, но порт не должен находиться в них долгое время, поэтому мы опустим их описания.

Capability mask
– набор флагов, описывающих поддерживаемые портом режимы работы (скорости и т. п.).

Команда

ibstatus
также выводит информацию обо всех портах, но немного в другом формате, и выдаёт частично отличающийся набор данных:

Cуперкомпьютеры: администрирование - i_007.png

Обратите внимание, что информация о базовом LID и LID менеджера подсети дана в шестнадцатеричном виде. Более подробно дана информация о скорости, на которой работает порт. Ещё добавлена строка

default gid
, в которой указан GID для данного порта.

Иногда нужно узнать, какой машине назначен конкретный LID. Для этого можно применить утилиту

smpquery
. Вообще эта утилита предназначена для посылки пакетов управления подсетью SMP (Subnet Management Packet) и выдачи ответов в понятной человеку форме. В нашем случае нам нужен запрос описания узла (node description). Вот пример выдачи команды
smpquery nodedesc 914
(запрос описания узла с LID
914
):

Cуперкомпьютеры: администрирование - i_008.png

Узел ответил, что LID

914
назначен адаптеру HCA-1 вычислительного узла с именем
n51001
.

При помощи

smpquery
доступна информация о том узле, которому адресован запрос. В то же время менеджер подсети имеет информацию обо всех узлах подсети. Запросить информацию у менеджера подсети можно при помощи утилиты
saquery
. Информацию об узле подсети с LID
914
можно запросить командой
saquery 914
. Вот пример выдачи такой команды:

Cуперкомпьютеры: администрирование - i_009.png

В последней строке указано описание узла, включающее имя хоста. Также приводится дополнительная информация. Ещё раз обращаем внимание, что команда

smpdump
позволяет запрашивать информацию об узле в сети InfiniBand у самого этого узла, а команда
saquery
– у менеджера подсети. Если результаты этих запросов различаются или если команда
saquery
выдаёт ошибку – это свидетельство того, что имеются проблемы с менеджером подсети. Ещё две полезные утилиты при диагностике сетей InfiniBand – утилиты
ibnetdiscover
и
ibdiagnet
. Утилита
ibnetdiscover
пытается обнаружить все компоненты подсети: конечные узлы, коммутаторы, маршрутизаторы и связи между ними, и выводит информацию обо всех найденных компонентах. Утилита
ibdiagnet
также пытается найти все компоненты подсети, но кроме этого она ещё и пытается обнаружить ошибки в конфигурации подсети, такие как совпадающие GUID, скорости портов и т. п.

8
{"b":"695641","o":1}