It does not support different sized drives in a raidz (equivalent to an mdadm array), as far as I know, but you can mix raidz and singular drives in a pool, though that is a bit silly. It also does not support adding disks to a raidz, which is equivalent to growing a raid5 or raid6 array, which is admittedly a pain in the ass.
% mkfile -v 64m /var/tmp/d0
/var/tmp/d0 67108864 bytes
% mkfile -v 96m /var/tmp/d1
/var/tmp/d1 100663296 bytes
% mkfile -v 128m /var/tmp/d2
/var/tmp/d2 134217728 bytes
% sudo zpool create -f pool0 raidz /var/tmp/d0 /var/tmp/d1 /var/tmp/d2
Password:
% zpool status
pool: pool0
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
pool0 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
/var/tmp/d0 ONLINE 0 0 0
/var/tmp/d1 ONLINE 0 0 0
/var/tmp/d2 ONLINE 0 0 0
errors: No known data errorsThe smallest device capacity applies to RAID1+0, which is mirroring, but it does not apply to RAIDZ.
Of course you can remove drives in ZFS. How else could you replace disks?
I downvoted your post because every statement you made about ZFS is wrong.
Yes, you can add drives of arbitrary size to a ZFS pool, but when put into the same array, they all get treated as the size of the smallest one. Yes, you can expand a ZFS pool but only by adding a new array or by incrementally upgrading all the drives in the new array. Yes, you can remove drives, but only for replacement purposes; you can't do an in-place rebuild to make the reduced number of drives the new normal instead of degraded mode.
Can you have an array that contains a single disk? And if you can, then
* Can you add as many single drive arrays to a pool as you like?
* Can you migrate data off of a given single-drive array on to other single-drive arrays in the pool and then permanently remove the array from the pool?
ZFS doesn't support different sized hard drives. I could also be wrong, but ZFS doesn't expand as easily, and you can't remove drives from it.
Synology NAS just added support for Btrfs in their software