IIRC, ZoL made a change to allow mixing mirror and raidz (without a force flag), as long as they have the same redundancy level. I'd recommend we bring that change to illumos as well. This looks like the commit:
commit 6eb6073a044653016013b1a72de03a1257e899c5 Author: HÃ¥kan Johansson <[email protected]> Date: Mon Jun 5 22:53:09 2017 +0200 Allow add of raidz and mirror with same redundancy Allow new members to be added to a pool mixing raidz and mirror vdevs without giving -f, as long as they have matching redundancy. This case was missed in #5915, which only handled zpool create. Add zfstest zpool_add_010_pos.ksh, with test of zpool create followed by zpool add of mixed raidz and mirror vdevs. Add some more mixed raidz and mirror cases to zpool_create_006_pos.ksh. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Haakan Johansson <[email protected]> Issue #5915 Closes #6181 --matt On Sun, Jan 6, 2019 at 12:07 AM Igor Kozhukhov <[email protected]> wrote: > Hi All, > > i try to merge ZoL tests to DilOS and i can see interest differenses. > > based on zpool_create_006_pos.ksh: > in valid section i can see mix of mirror + raidz: > > full version: > set -A valid_args \ > "mirror $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 $vdev5" \ > "mirror $vdev0 $vdev1 mirror $vdev2 $vdev3 mirror $vdev4 $vdev5" \ > "mirror $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 $vdev5 \ > spare $vdev6" \ > "mirror $vdev0 $vdev1 mirror $vdev2 $vdev3 mirror $vdev4 $vdev5 \ > spare $vdev6 $vdev7" \ > "mirror $vdev0 $vdev1 spare $vdev2 mirror $vdev3 $vdev4" \ > "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3" \ > "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3 $vdev4" \ > "mirror $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5" \ > "mirror $vdev0 $vdev1 $vdev2 $vdev3 \ > raidz3 $vdev4 $vdev5 $vdev6 $vdev7" \ > "raidz $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4" \ > "raidz $vdev0 $vdev1 $vdev2 raidz1 $vdev3 $vdev4 $vdev5" \ > "raidz $vdev0 $vdev1 raidz1 $vdev2 $vdev3 raidz $vdev4 $vdev5" \ > "raidz $vdev0 $vdev1 $vdev2 raidz1 $vdev3 $vdev4 $vdev5 \ > spare $vdev6" \ > "raidz $vdev0 $vdev1 raidz1 $vdev2 $vdev3 raidz $vdev4 $vdev5 \ > spare $vdev6 $vdev7" \ > "raidz $vdev0 $vdev1 spare $vdev2 raidz $vdev3 $vdev4" \ > "raidz2 $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 $vdev5" \ > "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5" \ > "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ > raidz2 $vdev6 $vdev7 $vdev8" \ > "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ > spare $vdev6" \ > "raidz2 $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5 \ > raidz2 $vdev6 $vdev7 $vdev8 spare $vdev9" \ > "raidz2 $vdev0 $vdev1 $vdev2 spare $vdev3 raidz2 $vdev4 $vdev5 > $vdev6" \ > "raidz3 $vdev0 $vdev1 $vdev2 $vdev3 \ > mirror $vdev4 $vdev5 $vdev6 $vdev7" \ > "spare $vdev0 $vdev1 $vdev2 mirror $vdev3 $vdev4 raidz $vdev5 > $vdev6" > > part of: > "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3" \ > "mirror $vdev0 $vdev1 raidz $vdev2 $vdev3 $vdev4" \ > "mirror $vdev0 $vdev1 $vdev2 raidz2 $vdev3 $vdev4 $vdev5" \ > "mirror $vdev0 $vdev1 $vdev2 $vdev3 \ > raidz3 $vdev4 $vdev5 $vdev6 $vdev7" \ > > but on dilos(illumos based) they are tries are failed. > > question is: is it ZoL discussed specific and should be ported to illumos > based platforms or it is valid usecase and illumos missed it ? > > best regards, > -Igor > > > ------------------------------------------ > openzfs: openzfs-developer > Permalink: > https://openzfs.topicbox.com/groups/developer/Ta6cc976f1a8c8b29-M373f4e8e11e5803bd7277eb4 > Delivery options: > https://openzfs.topicbox.com/groups/developer/subscription > ------------------------------------------ openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Ta6cc976f1a8c8b29-M4b54276d9dde9f880084dc4e Delivery options: https://openzfs.topicbox.com/groups/developer/subscription
