On 2015-10-05 07:16, Lionel Bouton wrote:
Hi,

Le 04/10/2015 14:03, Lionel Bouton a écrit :
[...]
This focus on single reader RAID1 performance surprises me.

1/ AFAIK the kernel md RAID1 code behaves the same (last time I checked
you need 2 processes to read from 2 devices at once) and I've never seen
anyone arguing that the current md code is unstable.

To better illustrate my point.

According to Phoronix tests, BTRFS RAID-1 is even faster than md RAID1
most of the time.

http://www.phoronix.com/scan.php?page=article&item=btrfs_raid_mdadm&num=1

The only case where md RAID1 was noticeably faster is sequential reads
with FIO libaio.
Part of this is because BTRFS's built-in raid functionality is designed for COW workloads, whereas mdraid isn't. On top of that, I would be willing to bet that they were using the dup profile for metadata when testing mdraid (which is the default when using a single disk), which isn't a fair comparison because it stores more data in that case than the BTRFS raid.

If you do the same thing with ZFS, I'd expect that you would see similar results (although probably with a bigger difference between ZFS and mdraid). A much better comparison (which _will_ sway in mdraid's favor) would be running XFS or ext4 (or even JFS) on top of mdraid, as that is the regular usage of mdraid.

Furthermore, there is no sane reason to be running BTRFS on top of a single mdraid device, thus this was even less of a reasonable comparison. It is worth noting however, that using BTRFS raid1 on top of two md RAID0 devices is significantly faster than BTRFS RAID10.
So if you base your analysis on Phoronix tests when serving large files
to a few clients maybe md could perform better. In all other cases BTRFS
RAID1 seems to be a better place to start if you want performance.
According to the bad performance -> unstable logic, md would then be the
less stable RAID1 implementation which doesn't make sense to me.
No reasonable person should be basing their analysis on results from someone else's testing without replicating said results themselves, especially when those results are based on benchmarks and not real workloads. This goes double for Phoronix, as they are essentially paid to make whatever the newest technology on Linux is look good.
I'm not even saying that BTRFS performs better than md for most
real-world scenarios (these are only benchmarks), but that arguing that
BTRFS is not stable because it has performance issues still doesn't make
sense to me. Even synthetic benchmarks aren't enough to find the best
fit for real-world scenarios, so you could always find a very
restrictive situation where any filesystem, RAID implementation, volume
manager could look bad even the most robust ones.

Of course if BTRFS RAID1 was always slower than md RAID1 the logic might
make more sense. But clearly there were design decisions and performance
tuning in BTRFS that led to better or similar performance in several
scenarios, if the remaining scenarios don't get attention it may be
because they represent a niche (at least from the point of view of the
developers) not a lack of polishing.
Like I said above, a large part of this is probably because BTRFS raid was designed for COW workloads, and mdraid wasn't.


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to