- start with 2 disks (not a mirror, but 2 independent vdevs)
- set copies=2 to enable ditto blocks, causing data blocks to be automatically stored on 2 different disks (ZFS always tries to store ditto blocks on different vdevs when at least 2 are available)
- when adding a 3rd disk, each data block will continue to be stored on 2 different disks, and you have the option to add a 4th disk, 5th disk, etc, any time
The overhead is 50% (like RAID1/mirroring), so I presume this can be a downside for the hobbyist who usually cares about dollar per TB. But nonetheless this is an option.
I can see why hobbyists may want to expand a pool one disk at a time, but personally I have been running ZFS for 10 years, I have a 20TB fileserver at home (I grew it from 1TB over the years), and I have never needed to add just one disk at a time. Usually when I run out of space, I replace all the disks at once with larger ones (and/or replace the server if it is more than 4-6 years old).
Another point I wanted to comment on: the author makes the typical mistake of assuming ZFS on a single disk is not very interesting ("A VDEV is either a single disk (not so interesting)") but it is. To name a few features why it is still great to run on a single-disk system: end-to-end checksumming, self-healing, scrubbing, snapshots, clones, compression, ditto blocks, deduplication, CoW, zfs send/recv, simple CLI tools, etc.
For the love of god don't spread that nonsense. Ditto blocks do NOT protect against a drive failure. If you lose a drive you will lose all of your data. It is intended as a belt and suspenders function and was put in place knowing as we get larger and larger drives with higher and higher error rates, RAID alone will likely not guarantee your data is protected.
- start with 2 disks (not a mirror, but 2 independent vdevs)
- set copies=2 to enable ditto blocks, causing data blocks to be automatically stored on 2 different disks (ZFS always tries to store ditto blocks on different vdevs when at least 2 are available)
- when adding a 3rd disk, each data block will continue to be stored on 2 different disks, and you have the option to add a 4th disk, 5th disk, etc, any time
The overhead is 50% (like RAID1/mirroring), so I presume this can be a downside for the hobbyist who usually cares about dollar per TB. But nonetheless this is an option.
I can see why hobbyists may want to expand a pool one disk at a time, but personally I have been running ZFS for 10 years, I have a 20TB fileserver at home (I grew it from 1TB over the years), and I have never needed to add just one disk at a time. Usually when I run out of space, I replace all the disks at once with larger ones (and/or replace the server if it is more than 4-6 years old).
Another point I wanted to comment on: the author makes the typical mistake of assuming ZFS on a single disk is not very interesting ("A VDEV is either a single disk (not so interesting)") but it is. To name a few features why it is still great to run on a single-disk system: end-to-end checksumming, self-healing, scrubbing, snapshots, clones, compression, ditto blocks, deduplication, CoW, zfs send/recv, simple CLI tools, etc.