infiniband-diags(8) Open IB Diagnostics infiniband-diags(8)

infiniband-diags - ابزارهای عیب‌یابی برای فابریک‌های اینفینی‌بند (InfiniBand)

مجموعه infiniband-diags شامل ابزارهایی است که برای کمک به پیکربندی، اشکال‌زدایی و نگهداری فابریک‌های InfiniBand طراحی شده‌اند. ابزارها و برنامه‌های کاربردی متعددی ارائه شده‌اند که برخی از آن‌ها عملکردهای مشابهی دارند.

ابزارهای پایه برای انجام عملیات خود از MADهای مسیردهی مستقیم (directed route MADs) استفاده می‌کنند. بنابراین، این ابزارها ممکن است حتی در زیرشبکه‌های پیکربندی‌نشده نیز کار کنند. سایر ابزارهای سطح بالاتر به MADهای مسیریابی‌شده با LID و تا حدی دسترسی به SA/SM نیاز دارند.

بسیاری از ابزارهای موجود در این بسته به استفاده از SMPها از طریق QP0 برای دریافت مستقیم داده‌ها از SMA متکی هستند. اگرچه این حالت عملیاتی از نظر فنی با مشخصات InfiniBand مطابقت ندارد، اما تجربه عملی نشان داده است که این سطح از عیب‌یابی هنگام کار با فابریکی که دچار نقص است یا فقط به صورت جزئی پیکربندی شده، بسیار ارزشمند است. به همین دلیل، بسیاری از این ابزارها ممکن است به استفاده از MKey نیاز داشته باشند یا اجرای آن‌ها از ماشین‌های مجازی به دلایل امنیتی محدود شده باشد.

بیشتر ابزارهای عیب‌یابی OpenIB برخی از گزینه‌های متداول زیر را می‌پذیرند. فهرست دقیق گزینه‌های پشتیبانی‌شده برای هر ابزار را می‌توان در مستندات مربوط به همان دستورات یافت.

گزینه‌های -D و -G دارای دو شکل هستند:

-D, --Direct آدرس مشخص‌شده یک مسیر هدایت‌شده (directed route) است

مثال‌ها:
   [options] -D [options] "0"          # self port
   [options] -D [options] "0,1,2,1,4"  # out via port 1, then 2, ...
   (توجه: عدد دوم در مسیر مشخص‌شده باید با درگاه در حال استفاده مطابقت داشته
   باشد. این مقدار را می‌توان با استفاده از گزینه انتخاب درگاه '-P' یا درگاه
   یافت‌شده از طریق فرایند انتخاب خودکار تعیین کرد.)

-D, --Direct <dr_path> آدرس مشخص‌شده یک مسیر هدایت‌شده (directed route) است

مثال‌ها:
   -D "0"          # self port
   -D "0,1,2,1,4"  # out via port 1, then 2, ...
   (توجه: عدد دوم در مسیر مشخص‌شده باید با درگاه در حال استفاده مطابقت داشته
   باشد. این مقدار را می‌توان با استفاده از گزینه انتخاب درگاه '-P' یا درگاه
   یافت‌شده از طریق فرایند انتخاب خودکار تعیین کرد.)

-G, --Guid آدرس مشخص‌شده یک Port GUID است

--port-guid, -G <port_guid> تعیین یک port_guid

-L, --Lid آدرس مشخص‌شده یک LID است

-s, --sm_port <smlid> استفاده از 'smlid' به عنوان lid هدف برای پرس‌وجوهای SA.

-C, --Ca <ca_name> استفاده از ca_name مشخص‌شده.

-P, --Port <ca_port> استفاده از ca_port مشخص‌شده.

نمایه جدول P_Key (بین 0-65535، پیش‌فرض 0) که برای MADهای خروجی SA/GMP استفاده می‌شود. بسته‌های MAD از نوع SMP (شامل SMI هدایت‌شده مستقیم/مسیریابی‌شده با LID) همیشه از نمایه 0 در P_Key استفاده می‌کنند.

پشتیبانی از چند درگاه/چند CA: هنگامی که هیچ دستگاه IB یا درگاهی مشخص نشده باشد (بخش "پارامترهای محلی umad" در زیر را ببینید)، کتابخانه libibumad درگاه مورد استفاده را بر اساس معیارهای زیر انتخاب می‌کند:

1.
نخستین درگاهی که فعال (ACTIVE) باشد.
2.
در صورت پیدا نشدن، نخستین درگاهی که بالا (UP، پیوند فیزیکی متصل) باشد.

اگر نام درگاه یا CA مشخص شده باشد، کتابخانه libibumad تلاش می‌کند درخواست کاربر را برآورده کند و در صورت عدم امکان، با شکست مواجه خواهد شد.

به عنوان مثال:

ibaddr                 # استفاده از نخستین درگاه (معیار شماره ۱ بالا)
ibaddr -C mthca1       # انتخاب بهترین درگاه فقط از "mthca1"
ibaddr -P 2            # استفاده از دومین درگاه (active/up) از نخستین دستگاه IB موجود
ibaddr -C mthca0 -P 2  # استفاده انحصاری از درگاه مشخص‌شده

افزایش سطح اشکال‌زدایی IB. می‌تواند چندین بار استفاده شود (-ddd یا -d -d -d).
نمایش خطاهای ارسال و دریافت (اتمام مهلت زمانی و موارد دیگر).

-h, --help نمایش پیام راهنمای نحوه استفاده

افزایش سطح پرگویی (verbosity) برنامه. می‌تواند چندین بار استفاده شود (-vv یا -v -v -v).

-V, --version نمایش اطلاعات نسخه.

-t, --timeout <timeout_ms> بازنویسی مهلت زمانی پیش‌فرض برای madهای درخواست‌شده.

تعیین تعداد SMPهای در انتظار که باید در طول پویش صادر شوند

پیش‌فرض: 2

--node-name-map <node-name-map> تعیین یک نگاشت نام گره.

این فایل GUIDها را به نام‌های کاربرپسندتر نگاشت می‌کند. بخش FILES را ببینید.

--config, -z <config_file> تعیین فایل پیکربندی جایگزین.

پیش‌فرض: /etc/infiniband-diags/ibdiag.conf

فایل‌های پیکربندی زیر میان بسیاری از این ابزارها مشترک هستند.

/etc/infiniband-diags/ibdiag.conf

یک فایل پیکربندی سراسری برای تنظیم برخی از گزینه‌های مشترک برای تمام ابزارها ارائه شده است. برای جزئیات به فایل پیکربندی ارائه‌شده مراجعه کنید.

نگاشت نام گره برای مشخص کردن نام‌های کاربرپسند برای گره‌ها در خروجی استفاده می‌شود. از GUIDها برای انجام جستجو استفاده می‌شود.

این قابلیت توسط بسته opensm-libs ارائه شده است. برای اطلاع از محل این فایل در سیستم نصب‌شده خود به opensm(8) مراجعه کنید.

به طور عمومی:

# comment
<guid> "<name>"

مثال:

# IB1
# Line cards
0x0008f104003f125c "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f125d "IB1 (Rack 11 slot 1   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d2 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10d3 "IB1 (Rack 11 slot 2   ) ISR9288/ISR9096 Voltaire sLB-24D"
0x0008f104003f10bf "IB1 (Rack 11 slot 12  ) ISR9288/ISR9096 Voltaire sLB-24D"
# Spines
0x0008f10400400e2d "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2e "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e2f "IB1 (Rack 11 spine 1   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e31 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
0x0008f10400400e32 "IB1 (Rack 11 spine 2   ) ISR9288 Voltaire sFB-12D"
# GUID   Node Name
0x0008f10400411a08 "SW1  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a28 "SW2  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f10400411a34 "SW3  (Rack  3) ISR9024 Voltaire 9024D"
0x0008f104004119d0 "SW4  (Rack  3) ISR9024 Voltaire 9024D"

قالب فایل توپولوژی برای انسان خوانا و تا حد زیادی شهودی است. بیشتر شناسه‌ها نام‌های متنی دارند، مانند شناسه سازنده (vendid)، شناسه دستگاه (device ID)، انواع مختلف GUID (مانند sysimgguid، caguid، switchguid و غیره). شناسه‌های PortGUID در پرانتز () نشان داده می‌شوند. برای سوئیچ‌ها، این مورد در خط switchguid نمایش می‌یابد. برای درگاه‌های CA و مسیریاب، این مقدار در خطوط اتصال نشان داده می‌شود. گره IB مشخص شده و به دنبال آن تعداد درگاه‌ها و GUID گره در گیومه قرار می‌گیرد. در سمت راست این خط یک توضیح (#) و به دنبال آن NodeDescription داخل گیومه می‌آید. اگر گره یک سوئیچ باشد، این خط همچنین شامل پایه (base) یا ارتقایافته (enhanced) بودن درگاه 0 سوئیچ، و LID و LMC درگاه 0 است. خطوط بعدی مربوط به این گره، وضعیت اتصال را نشان می‌دهند. در سمت چپ، شماره درگاه گره جاری قرار دارد. در سمت راست، گره همتا (گره انتهای دیگر پیوند) قرار دارد. این گره در گیومه با nodetype و به دنبال آن علامت - و سپس NodeGUID همراه با شماره درگاه در براکت مشخص می‌شود. در ادامه سمت راست، یک توضیح (#) قرار دارد. آنچه پس از این توضیح می‌آید به نوع گره بستگی دارد. اگر گره سوئیچ باشد، به دنبال آن NodeDescription داخل گیومه و LID گره همتا می‌آید. اگر گره از نوع CA یا مسیریاب باشد، ابتدا LID و LMC محلی و سپس NodeDescription داخل گیومه و LID گره همتا می‌آید. پهنا و سرعت پیوند فعال نیز در انتهای این خط خروجی ضمیمه می‌شود.

نمونه‌ای از این قالب به شرح زیر است:

#
# Topology file: generated on Tue Jun  5 14:15:10 2007
#
# Max of 3 hops discovered
# Initiated from node 0008f10403960558 port 0008f10403960559
Non-Chassis Nodes
vendid=0x8f1
devid=0x5a06
sysimgguid=0x5442ba00003000
switchguid=0x5442ba00003080(5442ba00003080)
Switch  24 "S-005442ba00003080"         # "ISR9024 Voltaire" base port 0 lid 6 lmc 0
[22]    "H-0008f10403961354"[1](8f10403961355)         # "MT23108 InfiniHost Mellanox Technologies" lid 4 4xSDR
[10]    "S-0008f10400410015"[1]         # "SW-6IB4 Voltaire" lid 3 4xSDR
[8]     "H-0008f10403960558"[2](8f1040396055a)         # "MT23108 InfiniHost Mellanox Technologies" lid 14 4xSDR
[6]     "S-0008f10400410015"[3]         # "SW-6IB4 Voltaire" lid 3 4xSDR
[12]    "H-0008f10403960558"[1](8f10403960559)         # "MT23108 InfiniHost Mellanox Technologies" lid 10 4xSDR
vendid=0x8f1
devid=0x5a05
switchguid=0x8f10400410015(8f10400410015)
Switch  8 "S-0008f10400410015"          # "SW-6IB4 Voltaire" base port 0 lid 3 lmc 0
[6]     "H-0008f10403960984"[1](8f10403960985)         # "MT23108 InfiniHost Mellanox Technologies" lid 16 4xSDR
[4]     "H-005442b100004900"[1](5442b100004901)        # "MT23108 InfiniHost Mellanox Technologies" lid 12 4xSDR
[1]     "S-005442ba00003080"[10]                # "ISR9024 Voltaire" lid 6 1xSDR
[3]     "S-005442ba00003080"[6]         # "ISR9024 Voltaire" lid 6 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403960984
Ca      2 "H-0008f10403960984"          # "MT23108 InfiniHost Mellanox Technologies"
[1](8f10403960985)     "S-0008f10400410015"[6]         # lid 16 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x5442b100004900
Ca      2 "H-005442b100004900"          # "MT23108 InfiniHost Mellanox Technologies"
[1](5442b100004901)     "S-0008f10400410015"[4]         # lid 12 lmc 1 "SW-6IB4 Voltaire" lid 3 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403961354
Ca      2 "H-0008f10403961354"          # "MT23108 InfiniHost Mellanox Technologies"
[1](8f10403961355)     "S-005442ba00003080"[22]                # lid 4 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
vendid=0x2c9
devid=0x5a44
caguid=0x8f10403960558
Ca      2 "H-0008f10403960558"          # "MT23108 InfiniHost Mellanox Technologies"
[2](8f1040396055a)     "S-005442ba00003080"[8]         # lid 14 lmc 1 "ISR9024 Voltaire" lid 6 4xSDR
[1](8f10403960559)     "S-005442ba00003080"[12]                # lid 10 lmc 1 "ISR9024 Voltaire" lid 6 1xSDR

هنگامی که گروه‌بندی استفاده می‌شود، گره‌های IB در شاسی‌هایی سازماندهی می‌شوند که شماره‌گذاری شده‌اند. گره‌هایی که نتوان قرار داشتن آن‌ها در یک شاسی را تشخیص داد به عنوان "Non-Chassis Nodes" نمایش داده می‌شوند. درگاه‌های خارجی نیز در خطوط اتصال نشان داده می‌شوند.

ببینید: ibnetdiscover, iblinkinfo

ببینید: ibnodes, ibswitches, ibhosts, ibrouters

ببینید: ibportstate, ibaddr

ببینید: ibtracert, ibroute, dump_lfts, dump_mfts, check_lft_balance, ibfindnodesusing

ببینید: ibqueryerrors, perfquery

ببینید: ibstat, ibstatus

ببینید: ibping, ibsysstat

ببینید: smpquery, smpdump, saquery, sminfo

ببینید: ibidsverify

اسکریپت‌های زیر در مقایسه با ابزارهای بالا به عنوان موارد زائد و/یا با کارایی پایین‌تر شناسایی شده‌اند. این موارد به عنوان اسکریپت‌های موروثی و قدیمی در صورتی ارائه می‌شوند که گزینه --enable-compat-utils در زمان ساخت مشخص شده باشد.

ibcheckerrors, ibclearcounters, ibclearerrors, ibdatacounters ibchecknet, ibchecknode, ibcheckport, ibcheckportstate, ibcheckportwidth, ibcheckstate, ibcheckwidth, ibswportwatch, ibprintca, ibprintrt, ibprintswitch, set_nodedesc.sh

< <ira.weiny@intel.com> >
2017-08-21