При разборе onekeylog-дампов Inspur/Kaytus (HGX B200, KR9288-X3) парсер internal/parser/vendors/inspur/ в качестве идентичности «GPU-платы» выдаёт только механический FRU-серийник вендора из component/fru.txt (Board Product : CA, партномер класса YZCA-*).
Этот серийник — механический карриер/трей Inspur, привязанный к шасси. При замене собственно NVIDIA HGX-платы (SXM+NVSwitch, «delta board») он не меняется. В итоге при анализе замены платы парсер даёт ложный вывод «плату не меняли» — серийник тот же, хотя физически стоит другая HGX-плата.
Где лежит правильная идентичность
Настоящая аппаратная идентичность HGX-узла — в log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.log (Redfish HWInfo). Там тройками Model / PartNumber / SerialNumber перечислены:
(партномера выше — модельные NVIDIA-SKU, не инстанс-данные)
Доказательство, что источник именно этот
Три дампа одного и того же сервера (обозначу A, B, C по времени):
Источник идентичности
дамп A
дамп B
дамп C
Механич. карриер Inspur CA (component/fru.txt)
<carrier-SN>
<carrier-SN>
<carrier-SN> (тот же)
HGX tray 699-26612 (HGX_HWInfo)
<tray-SN-1>
<tray-SN-1>
<tray-SN-2> ← другой
HGX baseboard 935-26287 (HGX_HWInfo)
<bb-SN-1>
<bb-SN-1>
<bb-SN-2> ← другой
Оба NVIDIA-серийника (tray и baseboard) идентичны между A и B (интервал ~4 недели → это стабильные аппаратные ID) и разом сменились в C. Механический CA-серийник при этом одинаков во всех трёх. То есть факт замены HGX-платы виден только через HGX_HWInfo_FWVersion.log, а по component/fru.txt — не виден вообще.
Извлекать тройки Model/PartNumber/SerialNumber для HGX tray, HGX baseboard и каждого GPU_SXM.
Отдавать это отдельной сущностью инвентаря (HGX baseboard identity), не сваливая в общий FRU.
P0 — не выдавать механический карриер за идентичность GPU-платы
Серийник component/fru.txtBoard Product : CA помечать как «mechanical carrier (vendor FRU)», а 935-26287 из HWInfo — как «NVIDIA HGX baseboard». Это разные вещи; сейчас доступна только первая, и она вводит в заблуждение.
P1 — состояние GPU vs baseboard
В HGX_HWInfo при погасших GPU их поля = NA (Model/PartNumber/SerialNumber = NA), но серийник baseboard при этом читается. Surface это: «baseboard отвечает, GPU не читаются» — важный диагностический признак (плата на связи, GPU-модули нет).
P2 — сравнение дампов
Дать возможность увидеть смену baseboard/tray/GPU-серийника между двумя дампами (детект замены платы). Сейчас единственный доступный серийник на замену не реагирует, что даёт ложноотрицательный результат.
Не ломать
Существующий разбор component/fru.txt — карриер/mainboard оставить, но переклассифицировать по смыслу.
Связано
#20 (детальный разбор onekeylog-дампов: fallback FRU/sensors, diagnose-json PCIe, component-логи) — это про тот же класс недобора данных из дампа.
## Проблема
При разборе onekeylog-дампов Inspur/Kaytus (HGX B200, KR9288-X3) парсер `internal/parser/vendors/inspur/` в качестве идентичности «GPU-платы» выдаёт **только механический FRU-серийник вендора** из `component/fru.txt` (`Board Product : CA`, партномер класса `YZCA-*`).
Этот серийник — **механический карриер/трей Inspur**, привязанный к шасси. При замене собственно NVIDIA HGX-платы (SXM+NVSwitch, «delta board») он **не меняется**. В итоге при анализе замены платы парсер даёт ложный вывод «плату не меняли» — серийник тот же, хотя физически стоит другая HGX-плата.
## Где лежит правильная идентичность
Настоящая аппаратная идентичность HGX-узла — в **`log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.log`** (Redfish HWInfo). Там тройками `Model` / `PartNumber` / `SerialNumber` перечислены:
- **HGX tray** — `Model: P6612-A04`, `PartNumber: 699-26612-0000-P00`
- **HGX baseboard** — `Model: NVIDIA HGX B200 8 GPU`, `PartNumber: 935-26287-00A0-000` ← это и есть «delta board»
- **8× GPU** — `Model: B200 180GB HBM3e`, `PartNumber: 692-2G525-0220-501`
- ссылки `@odata.id: /redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_1..8`
(партномера выше — модельные NVIDIA-SKU, не инстанс-данные)
## Доказательство, что источник именно этот
Три дампа одного и того же сервера (обозначу A, B, C по времени):
| Источник идентичности | дамп A | дамп B | дамп C |
| --- | --- | --- | --- |
| Механич. карриер Inspur `CA` (`component/fru.txt`) | `<carrier-SN>` | `<carrier-SN>` | `<carrier-SN>` (тот же) |
| HGX tray `699-26612` (`HGX_HWInfo`) | `<tray-SN-1>` | `<tray-SN-1>` | `<tray-SN-2>` ← другой |
| HGX baseboard `935-26287` (`HGX_HWInfo`) | `<bb-SN-1>` | `<bb-SN-1>` | `<bb-SN-2>` ← другой |
Оба NVIDIA-серийника (tray и baseboard) **идентичны** между A и B (интервал ~4 недели → это стабильные аппаратные ID) и **разом сменились** в C. Механический `CA`-серийник при этом одинаков во всех трёх. То есть факт замены HGX-платы виден **только** через `HGX_HWInfo_FWVersion.log`, а по `component/fru.txt` — не виден вообще.
## Что сделать
### P0 — парсить `log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.log`
- Извлекать тройки `Model`/`PartNumber`/`SerialNumber` для HGX tray, HGX baseboard и каждого GPU_SXM.
- Отдавать это отдельной сущностью инвентаря (HGX baseboard identity), не сваливая в общий FRU.
### P0 — не выдавать механический карриер за идентичность GPU-платы
- Серийник `component/fru.txt` `Board Product : CA` помечать как **«mechanical carrier (vendor FRU)»**, а `935-26287` из HWInfo — как **«NVIDIA HGX baseboard»**. Это разные вещи; сейчас доступна только первая, и она вводит в заблуждение.
### P1 — состояние GPU vs baseboard
- В `HGX_HWInfo` при погасших GPU их поля = `NA` (`Model/PartNumber/SerialNumber = NA`), но серийник baseboard при этом читается. Surface это: «baseboard отвечает, GPU не читаются» — важный диагностический признак (плата на связи, GPU-модули нет).
### P2 — сравнение дампов
- Дать возможность увидеть смену baseboard/tray/GPU-серийника между двумя дампами (детект замены платы). Сейчас единственный доступный серийник на замену не реагирует, что даёт ложноотрицательный результат.
## Не ломать
- Существующий разбор `component/fru.txt` — карриер/mainboard оставить, но переклассифицировать по смыслу.
## Связано
- #20 (детальный разбор onekeylog-дампов: fallback FRU/sensors, diagnose-json PCIe, component-логи) — это про тот же класс недобора данных из дампа.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Проблема
При разборе onekeylog-дампов Inspur/Kaytus (HGX B200, KR9288-X3) парсер
internal/parser/vendors/inspur/в качестве идентичности «GPU-платы» выдаёт только механический FRU-серийник вендора изcomponent/fru.txt(Board Product : CA, партномер классаYZCA-*).Этот серийник — механический карриер/трей Inspur, привязанный к шасси. При замене собственно NVIDIA HGX-платы (SXM+NVSwitch, «delta board») он не меняется. В итоге при анализе замены платы парсер даёт ложный вывод «плату не меняли» — серийник тот же, хотя физически стоит другая HGX-плата.
Где лежит правильная идентичность
Настоящая аппаратная идентичность HGX-узла — в
log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.log(Redfish HWInfo). Там тройкамиModel/PartNumber/SerialNumberперечислены:Model: P6612-A04,PartNumber: 699-26612-0000-P00Model: NVIDIA HGX B200 8 GPU,PartNumber: 935-26287-00A0-000← это и есть «delta board»Model: B200 180GB HBM3e,PartNumber: 692-2G525-0220-501@odata.id: /redfish/v1/Systems/HGX_Baseboard_0/Processors/GPU_SXM_1..8(партномера выше — модельные NVIDIA-SKU, не инстанс-данные)
Доказательство, что источник именно этот
Три дампа одного и того же сервера (обозначу A, B, C по времени):
CA(component/fru.txt)<carrier-SN><carrier-SN><carrier-SN>(тот же)699-26612(HGX_HWInfo)<tray-SN-1><tray-SN-1><tray-SN-2>← другой935-26287(HGX_HWInfo)<bb-SN-1><bb-SN-1><bb-SN-2>← другойОба NVIDIA-серийника (tray и baseboard) идентичны между A и B (интервал ~4 недели → это стабильные аппаратные ID) и разом сменились в C. Механический
CA-серийник при этом одинаков во всех трёх. То есть факт замены HGX-платы виден только черезHGX_HWInfo_FWVersion.log, а поcomponent/fru.txt— не виден вообще.Что сделать
P0 — парсить
log/bmc/oem-commer-log/HGX_HWInfo_FWVersion.logModel/PartNumber/SerialNumberдля HGX tray, HGX baseboard и каждого GPU_SXM.P0 — не выдавать механический карриер за идентичность GPU-платы
component/fru.txtBoard Product : CAпомечать как «mechanical carrier (vendor FRU)», а935-26287из HWInfo — как «NVIDIA HGX baseboard». Это разные вещи; сейчас доступна только первая, и она вводит в заблуждение.P1 — состояние GPU vs baseboard
HGX_HWInfoпри погасших GPU их поля =NA(Model/PartNumber/SerialNumber = NA), но серийник baseboard при этом читается. Surface это: «baseboard отвечает, GPU не читаются» — важный диагностический признак (плата на связи, GPU-модули нет).P2 — сравнение дампов
Не ломать
component/fru.txt— карриер/mainboard оставить, но переклассифицировать по смыслу.Связано