Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dRaidGroupLayout.md #3383

Merged
merged 4 commits into from
Dec 31, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 9 additions & 10 deletions static/includes/dRaidGroupLayout.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@



{{< hint type="info" title="dRAID Group Layout" >}}
The Pool Creation Wizard does not allow creating a dRAID pool with an arbitrary number of children, and enforces D+P=C at a minimum, and then increments by multiples of D+C. Where D is data devices, P is parity, and C is children.

This layout has several advantages over requiring each row to contain whole number of groups:
* Group count - Group count is not a relevant parameter when defining a dRAID layout. Only the group width is needed, and all groups have the desired size.
* Group widths - All possible group widths (greater than or equal to physical disk count) can be supported.

The logic within the dRAID is simplified when the group width is the same for all groups, although some of the logic around computer permutation numbers and drive offsets is more complicated.

See [vdev_draid.c](https://github.com/openzfs/zfs/blob/master/module/zfs/vdev_draid.c#L45-L167) for more information.
{{< /hint >}}
ZFS allows groups to span multiple rows, which means it does not require each row to contain a whole number of redundancy groups. This layout has several advantages over requiring whole groups in each row:

* Group count - Group count is not a relevant parameter when defining a dRAID layout. ZFS only needs the group width and *all* groups will have the desired size.
* Group widths - ZFS can support all possible group widths (greater than or equal to the physical disk count).

ZFS determines the number of groups by the least common multiple (LCM) of the group width (D+P) and the number of physical drives minus spares (C-S). The logic within dRAID is simplified when the group width is the same for all groups, although some aspects, such as computing permutation numbers and drive offsets, are more complex. This flexible layout ensures even distribution of data and parity while maintaining high performance and resilvering efficiency.

See [vdev_draid.c](https://github.com/openzfs/zfs/blob/master/module/zfs/vdev_draid.c#L45-L167) for more information.
{{< /hint >}}
Loading