IB: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
(Новая страница: «[Категория:InfinyBand] =InfiniBand=»)
 
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
−
[Категория:InfinyBand]
+
[[Категория:InfinyBand]]
   
 
=InfiniBand=
 
=InfiniBand=
  +
[[Image:Q3400_one_cable_four_planes.png|800px]]
  +
<BR>
  +
  +
Внутри корпуса S1.11.1 между фиолетовыми ASIC нет ни одной линии — они друг о друге не знают.<BR>
  +
Единственное общее у них — корпус, питание и management-процессор NVOS, который показывает вам их как один «свитч». <BR>
  +
  +
Каждый ASIC имеет свой порт 97. Не «порт 97 корпуса», а четыре порта 97 — по одному на чип. Так же у C1.26 четыре порта 81.
  +
Кабель sw49p1 внутри содержит 4 пары волокон. Пара №1 соединяет порт 97 ASIC U1 (лево) с портом 81 ASIC U1 (право). Пара №2 — U2 с U2. И так далее. Это четыре линка, а не один.
  +
Строка U2 0x…167e20 lid 2157 --> 0x…874220 lid 116 в выводе скрипта — это именно горизонтальная стрелка №2 на схеме: «второй чип слева соединён со вторым чипом справа». Она ничего не говорит о связи U2 с U1 или U3.
  +
  +
Почему iblinkinfo показывает это так: он вообще не знает про корпус. Для него 0x…167e00 и 0x…167e20 — два разных коммутатора с разными LID, которые случайно (для него) имеют похожие имена. Что они стоят в одном шасси — знаем мы, потому что видим суффикс /U1…/U4 в имени и шаг 0x20 в GUID. Скрипт просто группирует четыре независимых линка обратно в «один кабель» по этому суффиксу.
  +
  +
Отсюда и практическое правило: если бы в вашем выводе для sw49p1 три строки смотрели в …8742xx (C1.26), а одна — в …889fxx (C1.25), это означало бы, что одна пара волокон из этого MPO физически уехала в другой кабель. Скрипт пометил бы planes disagree. У вас все четыре строки согласованы — кабель цел, просто воткнут не туда.
  +
  +
=Оборудование и имена=
  +
  +
* Q3400 (Q3400_RA) — коммутатор Nvidia Quantum-3, InfiniBand XDR (800G/порт), OS NVOS. 696 штук: 264 leaf, 288 spine, 144 core.
  +
* SN MTxxxx — серийник, префикс MT = Mellanox.
  +
* C{group}.{seq} — core (C1.26 = группа 1, №26).
  +
* S{seq}.{su}.{rail} — spine (S1.11.1 = №1, SU 11, rail 1).
  +
* L{seq}.{su}.{rail} — leaf.
  +
* SU — Scalable Unit. Spine rail N ходит в core-группу N.
  +
* Кейдж (cage) — гнездо OSFP, 72 на корпус.
  +
* Модуль twin-port: два независимых порта 800G с двумя MPO-разъёмами → swXp1 / swXp2 (в тикетах MS — «49/1», «49/2»).
  +
* Лейн — 200G, одна пара волокон внутри MPO; в порту 4 лейна. MPO — многоволоконный разъём; полярность (тип A/B) — порядок волокон в нём.
  +
* ASIC / плоскость / U1–U4 — четыре независимых чипа в корпусе Q3400, лейн N всегда идёт в чип N. Для IB это четыре разных свитча, каждый со своим GUID и LID. Между собой не связаны — четыре параллельные фабрики, склеенные на хостах.
  +
* aport (aggregated port) — логический порт из 4 плоскостей; OpenSM не переводит его в Active, пока не поднялись все 4; выпадение одной → полоса 3/4.
  +
* CX8 / ConnectX-8 — HCA на трее, раскладывает трафик по 4 плоскостям (per-packet spraying).
  +
* GB300 NVL72 — тип вычислительного трея.
  +
* SHARP Aggregation Node — виртуальный узел in-network reduction внутри каждого ASIC, «порт 149». Шум для кабельных вопросов.
  +
* UFM (SU3-UFM-1/2) — Nvidia Unified Fabric Manager, HA-пара
  +
* Rack-адреса вида RCK-012-08-02 U5 / RCK-R1-CDH-09 U11 — стойка и юнит.
  +
  +
=Команды и данные=
  +
* Subnet Manager (SM) / OpenSM — управляет IB-подсетью, назначает LID, знает всех соседей. Источник правды.
  +
* SMP — Subnet Management Packets, которыми утилиты опрашивают фабрику.
  +
* iblinkinfo — дамп всей топологии подсети (не только своего свитча); -l — по строке на линк, каждый линк дважды (с обеих сторон). Формат: GUID "имя" LID порт ==( ширина скорость Логическое/Физическое )==> GUID LID порт "имя соседа".
  +
Логическое состояние: Active (работает) / Initialize (поднят, но не введён) / Down. Физическое: LinkUp / Polling (нет света) / Disabled.
  +
* 1X 212.5 Gbps — норма для одной плоскости XDR (один лейн).
  +
* perfquery LID порт — счётчики одной плоскости: LinkDownedCounter (падения), PortXmitData (в 4-байтных словах, ×4 = байты).
  +
* nv show interface swXpY link / counters — NVOS: состояние и счётчики суммарно по 4 плоскостям (carrier-down-count, out-bytes). Соседа не показывает.
  +
* Формула порта: IB-порт = (кейдж−1)×2 + сабпорт; обратно: кейдж = ⌈порт/2⌉, нечётный → p1, чётный → p2. Проверено: 97 = sw49p1 через совпадение счётчиков.
  +
* System GUID в UFM = node GUID плоскости U1; U2–U4 идут с шагом +0x20.
  +
  +
=Полезные комманды=
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>
  +
<PRE>
  +
</PRE>

Текущая версия на 13:47, 22 сентября 2026


InfiniBand

Q3400 one cable four planes.png

Внутри корпуса S1.11.1 между фиолетовыми ASIC нет ни одной линии — они друг о друге не знают.
Единственное общее у них — корпус, питание и management-процессор NVOS, который показывает вам их как один «свитч».

Каждый ASIC имеет свой порт 97. Не «порт 97 корпуса», а четыре порта 97 — по одному на чип. Так же у C1.26 четыре порта 81. Кабель sw49p1 внутри содержит 4 пары волокон. Пара №1 соединяет порт 97 ASIC U1 (лево) с портом 81 ASIC U1 (право). Пара №2 — U2 с U2. И так далее. Это четыре линка, а не один. Строка U2 0x…167e20 lid 2157 --> 0x…874220 lid 116 в выводе скрипта — это именно горизонтальная стрелка №2 на схеме: «второй чип слева соединён со вторым чипом справа». Она ничего не говорит о связи U2 с U1 или U3.

Почему iblinkinfo показывает это так: он вообще не знает про корпус. Для него 0x…167e00 и 0x…167e20 — два разных коммутатора с разными LID, которые случайно (для него) имеют похожие имена. Что они стоят в одном шасси — знаем мы, потому что видим суффикс /U1…/U4 в имени и шаг 0x20 в GUID. Скрипт просто группирует четыре независимых линка обратно в «один кабель» по этому суффиксу.

Отсюда и практическое правило: если бы в вашем выводе для sw49p1 три строки смотрели в …8742xx (C1.26), а одна — в …889fxx (C1.25), это означало бы, что одна пара волокон из этого MPO физически уехала в другой кабель. Скрипт пометил бы planes disagree. У вас все четыре строки согласованы — кабель цел, просто воткнут не туда.

Оборудование и имена

  • Q3400 (Q3400_RA) — коммутатор Nvidia Quantum-3, InfiniBand XDR (800G/порт), OS NVOS. 696 штук: 264 leaf, 288 spine, 144 core.
  • SN MTxxxx — серийник, префикс MT = Mellanox.
  • C{group}.{seq} — core (C1.26 = группа 1, №26).
  • S{seq}.{su}.{rail} — spine (S1.11.1 = №1, SU 11, rail 1).
  • L{seq}.{su}.{rail} — leaf.
  • SU — Scalable Unit. Spine rail N ходит в core-группу N.
  • Кейдж (cage) — гнездо OSFP, 72 на корпус.
  • Модуль twin-port: два независимых порта 800G с двумя MPO-разъёмами → swXp1 / swXp2 (в тикетах MS — «49/1», «49/2»).
  • Лейн — 200G, одна пара волокон внутри MPO; в порту 4 лейна. MPO — многоволоконный разъём; полярность (тип A/B) — порядок волокон в нём.
  • ASIC / плоскость / U1–U4 — четыре независимых чипа в корпусе Q3400, лейн N всегда идёт в чип N. Для IB это четыре разных свитча, каждый со своим GUID и LID. Между собой не связаны — четыре параллельные фабрики, склеенные на хостах.
  • aport (aggregated port) — логический порт из 4 плоскостей; OpenSM не переводит его в Active, пока не поднялись все 4; выпадение одной → полоса 3/4.
  • CX8 / ConnectX-8 — HCA на трее, раскладывает трафик по 4 плоскостям (per-packet spraying).
  • GB300 NVL72 — тип вычислительного трея.
  • SHARP Aggregation Node — виртуальный узел in-network reduction внутри каждого ASIC, «порт 149». Шум для кабельных вопросов.
  • UFM (SU3-UFM-1/2) — Nvidia Unified Fabric Manager, HA-пара
  • Rack-адреса вида RCK-012-08-02 U5 / RCK-R1-CDH-09 U11 — стойка и юнит.

Команды и данные

  • Subnet Manager (SM) / OpenSM — управляет IB-подсетью, назначает LID, знает всех соседей. Источник правды.
  • SMP — Subnet Management Packets, которыми утилиты опрашивают фабрику.
  • iblinkinfo — дамп всей топологии подсети (не только своего свитча); -l — по строке на линк, каждый линк дважды (с обеих сторон). Формат: GUID "имя" LID порт ==( ширина скорость Логическое/Физическое )==> GUID LID порт "имя соседа".

Логическое состояние: Active (работает) / Initialize (поднят, но не введён) / Down. Физическое: LinkUp / Polling (нет света) / Disabled.

  • 1X 212.5 Gbps — норма для одной плоскости XDR (один лейн).
  • perfquery LID порт — счётчики одной плоскости: LinkDownedCounter (падения), PortXmitData (в 4-байтных словах, ×4 = байты).
  • nv show interface swXpY link / counters — NVOS: состояние и счётчики суммарно по 4 плоскостям (carrier-down-count, out-bytes). Соседа не показывает.
  • Формула порта: IB-порт = (кейдж−1)×2 + сабпорт; обратно: кейдж = ⌈порт/2⌉, нечётный → p1, чётный → p2. Проверено: 97 = sw49p1 через совпадение счётчиков.
  • System GUID в UFM = node GUID плоскости U1; U2–U4 идут с шагом +0x20.

Полезные комманды