The internet seems to think that Intel’s Virtual RAID on CPU (VROC) will only work if you use Intel SSDs. I’m here to tell you otherwise. I’ve recently set up CentOS 7.3 on a pair of Samsung S961 M.2 SSDs in RAID 1 configuration through VROC and it works just fine.
Like all of our servers, this one was provisioned over the network using PXE. We’ve been doing this for a pretty long time, since well before UEFI was a thing. As a result, we hadn’t updated our DHCP/PXE configuration to the new standard. I won’t bore you with tales of how much time that little detail cost me, but take it from me: you need to be using UEFI PXE for the rest of this to work. Since we use CentOS all over the place, the Red Hat documentation is as good a place as any for getting that set up.
Next up, you need to download the VROC drivers from Intel. Extract the zip file and put the rste-5.3_PV2_rhel7.3.iso file somewhere reachable from your newly booting server. I put it on the same server as our local CentOS mirror and renamed it rste7.3.iso to save on the typing.
Time to boot the server. When you do, go into BIOS and create your RAID array in there before going any further. For me, this was a RAID 1 setup but choose whatever RAID level you’re after then allow the machine to boot, making it do a PXE boot when the time comes; F11 for a boot menu on the Supermicro machine I’m using. The PXE menu option I have is simply to install CentOS 7.3, but we need to make some changes to that, so pressing e with the install option selected lets you adjust the boot parameters. On the end of the “linuxefi…” line, add “inst.updates=http://pxeserver/rste7.3.iso modprobe.blacklist=qat_c62x” to the end with whatever server and filename you chose in the URL. CTRL-x boots using the parameters you’ve set.
That’s it! With that lot done I was able to perform a completely normal CentOS install, choosing Volume0 as the installation target since that’s what I’d lazily left the default name of the RAID volume as in BIOS.
CentOS turned up in the UEFI boot choices as expected and works without issue.