Adding new drive of different size, how to expand pool size and mirror?

Hi all - please forgive me if my question has an obvious answer, I’ve looked through old forum posts but I’m still none the wiser. I’ve been running a system for a while with 2x1TB drives and am now trying to expand my system with another 2 TB drive. Setting things up when the drives were all the same size were easy enough but I’ve seen posts urging people not to mix drive sizes in the same VDEV.

The result I’m aiming for is something along the lines of a 2x2TB mirror, which I guess would mean one VDEV with 2x1TB drives striped + 1x2TB drive striped, and then somehow mirroring those which would leave me with 1 drives worth of redundancy. My questions regarding this are the following:

  1. I’ve removed the mirroring from my existing VDEV and changed it to striped, but the pool for those drives is still showing 1TB of space. For this to work I would need that pool to be 2x1TB, so how do I go about expanding it to the size of the entire VDEV without losing data?
  2. If I’ve understood things correctly I should set up two VDEVs (2x1TB + 1x2TB) with one pool each, and then mirror the pools. Is this correct? If not, how do I best utilize this combination of drives?

Thanks in advance!

That is simply not possible with ZFS. All drives in a single vdev are treated as if they had the size of the smallest one.

Redundancy is managed at the vdev level, you cannot mirror pools.

All vdevs in a single pool are striped, there is no striped or concatenated vdev.

You can add a mirror 2x2T vdev to the existing pool but that would require two new drives.

3 Likes