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:

image

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.

Author:

John Marlin
Senior Support Escalation Engineer
Microsoft Enterprise Platforms Support

 

Technorati Tags: failover cluster,Fibre Channel Host Bus Adapter