VxRail: Platform Service Failed With Error 'assert len(boot_devs) == 1, 'We have multiple boot devices'
Summary: Platform service fails to start due to incorrect boot device reporting.
Symptoms
VxRail Platform service failed with error assert len(boot_devs) == 1, 'We have multiple boot devices? reported in the platform_svc.logVxVerfy is showing error '2 Fail | 536795 | bmc: Firmware test timeout. Check Platform Service'.Platform_svc.log is showing issues with executing script located at path /opt/vxrail/bin/utility/host.py line 443.
Line 443 in the host.py script is responsible for doing the checks on the bootable devices on the ESXi as shown below:
def get_service_datastore_path():
"""get the service datastore path
This is a guess work. The assumption is that we will have one and only one VMFS ds on
the boot device.
"""
boot_devs = {
dev['Device'] for dev in esxcli('storage core device list')
if dev['Is Boot Device']
}
assert len(boot_devs) == 1, 'We have multiple boot devices?'
dev = boot_devs.pop()
with HostConnection() as host_conn:
ds = host_conn.get_vmfs_datastore_on_bootdev(dev)
if ds:
return ds[0].info.url
return None Cause
When you run esxcli storage core device list | grep -i dellboss -A40, the DELLBOSS_VD is not set as a boot device as shown below, which causes the script to crash.
[management@esxi03:~] esxcli storage core device list | grep -i dellboss -A40
t10.ATA_____DELLBOSS_VD_____________________________d2f1e897dd2e001000000000
Display Name: Local ATA Disk (t10.ATA_____DELLBOSS_VD_____________________________d2f1e897dd2e001000000000)
Has Settable Display Name: true
Size: 228872
Device Type: Direct-Access
Multipath Plugin: NMP
Devfs Path: /vmfs/devices/disks/t10.ATA_____DELLBOSS_VD_____________________________d2f1e897dd2e001000000000
Vendor: ATA
Model: DELLBOSS VD
Revision: 00-0
SCSI Level: 5
Is Pseudo: false
Status: on
Is RDM Capable: false
Is Local: true
Is Removable: false
Is SSD: false
Is VVOL PE: false
Is Offline: false
Is Perennially Reserved: false
Queue Full Sample Size: 0
Queue Full Threshold: 0
Thin Provisioning Status: yes
Attached Filters:
VAAI Status: unsupported
Other UIDs: vml.0100000000643266316538393764643265303031300000000044454c4c424f
Is Shared Clusterwide: false
Is SAS: false
Is USB: false
Is Boot Device: false
Device Max Queue Depth: 31
No of outstanding IOs with competing worlds: 31
Drive Type: unknown
RAID Level: unknown
Number of Physical Drives: unknown
Protection Enabled: false
PI Activated: false
PI Type: 0
PI Protection Mask: NO PROTECTION
Supported Guard Types: NO GUARD SUPPORT
DIX Enabled: false
DIX Guard Type: NO GUARD SUPPORT
Emulated DIX/DIF Enabled: false
Resolution
To resolve this issue:
- Place the server in maintenance mode.
- Reboot the server.
- Confirm
Is Boot Device : trueusing the command:esxcli storage core device list | grep -i dellboss -A40
If rebooting the node does not fix the issue, power drain the node following: PowerEdge: How Do I Reset and Power Drain or Do a Virtual AC Cycle