HomeFreeBSD

Ignore special vdev ashift for spa ashift min/max

Description

Ignore special vdev ashift for spa ashift min/max

The removal of a vdev in the normal class would fail if there was a
special or deup vdev that had a different ashift than the vdevs in
the normal class.

Moved the initialization of spa_min_ashift / spa_max_ashift from
vdev_open so that it occurs after the vdev allocation bias was
initialized (i.e. after vdev_load).

Caveat -- In order to remove a special/dedup vdev it must have the
same ashift as the normal pool vdevs. This could perhaps be lifted
in the future (i.e. for the case where there is ample space in any
surviving special class vdevs)

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Don Brady <don.brady@delphix.com>
Closes #9363
Closes #9364
Closes #11053

Details

Provenance
Don Brady <don.brady@delphix.com>Authored on Oct 15 2020, 9:45 PM
GitHub <noreply@github.com>Committed on Oct 15 2020, 9:45 PM
Parents
rG15a4ca4620b7: Fix crash caused by invalid snapshot names in redactnvl
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGdff71c793684: Ignore special vdev ashift for spa ashift min/max (authored by Don Brady <don.brady@delphix.com>).Oct 15 2020, 9:45 PM