During the prerequisite check of Azure Stack HCI I came across an odd error related to the storage. I had the minimum requirements of 2 NVMe drives, an RAID card in JBOD mode.
Type 'ValidateHardware' of Role 'EnvironmentValidator' raised an exception: Hardware requirements not met.
Review output and remediate:
Rule:
HealthCheckSource : Deployment\Hardware\3bc73c2f
Name : AzStackHci_Hardware_Test_PhysicalDisk
DisplayName : Test PhysicalDisk API SERVERNAME1
Tags : {}
Title : Test PhysicalDisk API
Status : FAILURE
Severity : CRITICAL
Description : Checking PhysicalDisk has CIM data
Remediation : https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-prerequisites
TargetResourceID : Machine: SERVERNAME1, Class: PhysicalDisk
TargetResourceName : Machine: SERVERNAME1, Class: PhysicalDisk
TargetResourceType : PhysicalDisk
Timestamp : 20/03/2024 15:40:33
AdditionalData:
Key : Detail
Value : Unable to retrieve data for PhysicalDisk on SERVERNAME1
Key : Status
Value : FAILURE
Key : TimeStamp
Value : 03/20/2024 15:40:33
Key : Resource
Value : Null
Key : Source
Value : SERVERNAME1
Rule:
HealthCheckSource : Deployment\Hardware\3bc73c2f
Name : AzStackHci_Hardware_Test_PhysicalDisk
DisplayName : Test PhysicalDisk API SERVERNAME2
Tags : {}
Title : Test PhysicalDisk API
Status : FAILURE
Severity : CRITICAL
Description : Checking PhysicalDisk has CIM data
Remediation : https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-tool-prerequisites
TargetResourceID : Machine: SERVERNAME2, Class: PhysicalDisk
TargetResourceName : Machine: SERVERNAME2, Class: PhysicalDisk
TargetResourceType : PhysicalDisk
Timestamp : 20/03/2024 15:40:33
AdditionalData:
Key : Detail
Value : Unable to retrieve data for PhysicalDisk on SERVERNAME2
Key : Status
Value : FAILURE
Key : TimeStamp
Value : 03/20/2024 15:40:33
Key : Resource
Value : Null
Key : Source
Value : SERVERNAME2
[... CLR exception truncated]
Now this error in the end doesn’t say much. When we take a look in C:\Program Files\WindowsPowerShell\Modules\AzStackHci.EnvironmentChecker\AzStackHciHardware\AzStackHci.Hardware.Helpers.psm1 we can see that Test-PhysicalDisk is looking for.
$allowedBusTypes = @('SATA', 'SAS', 'NVMe', 'SCM')
$allowedMediaTypes = @('HDD', 'SSD', 'SCM')
And by executing get-PhysicalDisk | select Number,FriendlyName,MediaType,BusType on the node we find our clue.

Despite the RAID controller being in JBOD mode, it’s still reporting the BusType to Windows as RAID. Luckily this was an easy fix in this situation as it was solved by downloading the Windows drivers from the RAID controller on the Super Micro site and installing them. After a quick install using pnputil.exe, you can now see that the BusType is reporting as SAS.

And now the validation in the Azure portal succeeded.
