diff options
author | Guoqing Jiang <gqjiang@suse.com> | 2019-06-14 15:41:11 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-06-15 01:37:35 -0600 |
commit | e9eeba28a1e01a55b49cdcf9c7a346d2aaa0aa7d (patch) | |
tree | a11ec9c1ea3aa524798929a38158667a81218c3e /block | |
parent | c7afa8034b09bc2bb664d86de7db34466401f352 (diff) | |
download | linux-stable-e9eeba28a1e01a55b49cdcf9c7a346d2aaa0aa7d.tar.gz linux-stable-e9eeba28a1e01a55b49cdcf9c7a346d2aaa0aa7d.tar.bz2 linux-stable-e9eeba28a1e01a55b49cdcf9c7a346d2aaa0aa7d.zip |
md/raid10: read balance chooses idlest disk for SSD
Andy reported that raid10 array with SSD disks has poor
read performance. Compared with raid1, RAID-1 can be 3x
faster than RAID-10 sometimes [1].
The thing is that raid10 chooses the low distance disk
for read request, however, the approach doesn't work
well for SSD device since it doesn't have spindle like
HDD, we should just read from the SSD which has less
pending IO like commit 9dedf60313fa4 ("md/raid1: read
balance chooses idlest disk for SSD").
So this commit selects the idlest SSD disk for read if
array has none rotational disk, otherwise, read_balance
uses the previous distance priority algorithm. With the
change, the performance of raid10 gets increased largely
per Andy's test [2].
[1]. https://marc.info/?l=linux-raid&m=155915890004761&w=2
[2]. https://marc.info/?l=linux-raid&m=155990654223786&w=2
Tested-by: Andy Smith <andy@strugglers.net>
Signed-off-by: Guoqing Jiang <gqjiang@suse.com>
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions