My SuperMicro X13SAE has hardware raid for the three m.2 NVME drives that it supports. My question is how does it handle firmware updates for these drives? If the drives aren't being exposed to the operating system, then I assume fwupdmgr
and fwupdtool
won't see them as distinct drives. So how does the firmware get updated by default? And what options do you have for updating the firmware short of turning off hardware RAID or plugging the drives in elsewhere?

- 2,373
- 10
- 34
- 53
-
*"how to deal with broken hardware?"* seems like two steps before we even get to *"how to deal with broken firmware of that rare sort where the vendor understands, acknowledges and provides proper fixes?"* - how are you keeping track of the devices own health assessment, if not by querying the individual controllers? – anx Jul 24 '23 at 22:01
-
@anx Currently, I run `fwupdmgr update` and it shows all the devices and updates the ones not up to date. I'm not sure what you mean by health assessments, but that's not the question here. – Evan Carroll Jul 24 '23 at 22:27
2 Answers
The NVMe standard specifies a firmware update process. Any NVMe device supporting that process can be updated by a standard routine located in the RAID controller's firmware. The update can be integrated in the general configuration GUI or some extra tool.
See the NVMe Base Specification clause 3.11 for details.
A real hardware RAID controller necessarily and completely abstracts the physical drives from the operating system. The board you've linked uses Intel's Rapid Storage Technology (IRST) however, which actually is only host/firmware RAID - a software RAID with BIOS support, making it bootable but possibly problematic with non-RAID OS drivers. Open-source systems usually ignore host RAID and access the bare disks, breaking RAID synchronization - you might be better off using OS-level software RAID. Depending on the operating system and tools you might also get to the drives directly, but that could interfere with host RAID operation.

- 10,320
- 2
- 12
- 32
-
I wonder how clever the intel firmware is about the *"reset me to switch to that firmware slot"* answer. I would not dare trying anything but strictly sequential upgrades. – anx Jul 24 '23 at 22:35
-
4_"The board you've linked [...] actually is only host/firmware RAID"_ - Which means OP is probably [better off using Linux software raid](https://superuser.com/questions/245928/does-fake-raid-offer-any-advantage-over-software-raid). That also immediately solves the firmware update problems, as then the individual drives are accessible from Linux. Feel free to include that in your answer :) – marcelm Jul 25 '23 at 12:01
-
@marcelm Host RAID is generally problematic with anything else than Windows, but that's for the user to evaluate once they've recognized that on-board RAID isn't necessarily hardware RAID. – Zac67 Jul 25 '23 at 12:20
-
@Zac67 I agree that's for OP to decide, but you could still point them in that direction. Especially as it actually answers the question OP had (how to update firmware). – marcelm Jul 25 '23 at 13:50
Any decent hardware raid controller will have some type of software to manage the underlying drives. My Adaptec ASR71605 raid controller, for example, uses the maxView Storage Manager.
From there, I can simply click the device in question, then click "firmware update" in the GUI. I haven't tried it while the device is in use, but since I have parity in the array the worst case scenario is that it would need rebuilt after the firmware update. I would still make sure to have an up-to-date backup before modifying firmware though.
I'm on Windows, but the tool's website says it supports "Windows, Linux, VMWare, and Solaris", which is pretty typical for these kinds of devices.

- 111
- 2