[lvm-devel] [PATCH] Fix RHBZ 754198 (multiple dmeventd snapshot extensions)
Zdenek Kabelac
zkabelac at redhat.com
Fri Nov 18 17:14:35 UTC 2011
Dne 18.11.2011 10:52, Petr Rockai napsal(a):
> Hi,
>
> Alasdair G Kergon<agk at redhat.com> writes:
>
>> (new_size = old_size + amount_to_extend_by)>
>> old_size_in_use + ((100 + autoextend_percent) - autoextend_threshold) / (100+autoextend_percent) * (old_size + amount_to_extend_by)
>>
>> IOW we scale the parameters based on the amount currently in use.
>>
>> For example:
>>
>> snapshot_autoextend_threshold = 70
>> snapshot_autoextend_percent = 20
>
> [snip] This is all great, but completely besides the point. So let me
> stress the point once more:
>
> - snapshot DSO monitors a snapshot, getting its status line every 10
> seconds or so
> - the DSO has *no access* to the policy variables, because it does not
> (and can not) read lvm.conf
The formula above should be placed inside lvresize (_adjust_policy_params()).
It's advantage was to resize in a way - the it should avoid the need of
quick subsequent (i.e. more then autoextend_percent - so if you fill
snapshot very fast, there should be some reserve to catch up within
next 10s check.
> The problem:
>
> - to check whether anything needs to happen, lvextend needs to be
> executed (this is *expensive*, even if it decides no action needs to
> happen)
>
> - if nothing needed to happen, we don't need to call lvextend until the
> utilisation has grown; *but* we don't know whether anything happened
> (without ENO_ACTION_NEEDED that is)
But you still call dmeventd_lvm2_run() - which is the most expensive
operation here - so I do not exactly see what do you actually safe here
i.e. if the resize will not happen because according to policy it's not
yet needed - then I do not see any difference ?
Zdenek
More information about the lvm-devel
mailing list