Hacking vSAN HCL DB to "support" an unsupported card (worked, almost…)

This post was originally published on this site

Disclaimer:  i’m just messing around in my lab. Evil things happen there so don’t take it too seriously 😉


I have a 4 node vSAN 7 U1 cluster with LSI SAS9300-8i cards in it. It was supported until ESXi 6.7 U3 but it’s no supported in 7.x

So I thought “let’s change that”.

I downloaded the current vSAN HCL DB file  (called “all.json”) and edited it. I changed the actual SAS9300-8i card by changing the name to some bogus name like “SAS9301-8i” and changed the “did” and “ssid” into something bogus.

I then went to the LSI SAS9305-16i (which is supported in vSAN 7U1) and changed it’s “did” and “ssid” entries to that of the SAS9300-8i and changed the name to 9300-8i.

I also changed the Firmware to v16 as that is the version that works in 7.x

At all times, the JSON structure must stay intact otherwise importing the DB file will fail obviously.


Then the moment of truth:  uploading the hacked DB “from file” instead of fetching it from the web. I then re-ran the SkyLine health-check and EUREKA !!!  suddenly the card appears as fully supported and all is good with the world. Whoohoooo!


I then noticed that the firmware version of the cards is not read at all.

To my understanding, when a card is supported and when having installed the correct tool (“sas3flash” in “/opt/lsi/bin” in this case), the healthcheck should use that tool to enumerate the firmware version (I can run sas3flash manually and it sees the card just fine).

Am I missing something here?


(again, this is just for shits&giggles)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.