[dm-devel] raid1 round-robin scheduler

konstantin kkv at clodo.ru
Wed Mar 11 12:44:48 UTC 2015



11.03.2015 13:55, Heinz Mauelshagen пишет:
>
> On 03/11/2015 08:22 AM, konstantin wrote:
>>
>> 10.03.2015 17:22, Heinz Mauelshagen wrote:
>>>
>>> On 03/10/2015 12:55 PM, konstantin wrote:
>>>>
>>>>
>>>> 19.02.2015 18:02, Heinz Mauelshagen пишет:
>>>>>
>>>>>
>>>>> dm-mirror (i.e. "lvcreate --type mirror" or respective "dmsetup create
>>>>> --table ...",
>>>>> which is not the recommended raid1 layout any more) provides read
>>>>> round-robin since long time.
>>>>> You'd need an ancient kernel not to have it supported.
>>>>>
>>>>> "raid1"/"raid10" (the recommended targets) , i.e. the md-raid based
>>>>> mappings accessible via the dm-raid target
>>>>> do read optimizations as well. Use "lvcreate --type raid1/raid10
>>>>> ..." or
>>>>> a respective dm table to set
>>>>> those up. The former ("raid1") is the default in modern distributions
>>>>> and configurable via setting
>>>>> 'mirror_segtype_default = "raid1"' in /etc/lvm/lvm.conf.
>>>>>
>>>>> Heinz
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 02/19/2015 08:23 AM, konstantin wrote:
>>>>>> What version of the kernel should I use to get a round-robin read
>>>>>> implementation on LV raid1?
>>>>>>
>>>>>
>>>>> --
>>>>> dm-devel mailing list
>>>>> dm-devel at redhat.com
>>>>> https://www.redhat.com/mailman/listinfo/dm-devel
>>>>
>>>> I'm create raid1 lv with "lvcreate --type raid1 -m1 -L5G -n r1lv r1vg"
>>>> on vg with two physical devices:
>>>>
>>>> lvs -a -o +devices
>>>>   LV              VG   Attr     LSize Pool Origin Data%  Move Log
>>>> Copy%  Convert Devices
>>>>   r1lv            r1vg rwi-a-m- 5.00g 100.00
>>>> r1lv_rimage_0(0),r1lv_rimage_1(0)
>>>>   [r1lv_rimage_0] r1vg iwi-aor- 5.00g           /dev/sda(1)
>>>>   [r1lv_rimage_1] r1vg iwi-aor- 5.00g           /dev/sdb(1)
>>>>   [r1lv_rmeta_0]  r1vg ewi-aor- 4.00m           /dev/sda(0)
>>>>   [r1lv_rmeta_1]  r1vg ewi-aor- 4.00m           /dev/sdb(0)
>>>>
>>>> but, reading is only one of the devices (i see nmon live disk
>>>> utilization). There are solutions to ensure reading from the two
>>>> devices?
>>>>
>>>
>>> How do you test?
>>> Do you read from multiple threads?
>>>
>>>
>>>
>>> --
>>> dm-devel mailing list
>>> dm-devel at redhat.com
>>> https://www.redhat.com/mailman/listinfo/dm-devel
>>
>> really .. I used dd to test in one thread,
>
> That's what I assumed.
>
>> but why when I read in one thread I can not read from two PV devices
>> at the same time?
>>
>
> Your dd example causes streaming io which is what spindles can handle best.
> Thus it would not make sense to split ios up.
> For such kind of single-threaded streaming io with sensefull block size
> a striped mapping would do better.
>
> Try running dd/fio/... multiple times in parallel and you should see the
> expected effect.
>
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel

my VG based on two PV remote connected by InfiniBand disk storages. I 
reach the limit of performance InfiniBand ports on my host and I would 
like to parallelize the load between the two raid1 legs (disk storages) 
that contain the same data.

-- 
WBR
Konstantin V. Krotov




More information about the dm-devel mailing list