All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zdenek Kabelac <zkabelac@redhat.com>
To: lilofile <lilofile@aliyun.com>,
	device-mapper development <dm-devel@redhat.com>,
	Mike Snitzer <msnitzer@redhat.com>,
	Ondrej Kozina <okozina@redhat.com>,
	"Alasdair G. Kergon" <agk@redhat.com>
Subject: Re: reply: Thinly-Provisioned Logical Volumes
Date: Tue, 23 Sep 2014 16:07:34 +0200	[thread overview]
Message-ID: <54217EA6.1010408@redhat.com> (raw)
In-Reply-To: <7adc0384-473b-41da-8ae0-08ee4b436388@aliyun.com>

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@redhat.com>
> 发送时间:2014年9月22日(星期一) 15:02
> 收件人:lilofile <lilofile@aliyun.com>; device-mapper development <dm-devel@redhat.com>; Mike Snitzer <msnitzer@redhat.com>; Ondrej Kozina <okozina@redhat.com>; Alasdair G. Kergon <agk@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@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

  reply	other threads:[~2014-09-23 14:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-20 14:19 Thinly-Provisioned Logical Volumes lilofile
2014-09-22  7:02 ` Zdenek Kabelac
2014-09-22 12:38 ` Mike Snitzer
2014-09-23 13:51 ` reply: " lilofile
2014-09-23 14:07   ` Zdenek Kabelac [this message]
2014-09-24  2:11   ` lilofile
2014-09-24  7:02     ` Zdenek Kabelac
2014-09-24  8:37     ` Joe Thornber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54217EA6.1010408@redhat.com \
    --to=zkabelac@redhat.com \
    --cc=agk@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=lilofile@aliyun.com \
    --cc=msnitzer@redhat.com \
    --cc=okozina@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.