[dm-devel] Queuing of dm-raid1 resyncs to the same underlying block devices

Heinz Mauelshagen heinzm at redhat.com
Wed Sep 30 14:00:52 UTC 2015


No, lvm/dm-raid does not queue synchroniation.

If multiple raid1/4/5/6/10 LVs have their image LVs share the same
PV, resyncs will happen in parallel on all respective RAID LVs if requested.

E.g. (see Cpy%Sync field of the created 2 raid1 LVs):
   LV            VG   Attr       LSize   SSize SRes Cpy%Sync Type #Cpy 
#Str Stripe SSize PE Ranges
   r1            r    Rwi-a-r--- 512.00m   128      18.75 raid1     2    
2  0.03m   128 r1_rimage_0:0-127 r1_rimage_1:0-127
   [r1_rimage_0] r    iwi-aor--- 512.00m   128 linear         1     0m   
128 /dev/sdf:1-128
   [r1_rimage_1] r    iwi-aor--- 512.00m   128 linear         1     0m   
128 /dev/sdg:1-128
   [r1_rmeta_0]  r    ewi-aor---   4.00m     1 linear         1     
0m     1 /dev/sdf:0-0
   [r1_rmeta_1]  r    ewi-aor---   4.00m     1 linear         1     
0m     1 /dev/sdg:0-0
   r2            r    Rwi-a-r--- 512.00m   128      31.25 raid1     2    
2  0.03m   128 r2_rimage_0:0-127 r2_rimage_1:0-127
   [r2_rimage_0] r    iwi-aor--- 512.00m   128 linear         1     0m   
128 /dev/sdf:130-257
   [r2_rimage_1] r    iwi-aor--- 512.00m   128 linear         1     0m   
128 /dev/sdg:130-257
   [r2_rmeta_0]  r    ewi-aor---   4.00m     1 linear         1     
0m     1 /dev/sdf:129-129
   [r2_rmeta_1]  r    ewi-aor---   4.00m     1 linear         1     
0m     1 /dev/sdg:129-129


Though there's no automatic queueing of (initial) resynchronizations,
you can create the 2 LVs sharing the same PVs with the "--nosync" 
option, thus preventing
immediate resynchronization and then "lvchange --syncaction repair 
r-r1", wait for it to
finish and "lvchange --syncaction repair r-r2"  afterwards.

Or create all but 1 LV with "--nosync", wait for the one to finish 
before using lvchange
to start resynchronization.

BTW:
When you create a raid1/4/5/6/10 LVs _and_ never read what you have not 
written,
"--nosync" can be used anyway in order to avoid the initial 
resynchronization load
on the devices. Any data written in that case will update all 
mirrors/raid redundancy data.


Heinz


On 09/30/2015 03:22 PM, Brassow Jonathan wrote:
> I don’t believe it does.  dm-raid does use the same RAID kernel personalities as MD though, so I would think that it could be added.  I’ll check with Heinz and see if he knows.
>
>   brassow
>
>> On Sep 26, 2015, at 10:49 AM, Richard Davies <richard at arachsys.com> wrote:
>>
>> Hi,
>>
>> Does dm-raid queue resyncs of multiple dm-raid1 arrays, if the underlying
>> block devices are the same?
>>
>> Linux md has this feature, e.g.:
>>
>> # cat /proc/mdstat
>> Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
>> md1 : active raid1 sda2[2] sdb2[1]
>>       943202240 blocks [2/1] [_U]
>>       [====>................]  recovery = 21.9% (207167744/943202240)
>>       finish=20290.8min speed=603K/sec
>>       bitmap: 1/8 pages [4KB], 65536KB chunk
>>
>> md0 : active raid1 sda1[2] sdb1[1]
>>       67108736 blocks [2/1] [_U]
>>         resync=DELAYED
>>       bitmap: 1/1 pages [4KB], 65536KB chunk
>>
>>
>> After some time investigating, I can't find it in dm-raid.
>>
>> Please can someone tell me if this is implemented or not?
>>
>> If it is implemented, where should I look to see it happening?
>>
>> Thanks,
>>
>> Richard.
>>
>> --
>> dm-devel mailing list
>> dm-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/dm-devel




More information about the dm-devel mailing list