zfs/man/man8
Brian Behlendorf b2255edcc0
Distributed Spare (dRAID) Feature
This patch adds a new top-level vdev type called dRAID, which stands
for Distributed parity RAID.  This pool configuration allows all dRAID
vdevs to participate when rebuilding to a distributed hot spare device.
This can substantially reduce the total time required to restore full
parity to pool with a failed device.

A dRAID pool can be created using the new top-level `draid` type.
Like `raidz`, the desired redundancy is specified after the type:
`draid[1,2,3]`.  No additional information is required to create the
pool and reasonable default values will be chosen based on the number
of child vdevs in the dRAID vdev.

    zpool create <pool> draid[1,2,3] <vdevs...>

Unlike raidz, additional optional dRAID configuration values can be
provided as part of the draid type as colon separated values. This
allows administrators to fully specify a layout for either performance
or capacity reasons.  The supported options include:

    zpool create <pool> \
        draid[<parity>][:<data>d][:<children>c][:<spares>s] \
        <vdevs...>

    - draid[parity]       - Parity level (default 1)
    - draid[:<data>d]     - Data devices per group (default 8)
    - draid[:<children>c] - Expected number of child vdevs
    - draid[:<spares>s]   - Distributed hot spares (default 0)

Abbreviated example `zpool status` output for a 68 disk dRAID pool
with two distributed spares using special allocation classes.

```
  pool: tank
 state: ONLINE
config:

    NAME                  STATE     READ WRITE CKSUM
    slag7                 ONLINE       0     0     0
      draid2:8d:68c:2s-0  ONLINE       0     0     0
        L0                ONLINE       0     0     0
        L1                ONLINE       0     0     0
        ...
        U25               ONLINE       0     0     0
        U26               ONLINE       0     0     0
        spare-53          ONLINE       0     0     0
          U27             ONLINE       0     0     0
          draid2-0-0      ONLINE       0     0     0
        U28               ONLINE       0     0     0
        U29               ONLINE       0     0     0
        ...
        U42               ONLINE       0     0     0
        U43               ONLINE       0     0     0
    special
      mirror-1            ONLINE       0     0     0
        L5                ONLINE       0     0     0
        U5                ONLINE       0     0     0
      mirror-2            ONLINE       0     0     0
        L6                ONLINE       0     0     0
        U6                ONLINE       0     0     0
    spares
      draid2-0-0          INUSE     currently in use
      draid2-0-1          AVAIL
```

When adding test coverage for the new dRAID vdev type the following
options were added to the ztest command.  These options are leverages
by zloop.sh to test a wide range of dRAID configurations.

    -K draid|raidz|random - kind of RAID to test
    -D <value>            - dRAID data drives per group
    -S <value>            - dRAID distributed hot spares
    -R <value>            - RAID parity (raidz or dRAID)

The zpool_create, zpool_import, redundancy, replacement and fault
test groups have all been updated provide test coverage for the
dRAID feature.

Co-authored-by: Isaac Huang <he.huang@intel.com>
Co-authored-by: Mark Maybee <mmaybee@cray.com>
Co-authored-by: Don Brady <don.brady@delphix.com>
Co-authored-by: Matthew Ahrens <mahrens@delphix.com>
Co-authored-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Mark Maybee <mmaybee@cray.com>
Reviewed-by: Matt Ahrens <matt@delphix.com>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #10102
2020-11-13 13:51:51 -08:00
..
.gitignore Ignore *.o.ur-safe build artifacts 2018-05-13 18:59:02 -07:00
Makefile.am Add zpool_influxdb command 2020-10-09 09:29:21 -07:00
fsck.zfs.8 man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00
mount.zfs.8 man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00
vdev_id.8 man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00
zdb.8 Remove hard coded "Linux" OS from manpages 2020-08-21 11:55:47 -07:00
zed.8.in Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
zfs-allow.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-bookmark.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-change-key.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-clone.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-create.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-destroy.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-diff.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-get.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-groupspace.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-hold.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-inherit.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-jail.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-list.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-load-key.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-mount-generator.8.in man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00
zfs-mount.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-program.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-project.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-projectspace.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-promote.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-receive.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-recv.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-redact.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-release.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-rename.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-rollback.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-send.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-set.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-share.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-snapshot.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-unallow.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-unjail.8 Add FreeBSD jail support hooks 2019-12-11 11:58:37 -08:00
zfs-unload-key.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-unmount.8 Reorganize zfs(8) man page into sections 2019-11-12 11:17:40 -08:00
zfs-upgrade.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-userspace.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs-wait.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zfs.8 Add the Xr's to the SEE ALSO as well 2020-08-26 22:29:00 -07:00
zfs_ids_to_path.8 Remove hard coded "Linux" OS from manpages 2020-08-21 11:55:47 -07:00
zfsconcepts.8 Remove hard coded "Linux" OS from manpages 2020-08-21 11:55:47 -07:00
zfsprops.8 Cross-platform acltype 2020-10-13 21:25:48 -07:00
zgenhostid.8 cmd/zgenhostid: replace with simple c implementation 2020-09-16 12:25:12 -07:00
zinject.8 man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00
zpool-add.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-attach.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-checkpoint.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-clear.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-create.8 Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
zpool-destroy.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-detach.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-events.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-export.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-get.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-history.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-import.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-initialize.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-iostat.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-labelclear.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-list.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-offline.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-online.8 Reorganize zpool(8) man page into sections 2019-11-13 09:21:07 -08:00
zpool-reguid.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-remove.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-reopen.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-replace.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-resilver.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-scrub.8 Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
zpool-set.8 Reorganize zpool(8) man page into sections 2019-11-13 09:21:07 -08:00
zpool-split.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-status.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-sync.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-trim.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-upgrade.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool-wait.8 Properly format NAME subsection of zfs/zpool subcommands 2020-10-22 11:28:10 -07:00
zpool.8 Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
zpool_influxdb.8 Add zpool_influxdb command 2020-10-09 09:29:21 -07:00
zpoolconcepts.8 Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
zpoolprops.8 zpoolprops.8: clarify vdev expansion rules 2020-11-10 12:48:26 -08:00
zstream.8 Remove hard coded "Linux" OS from manpages 2020-08-21 11:55:47 -07:00
zstreamdump.8 man: Canonicalize .TH usage 2020-08-24 21:25:28 -07:00