Cluster Validation Error with Fiber Adapter
Windows Server 2008 and 2008 R2 has a validation test that needs to be run against all nodes confirm that your hardware and settings are compatible with Failover Clustering. For the purpose of this blog, I am not going to go into all the tests and what they do. For more information on Cluster Validation and the tests it runs, you can go here.
We have started seeing an error with the Failover Clustering Validation Report in regards to the “List Fibre Channel Host Bus Adapters” test. The error we have seen will appear similar to this:
The test we are making is a WMI query to MSFC_FCAdapterHBAAttributes for the following information:.
Manufacturer
HBAStatus
VendorSpecificID
NumberOfPorts
SerialNumber
Model
ModelDescription
HardwareVersion
DriverVersion
DriverName
This call is being made to the fiber adapter driver on the systems. If the driver does not respond or respond with the information requested, it will fail with the above Validation error.
This does not mean there is a problem with the Cluster Validation process or your system. All it means is that driver did not respond with the information we requested. The driver and adapter may very well work just fine with Failover Clustering. In most all the cases where we have seen this error, the Storage Validation tests pass with no warnings or errors.
I have created a script that you can run from a command prompt to see exactly what is returned. You can create a text file with the below information.
Set oWbemServices = GetObject("winmgmts:{impersonationLevel=impersonate}!root/wmi")
Set enumAdapter = oWbemServices.InstancesOf("MSFC_FCAdapterHBAAttributes")
For Each eAdapter in enumAdapter
Wscript.Echo "Manufacturer : " & eAdapter.Manufacturer
Wscript.Echo "HBAStatus : " & eAdapter.HBAStatus
Wscript.Echo "VendorSpecificID : " & eAdapter.VendorSpecificID
Wscript.Echo "NumberOfPorts : " & eAdapter.NumberOfPorts
Wscript.Echo "SerialNumber : " & eAdapter.SerialNumber
Wscript.Echo "Model : " & eAdapter.Model
Wscript.Echo "ModelDescription : " & eAdapter.ModelDescription
Wscript.Echo "HardwareVersion : " & eAdapter.HardwareVersion
Wscript.Echo "DriverVersion : " & eAdapter.DriverVersion
Wscript.Echo "DriverName : " & eAdapter.DriverName
Next
WScript.Echo "Done"
As an example, you can save the file as FCATTRIBUTES.VBS. You would then need to run an administrative command prompt and run the CSCRIPT.EXE command from the directory you created the file in.
C:\TEST>cscript fcattributes.vbs
The output will be on the screen using the above. What should be normally returned when there are no errors would be similar to the below.
Manufacturer : John Marlin Company
HBAStatus : 0
VendorSpecificID : 583882643
NumberOfPorts : 1
SerialNumber : J15109
Model : JRM6950
ModelDescription : Marlin JRM6950 Fibre Channel Adapter
HardwareVersion : 7750206A
DriverVersion : 16.1.0.63
DriverName : marlinhba.sys
If the data returned is only, as an example, the HBAStatus, then you will receive the Cluster Validation error. As mentioned, this is a WMI Query to the driver itself. If it is not returning the information, you should consult with the vendor of the adapter driver for assistance.
This error is not something that Microsoft can help with from a troubleshooting perspective. It is possible the driver may be an older version and simply needs an update. The vendor of the adapter should be able to assist. If it is an older driver, keep in mind that an update may also require a firmware update as well. So keep this in mind when speaking with them.