I have to re-setup my RAID array and I'm faced with some different sized disks. I'd like to do raid 1 mirror w/ 2x 5TB and 1 8TB drive. I'm not sure the best way to do this.

Two options I thought of so far...

One, LVM the 2x 5TB and add that to an mdadm raid 1 w/ the other 8tb disk

Two, create two partitions on the 8tb and do two raid1 partitions and then combine those into an LVM.

At the end of the day, i'd like to mount only one partition. To make things even more complicated, I am looking at adding another disk into the mix which will likely not be RAID but just manually backed up via RSYNC. I'd like this disk to be presented along with the RAID1 as a single mount, so that means likely means I'll be using LVM to present the final raid.

My concern with option one is having an LVM added to a RAID1 /dev/md0 and then adding /dev/md0 + another disk to a DIFFERENT LVM.

I'm a little concerned to be doing major overhauls on my data and looking for input. To break things down, I'm mostly focusing on this question about doing a raid1 w/ 3 disks, two of which are small and one large. I can then focus on the next part.

Thank you and let me know if you require anything else.


I'm considering using ZFS now vs mdadm to learn a new tool. Something like use LVM to create a pool of the 2x 5TB and then a ZFS pool of the lvm + 8tb HDD. Would this be OK?> I have read ZFS wants direct raw access to the disks, and wonder if LVM will work in this situation.

2 Answers 2


It is not "recommended" to use ZFS like this, but it will work just fine. It is perfectly possible to use mdadm to join the two 5Tb drives together and then pass that device to ZFS.

There's a lot of advice out there about tuning ZFS for massive production systems which simply aren't relevant to the small-scale user who wants to use ZFS for its data integrity protection.

I assume you're on some recent linux disto, in which case:

mdadm --create /dev/md/twosmall /dev/disk/by-id/small1 /dev/disk/by-id/small2 --level=0 --raid-devices=2

will create you a 10Tb device at /dev/md/twosmall, and then:

zpool create -f eight mirror /dev/md/twosmall /dev/disk/by-id/large

will create a zfs pool from the combination.

Note the -f is there because otherwise the zpool create command will fail due to the different sizes of the devices. I'd recommend running it first without the -f to ensure that there are no other error messages.

twosmall and eight are the names I've randomly chosen for the mdadm raid and the zfs pool, and you should replace the /dev/disk/by-id names with the appropriate ones. I use the command ls -l /dev/disk/by-id | grep -v part | grep -v wwn | sort -k 11 to get a list of drives in my system sorted by the /dev/sd? shortcuts.

  • Your shortcut to find by-id only works for entire disks, if using a partition like I am, I used blkid then used the partuuid in /dev/disk/by-partuuid Apr 1, 2020 at 13:35

What I ended up doing, there are many ways to skin the cat in linux and whoever said you need to have 2 drives the same size was not being creative!

Note: ZFS likes to have entire disks, so you are loosing some of it's capabilitie(s) by using on partitions, do your research, but for my home server/data storage pool, I'm sure it's ok.

I used ZFS to create partitions like so:

1x4TB /dev/sda1
1x1TB /dev/sda2

1x4TB /dev/sdb1
1x1TB /dev/sdb2

1x4TB /dev/sdc1
1x4TB /dev/sdc2

Then created mirrors w/ ZFS like so:

/dev/sda1 /dev/sdc1 # 8TB
/dev/sdb1 /dev/sdc2 # 8TB
/dev/sda2 /dev/sdb2 # That leftover 1TB, might as well not waste it!

Finally I presented it all w/ MergeFS as a single mount point to the "OS/End User".

Note: I had tons of trouble with mhddfs don't even bother, use mergefs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .