[dm-devel] reply: Thinly-Provisioned Logical Volumes

lilofile lilofile at aliyun.com
Wed Sep 24 02:11:00 UTC 2014


When I test thinly-provisioned logical volumes,I use dd if=/dev/zero of=/dev/mapper/mythinvolume count=1 bs=4k
I only write 4k data in mythinvolume.but In thin_map functions, I found there are really  4K data written,but I found more read IO,probably dozens of read io. who issue these IO? 
 


------------------------------------------------------------------
发件人:Zdenek Kabelac <zkabelac at redhat.com>
发送时间:2014年9月23日(星期二) 22:07
收件人:lilofile <lilofile at aliyun.com>; device-mapper development <dm-devel at redhat.com>; Mike Snitzer <msnitzer at redhat.com>; Ondrej Kozina <okozina at redhat.com>; Alasdair G. Kergon <agk at redhat.com>
主 题:Re: [dm-devel] reply: Thinly-Provisioned Logical Volumes

Dne 23.9.2014 v 15:51 lilofile napsal(a):
> when  I creating thin-pool with non-zeroing(-Zn),the ramdom performance can be greatly improved. what  is the difference in code  with non-zeroing and zeroing?
>
>

*Zeroing is set*

When you write to an unprovisioned chunk - certain amount of bytes in this 
chunk have known content (from your write BIO) and everything else gets zeroes
(that's zeroing on provisioning)

So when you read your thin device - you always get same content.
(since unprovisioned areas returns zero - and provisioned returns
what you have written - or zeros from unwritten part)
Of course zeroing i.e. 1MB chunks is quite slow compared with write of few 
single bytes on chunk provisioning.

*Zeroing is unset*

Unprovisioned data are still 'zeroes'

However when you first write to 'unprovisioned' chunk - then your data
are again in the place you wrote then - BUT remaining content is - what has 
been found on your disk in the provisioned chunk - so now when you read from 
'unwritten' areas in provisioned chunk - you read some random garbage left on 
your disk.
This may have i.e. security impact.


So you need to pick what suits your needs best.

For filesystem that keep map of written space - go with -Zn
for improved security stay with -Zy and be prepared to pay some price with 
initial provisioning - since repeated write has then regular performance.

Zdenek





> ------------------------------------------------------------------
> 发件人:Zdenek Kabelac <zkabelac at redhat.com>
> 发送时间:2014年9月22日(星期一) 15:02
> 收件人:lilofile <lilofile at aliyun.com>; device-mapper development <dm-devel at redhat.com>; Mike Snitzer <msnitzer at redhat.com>; Ondrej Kozina <okozina at redhat.com>; Alasdair G. Kergon <agk at redhat.com>
> 主 题:Re: [dm-devel] Thinly-Provisioned Logical Volumes
>
> Dne 20.9.2014 v 16:19 lilofile napsal(a):
>> when I test Thinly-Provisioned Logical Volumes(use device thinprovison target),I found the random write performance is very low. What factors will influence the random write performance of  thin volume. how can i quickly understand dm-bufio.c?
>>
>
>
> In general 2 major factors -
>
> 1. - size of chunk/(provisioned block)
>
> the bigger the block is - the better usually filesystem performs - since the
> all the aggregation logic and optimization of fs works.
>
> on the other - the bigger the block is - the less efficient snapshot you get
> (since much bigger chunk needs to be copied for i.e. single byte write)
>
>
> 2. - zeroing on provisionsing.
>
> when the block provisioned for the first time - it's (by default config) fully
> zeroes - so you don't get random disk content from unwritten areas.
>
> If you don't care about this - you could safely disable zeroing - number of
> filesystem usually already manages unwritten space well so if you use block
> device for ext4 so shouldn't normally be able to read unwritten areas.
>
>
> So please try i.e.  256KB chunk size with non-zeroing (-c 256 -Zn) when
> creating thin-pool  -  do you still fell you get poor performance ?
>
> Zdenek
>
>
> NOTE: you could change zeroing with existing pool, but not your thin-pool
> chunk size for now (though future version might be less restrictive here).
>
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>

--
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