RAID10 grow possible?

  • Been working towards growing my file system by replacing my current 2TB drives with 3TB drives. My setup is 4x2TB drives in RAID10 (2 mirror: /dev/md1 and /dev/md2, striped together for /dev/md3) managed by OMV 4.1.22-1. I wiped each 3TB drive, then replaced one at a time and recovered md1 and md2 with the new drives. Both show up clean, with the same space. I couldn't grow the mirrored arrays via the gui, so I ran "mdadm --grow /dev/md1 --size=max" for each mirror, and now they show the newer size of 2.73TB each, in a clean state. Data still in tact, working fine. The striped array md3 isn't reflecting the larger size. I'm not even sure this is possible at this point as I just found this page stating that RAID10 isn't growable. Hope I didn't just back myself into a corner. Any way to get this working?


    Another thought is I go back to the 4x2TB setup with the RAID10, how I had it, and use 2 of the 3TB for a RAID1 array and move my shows over to that. I'd like to not lose the >3TB of data in the process if possible. Now I'm not even sure I can shrink md1 and md2 to go back to the 2TB drives. Any help is appreciated!

  • If I recall, the version of OMV I created the RAID with (OMV 2 I think?) didn't have a RAID10 option and instead had to be created by striping 2 mirrors (RAID1+0, which is RAID10). That page also states the following regarding RAID10, so I'm assuming this is still the case?

    • RAID1+0 is possible by stripping two mirrors. The create window should display both mirrors if they do not have any filesystem signatures yet.
  • So what you want to do us growing a Raid0. It is possible, but not exactly secure.

    Yes, that sounds right. I've done both mirrors so the RAID0 is what's left. Do you mean not secure as in possible data loss? How would I try and grow it? Also, any way to try and mitigate data loss (i.e. remove one drive out of each RAID1 so maybe I can recover if something goes wrong)?


    I still have the old 2TB drives which would also still have data, so hopefully a last effort to recover.

  • The easiest way is most likely to change the drives and configure, from scratch, whatever RAID you feel that you deserve. And then restore the data from backups.


    Done!


    Also a very good way to test your backup system.

    Be smart - be lazy. Clone your rootfs. This help is Grateful™.
    OMV 4: 9 x Odroid HC2 + 1 x Odroid HC1 + 1 x Raspberry Pi 4

  • That page also states the following regarding RAID10, so I'm assuming this is still the case?

    • RAID1+0 is possible by stripping two mirrors. The create window should display both mirrors if they do not have any filesystem signatures yet

    These are two different things. RAID10 is something different than what you have: RAID1+0. As such recipes to deal with the former don't work with the latter.


    IMO your setup makes no sense at all since 'striped mirrors' (be it RAID10 or RAID1+0) are for installations that feel the need for redundancy and really need high random IO performance (to run databases or virtual machines on top of such a storage). If this -- high random IO performance -- is your goal with 4 disks you would setup two RAID10 made out of 2 disks each (yes, that's possible with mdraid) and then stripe them together (in theory twice the random IO performance than you get now).


    But RAID1 and RAID10 both suck wrt data integrity so if you really need redundancy choosing another attempt which allows for higher data integrity should be more suitable. @Adoby is right: fixing the setup and then restoring from backup is the best idea.


    Some more thoughts on RAID1 and RAID10 with two disks each: Home NAS build, FS info

  • This one here works for raid 0 too, but use the backup flag!
    https://raid.wiki.kernel.org/index.php/Growing
    It may indeed make sensce to remove two drives out of the raid 1, so you can use them to rebuild a raid 1,0. On the other hand, growing will create a lot of disk usage and so the propability of failure, in this case without redundancy, therefore grows too.

    Thanks. I read through it but still unsure as to how I can grow the RAID 0 portion. Just get "mdadm: Cannot set device size in this type of array."



    The easiest way is most likely to change the drives and configure, from scratch, whatever RAID you feel that you deserve. And then restore the data from backups.


    Done!


    Also a very good way to test your backup system.

    These are two different things. RAID10 is something different than what you have: RAID1+0. As such recipes to deal with the former don't work with the latter.
    IMO your setup makes no sense at all since 'striped mirrors' (be it RAID10 or RAID1+0) are for installations that feel the need for redundancy and really need high random IO performance (to run databases or virtual machines on top of such a storage). If this -- high random IO performance -- is your goal with 4 disks you would setup two RAID10 made out of 2 disks each (yes, that's possible with mdraid) and then stripe them together (in theory twice the random IO performance than you get now).


    But RAID1 and RAID10 both suck wrt data integrity so if you really need redundancy choosing another attempt which allows for higher data integrity should be more suitable. @Adoby is right: fixing the setup and then restoring from backup is the best idea.


    Some more thoughts on RAID1 and RAID10 with two disks each: Home NAS build, FS info

    It might make sense to revisit my setup. I guess I'm not understanding the difference between RAID 10 and 1+0 as they used to be considered the same, but my understanding might be outdated based on searches. My RAID "1+0" is "a small 4-drive RAID 1+0, A&B are mirrored, C&D are mirrored, and then A&C + B&D are striped in a RAID 0.", where a more advanced RAID "10" setup "data is striped across all 4 disks like A -> B -> C -> D and then the parity is striped B -> C -> D -> A"? When I first set this up (2012 with OMV 0.3, I think), RAID "10" wasn't an option and the way to build it was striping 2 mirrored arrays. My drives were 2TB Green 5400rpm so I wanted to get more read throughput with better tolerance for possible drive failure, and that was better than a RAID 0+1. I've been happy with the performance over the years.


    Most of my data (>3TB worth) is TV/Movies which I don't need to backup. I backup my personal pics and videos and documents, so I wouldn't be crushed if I lost the array but that doesn't mean I'd want to destroy the data and rebuild if I didn't have to. I suppose I could use the old 2TB drives in another array and create something new with the 4x3TB drives and copy that data over. I was just hoping for a more straight forward approach of growing the existing RAID.

  • Hi, I'm also looking for possibility to grow my Raid10 device. I have crated the Raid10 device in GUI (OMV 5) but it does not seems to be possible in the gui. I use this setup for both virtual macjines and databases so speed is needed.



    As for the difference between Raid10 and Raid 1+0, I can't see any difference either. There are only two ways to write it - what I know.
    On the other hand, there is a slight difference between Raid10 and Raid01, but it is something completely different. If anyone knows anything else, it would be fun to know.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!