That photo seems wrong... BTRFS has a stupid allocator, it always puts data on the disk with the most space in it. So I would expect that to look like
- device 1: A C
- device 2: A C
- device 3: B D
- device 4: B D
Basically chunk A gets allocated and all disks have the same space available, so it gets put onto the first two (I don't know the exact policy here). Then chunk B gets allocated so it goes on the two empty disks as they have the most space. Then repeat for C and D.
RAID1 with two disks is very simple. It will just put one chunk on each disk, there is no other option. With BTRFS the chunks may not be at the same offset on the disk (like they would with traditional RAID1 or I think ZFS) but one chunk will go on each.
in that is also has some striping functionality.
I think you are thinking about the RAID10 profile which is 2 copies of data striped across the available disks. IIUC RAID10 and RAID1 are identical with 2 disks (as each copy will only have 1 disk available to stripe on which is effectively no striping).
Will this fullfill my two requirements? If not do you have any other recommendations?
Yes, I think it will fulfill your requirements.
Given your setup of 2 disks and 2x replication I would probably go the same route. The other major option is just to use traditional RAID and ext4 (or your favourite other FS) on top.
- Pro: Simpler.
- Pro: More tested stack.
- Con: Less flexible. If you want to add a disk later and benefit from the software raid you will need to do conversions or copies.