Bill Davidsen wrote:
One of the advantages of mirroring is that if there is heavy read load when one drive is busy there is another copy of the data on the other drive(s). But doing 1MB reads on the mirrored device did not show that the kernel took advantage of this in any way. In fact, it looks as if all the reads are going to the first device, even with multiple processes running. Does the md code now set "write-mostly" by default and only go to the redundant drives if the first fails?
No, it doesn't use write-mostly by default. The way raid1 read balancing works (in recent kernels) is this:
- sequential reads continue to go to the first disk
- for non-sequential reads, the code tries to pick the disk whose head is "closest" to the sector that needs to be read
So even if the reads aren't exactly sequential, you probably still end up reading from the first disk most of the time. I imagine with a more random read pattern you'd see the second disk getting used.