I'm creating a tool in golang to parse the XML returned from approx 150 HPE DL360 Gen 10 servers, and then send over to ElasticSearch. However, I'm finding discrepancies in the data depending on the method I use to obtain it.
A test server has 2x 120GB SSDs RAID1 in Bay 1 & Bay 2, and 2 unconfigured disks in Bay 3 & Bay 4. From the web GUI, all disks are visible under "Physical View" - great!
Web GUI:
- Physical Drive in Port 1I Bay 1
Status OK
Serial Number CVLT7461007W120GGN
Model INTEL SSDSC2KW12
Media Type SSD
Capacity 120 GB
Location Port 1I Bay 1
Firmware Version LSF042C
Drive Configuration Configured
Encryption Status Not Encrypted
Power On Hours 261
Estimated Life Remaining Based on Workload to Date 1,077 Days
Life Remaining
99%
- Physical Drive in Port 1I Bay 2
Status OK
Serial Number CVLT7395028Q120GGN
Model INTEL SSDSC2KW12
Media Type SSD
Capacity 120 GB
Location Port 1I Bay 2
Firmware Version LSF042C
Drive Configuration Configured
Encryption Status Not Encrypted
Power On Hours 597
Estimated Life Remaining Based on Workload to Date 2,463 Days
Life Remaining
99%
- Physical Drive in Port 1I Bay 3
Status OK
Serial Number WGS6JRHL
Model ST1000LM049-2GH1
Media Type HDD
Capacity 1000 GB
Location Port 1I Bay 3
Firmware Version SDM1
Drive Configuration Unconfigured
Encryption Status Not Encrypted
- Physical Drive in Port 1I Bay 4
Status OK
Serial Number CVLT6286067J120GGN
Model INTEL SSDSC2KW12
Media Type SSD
Capacity 120 GB
Location Port 1I Bay 4
Firmware Version LSF042C
Drive Configuration Unconfigured
Encryption Status Not Encrypted
Power On Hours 399
Estimated Life Remaining Based on Workload to Date 1,646 Days
Life Remaining
99%
However if I try to get the same data using the locfg utility I'm only getting data for disks that are part of a logical volume ("Configured"):
/usr/bin/perl locfg.pl -s [IP] -f Get_EmHealth.xml -u [user] -p [pass] ilo5
Contents of Get_EmHealth.xml:
<RIBCL VERSION="2.23">
<LOGIN USER_LOGIN="adminname" PASSWORD="password">
<SERVER_INFO MODE="read">
<GET_EMBEDDED_HEALTH>
<GET_ALL_STORAGE/>
</GET_EMBEDDED_HEALTH>
</SERVER_INFO>
</LOGIN>
</RIBCL>
Output:
<STORAGE>
<CONTROLLER>
<LABEL VALUE = "Controller on System Board"/>
<STATUS VALUE = "OK"/>
<CONTROLLER_STATUS VALUE = "OK"/>
<SERIAL_NUMBER VALUE = "PWXKV0BRHE024F "/>
<MODEL VALUE = "HPE Smart Array P408i-a SR Gen10"/>
<FW_VERSION VALUE = "2.65"/>
<ENCRYPTION_STATUS VALUE = "Not Enabled"/>
<ENCRYPTION_SELF_TEST_STATUS VALUE = "OK"/>
<ENCRYPTION_CSP_STATUS VALUE = "OK"/>
<DRIVE_ENCLOSURE>
<LABEL VALUE = "Port 2I Box 0"/>
<STATUS VALUE = "OK"/>
<DRIVE_BAY VALUE = "04"/>
</DRIVE_ENCLOSURE>
<LOGICAL_DRIVE>
<LABEL VALUE = "01"/>
<STATUS VALUE = "OK"/>
<CAPACITY VALUE = "111 GiB"/>
<FAULT_TOLERANCE VALUE = "RAID 1"/>
<LOGICAL_DRIVE_TYPE VALUE = "Data LUN"/>
<ENCRYPTION_STATUS VALUE = "Not Encrypted"/>
<PHYSICAL_DRIVE>
<LABEL VALUE = "Port 1I Bay 1"/>
<STATUS VALUE = "OK"/>
<SERIAL_NUMBER VALUE = "CVLT7461007W120GGN"/>
<MODEL VALUE = "INTEL SSDSC2KW12"/>
<CAPACITY VALUE = "111 GiB"/>
<MARKETING_CAPACITY VALUE = "120 GB"/>
<LOCATION VALUE = "Port 1I Bay 1"/>
<FW_VERSION VALUE = "LSF042C"/>
<DRIVE_CONFIGURATION VALUE = "Configured"/>
<ENCRYPTION_STATUS VALUE = "Not Encrypted"/>
<MEDIA_TYPE VALUE = "SSD"/>
</PHYSICAL_DRIVE>
<PHYSICAL_DRIVE>
<LABEL VALUE = "Port 1I Bay 2"/>
<STATUS VALUE = "OK"/>
<SERIAL_NUMBER VALUE = "CVLT7395028Q120GGN"/>
<MODEL VALUE = "INTEL SSDSC2KW12"/>
<CAPACITY VALUE = "111 GiB"/>
<MARKETING_CAPACITY VALUE = "120 GB"/>
<LOCATION VALUE = "Port 1I Bay 2"/>
<FW_VERSION VALUE = "LSF042C"/>
<DRIVE_CONFIGURATION VALUE = "Configured"/>
<ENCRYPTION_STATUS VALUE = "Not Encrypted"/>
<MEDIA_TYPE VALUE = "SSD"/>
</PHYSICAL_DRIVE>
</LOGICAL_DRIVE>
</CONTROLLER>
<DISCOVERY_STATUS>
<STATUS VALUE = "Discovery Complete"/>
</DISCOVERY_STATUS>
</STORAGE>
Does anyone know why Non-Configured disks would be absent, and if there's a way to remedy this?
I've tried power cycling the server, and also running the locfg command with and without the "ilo5" option - same results every time.
Thanks