HomeFreeBSD

Create zap for root vdev

Description

Create zap for root vdev

And add it to the AVZ, this is not backwards compatible with older pools
due to an assertion in spa_sync() that verifies the number of ZAPs of
all vdevs matches the number of ZAPs in the AVZ.

Granted, the assertion only applies to #DEBUG builds - still, a feature
flag is introduced to avoid the assertion, com.klarasystems:vdev_zaps_v2

Notably, this allows to get/set properties on the root vdev:

    % zpool set user:prop=value <pool> root-0

Before this commit, it was already possible to get/set properties on
top-level vdevs with the syntax <type>-<vdev_id> (e.g. mirror-0):

    % zpool set user:prop=value <pool> mirror-0

This syntax also applies to the root vdev as it is is of type 'root'
with a vdev_id of 0, root-0. The keyword 'root' as an alias for
'root-0'.

The following tests have been added:

  • zpool get all properties from root vdev
  • zpool set a property on root vdev
  • verify root vdev ZAP is created

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rob Wing <rob.wing@klarasystems.com>
Sponsored-by: Seagate Technology
Submitted-by: Klara, Inc.
Closes #14405

Details

Provenance
rob-wing <98866084+rob-wing@users.noreply.github.com>Authored on Apr 20 2023, 5:07 PM
GitHub <noreply@github.com>Committed on Apr 20 2023, 5:07 PM
Parents
rG71d191ef25d1: Allow MMP to bypass waiting for other threads
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rG3e4ed4213d7b: Create zap for root vdev (authored by rob-wing <98866084+rob-wing@users.noreply.github.com>).Apr 20 2023, 5:07 PM