Can you add a different size RAIDZ1 to an exists zpool?

For example, I have a 4x2TB RaidZ1 set up right now, but I would like to add only a 3X4TB RaidZ1 in addition to it. Is there a way to do this with zdevs/another Zpool?

Thanks


Solution 1:

While as already answered it is technically doable, beware that what you want to do is not a best practice as you end up with an unbalanced pool with sub optimal performance.

All disks in a pool should be of the same size (outside log and cache devices) and all striped vdevs should have the same organization.

You break both of these rules with mixing 2 TB and 4 TB drives, and striping a four disk raidz with a three disk one. You'll have to use zpool add -f option (-force) for the latter to succeed otherwise this message would be output and the add command would fail:

mismatched replication level: pool uses 4-way raidz and new vdev uses 3-way raidz

Solution 2:

Yes and Yes. You can add multiple VDEVs to a pool, they need not be similar. You can add multiple pools to a system, each consisting of whatever VDEVs.

Note: Once you've added a VDEV to a pool you can not remove it. The only things you can do are replace the disks in a VDEV and add/remove disks from a mirror. If you want to change the way the VDEVs are organized you have to create a whole new pool with the new arrangement then send/receive the data.