Its possible to create pools that are perfectly valid but are perhaps
not the "best" choice for a given set of devices.
An example is a raidz1 of two devices. I have seen inexperienced users
create this because it looks on the surface like a traditional RAID-1,
that is, a mirror. It even appears to work, but presents problems later
when they want to upgrade the drives, and of course does not perform as
well as a mirror.
This changes `zpool create` to reject such "suboptimal" pool layouts,
and suggest a possible better alternative. It checks for raidz and draid
where the number of devices are parity+1, and could be extended in the
future.
It adds a switch, --force=layout, to disable the check and the warning
and return the old behaviour, for those who know what they're doing.
Included is a utility function to work with option flags. The existing
-f switch to `zpool create` is now an alias for `--force=vdevs`.
Signed-off-by: Rob Norris <robn@despairlabs.com>