Anyone an expert in Synology here?
Synology’s Hybrid Raid (SHR) is a funky little system, especially since it’s built on standard Linux tools.
What I’m wondering though, is how data is distributed when you change the disks in the system.
Imagine I have 2x1TB drives and 2x4TB drives in a system.
- First it creates a 4x1TB “chunk” which is essentially RAID5. (3TB available)
- Next it creates a 2x3TB chunk which acts like RAID1 (although internally may be calculated like a RAID5 parity.) (3TB available from this)
Now let’s say I replace those two 1TB drives with 4TBs (safely, preserving data, etc.), and tell SHR to expand to use the new drives. I can see a number of scenarios from this point:
- It mirrors the two new blocks into another 3TB chunk, giving me 9TB total. (3 from RAID5, 3 from first mirror pair, 3 from second mirror pair)
- It expands the 3TB mirror into a second RAID5 group, giving 12TB total. (3 initial plus 9 in the second group)
- It does the same thing and also rewrites the data on the (former) 3TB mirror pair to be striped across all four disks
- It expands the 3TB mirror to RAID5, *and merges it with the original 3TB RAID group, giving a single 12TB RAID5.
- Again it does the same thing but with rewriting of the data that was formerly just mirrored.
This isn’t likely to be a huge deal, but I’d like to know how it works under the covers.
Well, I’ve found some of the answer.
/volume1 is a single LV on a single VG - no surprise there. There are two PVs comprising it, each of which is a RAID5 group across an extended partition on the disks.
pv0 is /dev/sd[abcd]5 and pv1 is /dev/sd[abcd]6
Now what I find most interesting right now is that SHR supposedly required btrfs to operate - and yet, /volume01 is an ext4 filesystem.
Part of me would like to convert to btrfs, but I’d need a spare 10TB of storage just to back up to, before starting down that odyssey.
More digging, more questions.
I’m not sure why SHR would require any file system, it’s an abstraction that sits below that layer.