zfs/cmd/zpool
Rob Norris f5ead99f34 zpool create: warn on suboptimal pool layout
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>
2023-07-15 22:56:06 +10:00
..
compatibility.d Adding new read-only compatible zpool features to compatibility.d/grub2 2023-05-26 10:04:19 -07:00
os Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
zpool.d Workaround broken VDEV_UPATH 2022-05-10 10:14:07 -07:00
Makefile.am Add compatibility symlinks for FreeBSD 12.{3,4} and 13.{0,1,2} 2023-05-26 15:37:15 -07:00
zpool_iter.c nvpair: Constify string functions 2023-03-14 15:25:50 -07:00
zpool_main.c zpool create: warn on suboptimal pool layout 2023-07-15 22:56:06 +10:00
zpool_util.c zpool create: warn on suboptimal pool layout 2023-07-15 22:56:06 +10:00
zpool_util.h zpool create: warn on suboptimal pool layout 2023-07-15 22:56:06 +10:00
zpool_vdev.c nvpair: Constify string functions 2023-03-14 15:25:50 -07:00