5. Inventory monitoring
This section describes how to monitor the hardware inventory using the CLI, REST, IPMI and Redfish interfaces.
5.1. BMC command line
You can use the ipum-utils
command for inventory monitoring.
Table 5.1 describes the parameters to the command.
Parameter |
Description |
---|---|
|
Display the hardware inventory present on the IPU-M2000 with the metadata fields NAME, PRETTY_NAME, PRESENT, FUNCTIONAL, MANUFACTURER, MODEL, SERIALNUMBER and PARTNUMBER. |
Example output from the command is shown below:
$ ipum-utils inventory_list
NAME PRETTY_NAME PRESENT FUNCTIONAL MANUFACTURER MODEL SERIALNUMBER PARTNUMBER
system IPU_Machine_P2_1 true true Graphcore 23 820182-0002 300-0024 Rev. A
chassis IPU_Machine_P2_1 true true Graphcore N/A 820182-0002 300-0024 Rev. A
motherboard IPU_Machine_P2_1 true true Graphcore p2.1 820182-0002 300-0024 Rev. A
bmc BMC true true ASPEED AST2520 N/A N/A
cPortL1_ipu3NM0B ClusterPortL1 true N/A LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=0.3,S VUSQ00107D0087 LVUSQ001-SD-R
cPortL2_ipu3NM0C ClusterPortL2 false N/A N/A N/A N/A N/A
cPortL3_ipu4NM0B ClusterPortL3 true N/A LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=3.0,S VUSQ00398H0003 LVUSQ004-SD-R
cPortL4_ipu4NM0C ClusterPortL4 true N/A LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=2.0,S VUSQ00398L0002 LVUSQ003-SD-R
cPortU1_ipu1NM0B ClusterPortU1 true N/A Amphenol OSFP::CopperUnEQ::NonSep::CL=1.0,S APF20240011FK7 NDVVYF-0001
cPortU2_ipu1NM0C ClusterPortU2 true N/A Amphenol OSFP::CopperUnEQ::NonSep::CL=2.0,S APF19250020CEN NDVVYF-0002
cPortU3_ipu2NM0B ClusterPortU3 true N/A LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=1.0,S VUSQ00298L0002 LVUSQ002-SD-R
cPortU4_ipu2NM0C ClusterPortU4 true N/A Amphenol OSFP::CopperUnEQ::NonSep::CL=0.3,S N/A NDVVJR-G405
cpu0 ZynqUltraS+ true true Xilinx XCZU19EG N/A N/A
core0 Cortex-A53 true true ARM 4 N/A N/A
core1 Cortex-A53 true true ARM 4 N/A N/A
core2 Cortex-A53 true true ARM 4 N/A N/A
core3 Cortex-A53 true true ARM 4 N/A N/A
dimm0 PL_DIMM_B true true Samsung RDIMM-DDR4 SDRAM-65536 MB 0x03FA48CB M393A8G40AB2-CVF
dimm1 PS_DIMM_A true true Samsung RDIMM-DDR4 SDRAM-16384 MB 0x14735D68 M393A2K43CB2-CTD
dimm2 PL_DIMM_C true true Samsung RDIMM-DDR4 SDRAM-65536 MB 0x03FA4A3C M393A8G40AB2-CVF
fan0 fan0 true true Graphcore N/A N/A N/A
fan1 fan1 true true Graphcore N/A N/A N/A
fan2 fan2 true true Graphcore N/A N/A N/A
fan3 fan3 true true Graphcore N/A N/A N/A
fan4 fan4 true true Graphcore N/A N/A N/A
gwPort1 GwPortU true false Amphenol QSFP28,SFF-8636::CopperUnEQ::NonSe APF19160077E1F NDAAFF-0007
gwPort2 GwPortL true false INNOLIGHT QSFP28,SFF-8636::1310nm-EML::LC::C INKBJU560002 TR-ZC13H-N00
ipu0 IPU0 true true Graphcore MK2 T8N535.19.7.3.T8N53500.26194 N/A
ipu1 IPU1 true true Graphcore MK2 T8N535.21.7.7.T8N53500.33586 N/A
ipu2 IPU2 true true Graphcore MK2 T8N535.19.2.5.T8N53500.26474 N/A
ipu3 IPU3 true true Graphcore MK2 T8N535.11.2.5.T8N53500.35782 N/A
mcu0 MCU0 true true Graphcore N/A 0002.0001.0082018.A N/A
mcu1 MCU1 true true Graphcore N/A 0002.0002.0082018.A N/A
nvme0 SAMSUNG MZ1LB960HAJQ-00007 true true SAMSUNG SAMSUNG MZ1LB960HAJQ-00007 S435NA0N414401 N/A
rnic0 Mellanox Technologies MT28800 Family [ConnectX-5 Ex] true true Mellanox MT4121 MT1912K01140 MCX516A-CDAT
rnic1 Mellanox Technologies MT28800 Family [ConnectX-5 Ex] true true Mellanox MT4121 MT1912K01140 MCX516A-CDAT
sysfpga System FPGA true true Xilinx Spartan 7 xc7s N/A xc7s50fgga484-1
powersupply0 PowerSupply0 true true Murata-PS D1U54P-W-1500-12-HC4TC Q92038Q1007Y N/A
powersupply1 PowerSupply1 true true Murata-PS D1U54P-W-1500-12-HC4TC Q92038Q1006N N/A
Note
The fans are numbered 1 to 5 in the hardware, but 0 to 4 in the software. The fan numbered 1 in the hardware corresponds to fan0_0 and fan0_1 in the software. See Section 16, Fan PWM-to-speed mapping for more information.
5.2. REST API
Table 5.2 describes the commands available for inventory monitoring through the REST interface.
Command |
Description |
---|---|
|
List inventory of the system. Using |
List all inventory items: $ curl -k https://<bmcip>/xyz/openbmc_project/inventory/list -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list
List an individual inventory item: $ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>
|
Example output from the command is shown below:
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>
Component | PrettyName | Is a FRU | Present | Functional | Manufacturer | Model | SerialNumber | Has Logs
bmc | BMC | No | Yes | Yes | ASPEED | AST2520 | | No
cPortL1_ipu3NM0B | ClusterPortL1 | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 5 meter | | No
cPortL2_ipu3NM0C | ClusterPortL2 | Yes | No | Yes | | | | No
cPortL3_ipu4NM1C | ClusterPortL3 | Yes | No | Yes | | | | No
cPortL4_ipu4NM1B | ClusterPortL4 | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ | No
cPortU1_ipu1NM0B | ClusterPortU1 | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 5 meter | | No
cPortU2_ipu1NM0C | ClusterPortU2 | Yes | No | Yes | | | | No
cPortU3_ipu2NM1C | ClusterPortU3 | Yes | No | Yes | | | | No
cPortU4_ipu2NM1B | ClusterPortU4 | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ | No
cpu0 | ZynqUltraS+(XCZU19EG) | No | Yes | Yes | ARM | Cortex-A53 | | No
cpu0-core0 | | No | Yes | Yes | | | | No
cpu0-core1 | | No | Yes | Yes | | | | No
cpu0-core2 | | No | Yes | Yes | | | | No
cpu0-core3 | | No | Yes | Yes | | | | No
dimm0 | PL_DIMM | Yes | Yes | Yes | Samsung | RDIMM-DDR4 SDRAM-65536 MB | 0x368DA4E4 | No
dimm1 | PS_DIMM | Yes | Yes | Yes | Samsung | RDIMM-DDR4 SDRAM-16384 MB | 0x314708B3 | No
fan0 | fan0 | Yes | Yes | Yes | | | | No
fan1 | fan1 | Yes | Yes | Yes | | | | No
fan2 | fan2 | Yes | Yes | Yes | | | | No
fan3 | fan3 | Yes | Yes | Yes | | | | No
fan4 | fan4 | Yes | Yes | Yes | | | | No
gwPort1 | GwPortU | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 5 meter | | No
gwPort2 | GwPortL | Yes | Yes | Yes | Amphenol | OSFP Pluggable Tranceiver - 5 meter | | No
ipu0 | IPU0 | No | Yes | Yes | Graphcore | B0 | PMPS95.2.6.8.BC08.9320 | No
ipu1 | IPU1 | No | Yes | Yes | Graphcore | B0 | PMPS95.1.5.7.BC08.8375 | No
ipu2 | IPU2 | No | Yes | Yes | Graphcore | B0 | PMPS95.4.5.4.CORR.20742 | No
ipu3 | IPU3 | No | Yes | Yes | Graphcore | B0 | PMPS95.24.4.5.BC08.5043 | No
mcu0 | MCU0 | No | Yes | Yes | Graphcore | | 0001.0002.001003.A | No
mcu1 | MCU1 | No | Yes | Yes | Graphcore | | 0003.0004.001003.A | No
nvme0 | Samsung SSD 970 EVO Plus 1TB | Yes | Yes | Yes | Samsung | Samsung SSD 970 EVO Plus 1TB | S4EWNF0M410854E | No
powersupply0 | PowerSupply0 | Yes | Yes | Yes | Murata-PS | D1U54P-W-1200-12-HC3PC | H21931RM00C6 | No
powersupply1 | PowerSupply1 | Yes | Yes | No | Murata-PS | D1U54P-W-1200-12-HC3PC | H21931RM00C2 | No
rnic0 | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes | Yes | Yes | Mellanox | MT4121 | MT1901K07893 | No
rnic1 | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes | Yes | Yes | Mellanox | MT4121 | MT1901K07893 | No
5.3. IPMI
Table 5.3 describes the ipmitool
inventory-related commands that are
available.
Command |
Description |
---|---|
fru print |
Display information about all FRUs |
$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print
|
|
fru print <fruid> |
Display information about the FRU with the specified ID |
$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print <fruid>
|
Example output of the fru print
command for the system FRU with ID 80 is shown below:
$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print 80
Chassis Type : Unspecified
Chassis Part Number : 23
Chassis Serial : 219191-0003
Board Mfg Date : Mon 13 May 2019 03:13:00 PM CEST CEST
Board Mfg : Graphcore
Board Product : IPU Machine P1
Board Serial : 219191-0003
Board Part Number : 400-0015 Rev. C
5.4. Redfish
You can do
inventory monitoring through the Redfish interface either by sending curl
queries or browsing the URI.
You can find the inventory items in the Systems collection and the Chassis collection
available at https://<bmcip>/redfish/v1/Systems/system
and
https://<bmcip>/redfish/v1/Chassis
.
The Chassis collection represents a physical view of the IPU-M2000, containing items such as fans, power supplies and sensors. The Systems collection represents the logical view of the system as seen from the operating system. All Redfish endpoints can be traversed in a top-down fashion.
Table 5.4 describes the commands available.
Command |
Description |
---|---|
Inventory list systems |
List inventory of hardware that is part of the Systems collection |
$ curl -k https://<bmcip>/redfish/v1/Systems/system -u <bmcuser>:<bmcpass>
|
|
Inventory list chassis |
List inventory of hardware that is part of the Chassis collection |
$ curl -k https://<bmcip>/redfish/v1/Chassis/ -u <bmcuser>:<bmcpass>
|
Below is an example of using Redfish to query information about “powersupply0” and “cpu0”.
$ curl -k https://<bmcip>/redfish/v1/Chassis/powersupply0 -u <bmcuser>:<bmcpass>
{
"@odata.context": "/redfish/v1/$metadata#Chassis.Chassis",
"@odata.id": "/redfish/v1/Chassis/powersupply0",
"@odata.type": "#Chassis.v1_4_0.Chassis",
"ChassisType": "RackMount",
"Id": "powersupply0",
"Links": {
"ComputerSystems": [
{
"@odata.id": "/redfish/v1/Systems/system"
}
],
"ManagedBy": [
{
"@odata.id": "/redfish/v1/Managers/bmc"
}
]
},
"Manufacturer": "Murata-PS",
"Model": "D1U54P-W-1200-12-HC3PC",
"Name": "powersupply0",
"PartNumber": "",
"Power": {
"@odata.id": "/redfish/v1/Chassis/powersupply0/Power"
},
"PowerState": "On",
"SerialNumber": "H21931RM00C6",
"Status": {
"Health": "OK",
"HealthRollup": "OK",
"State": "Enabled"
},
"Thermal": {
"@odata.id": "/redfish/v1/Chassis/powersupply0/Thermal"
}
}
$ curl -k https://<bmcip>/redfish/v1/Systems/system/Processors/cpu0 -u <bmcuser>:<bmcpass>
{
"@odata.context": "/redfish/v1/$metadata#Processor.Processor",
"@odata.id": "/redfish/v1/Systems/system/Processors/cpu0",
"@odata.type": "#Processor.v1_3_1.Processor",
"Id": "cpu0",
"Name": "Processor",
"Status": {
"Health": "OK",
"State": "Enabled"
}
}