In my opinion the "special" vdevs need some greater warnings attached in UI, because users are treating them akin to the cache/log vdev class, which can be detached under any condition, when they are closer to general data vdevs in that they can't be removed if a top-level RAIDZ vdev exists.
Not just that the SLOG or L2ARC can be detached, but that the sVDEV is a critical part of the pool and should be treated as such. To avoid the OP kind of unhappiness, IXsystems should educate users re:
- sVDEV sizing (i.e. general guidelines or the process of determining the metadata and small file needs)
- how to set the small file threshold
- the need for quality sVDEV hardware (like I happily got here) and
- the need for the same kind of redundancy in a sVDEV pool as the general pool.
For me, that suggests a 2-way mirror at minimum and a preference for 3-way mirror for larger systems.
Thus, if a user tries to install a 1-drive sVDEV, that attempt should automatically pop up a window that says: "You better know what you're doing because this is generally very foolish". Add a link to the iXsystems help file explaining what a sVDEV is, etc. Also, any attempt to use a external flash stick stuck into a USB port, for SVDEV should be an automatic
Nein!
Similarly, the GUI should also put up a explainer anytime someone tries to remove a sVDEV when it is not allowed. Perhaps something along the lines of
- You cannot detach a sVDEV from this kind of pool. You will destroy the pool if you do so.
- If you need to remove the sVDEV, you should
- back up the pool,
- destroy the pool,
- rebuild the pool without the sVDEV, and
- restore the data from your backup(s)