[linux-lvm] Thin snapshot caching behaviour

Lars Ellenberg lars.ellenberg at linbit.com
Wed Jun 4 00:19:14 UTC 2014


On Tue, Jun 03, 2014 at 03:22:09PM +0000, dw+linux-lvm at hmmz.org wrote:
> Hi there,
> 
> While playing with LVM thin provisioning, I've noticed that snapshots
> seem to have different caching semantics compared to their original thin
> LV.
> 
> I've hunted everywhere for documentation that describes this difference,
> or even an indication of on what layer it occurs, but I can find none.
> Perhaps someone here could shed some light?
> 
> Thin volume behaves like a regular drive:
> 
>     # echo 1 > /proc/sys/vm/drop_caches
> 
>     # dd if=/dev/vg0/tv0 of=/dev/null bs=64k count=1000
>     65536000 bytes (66 MB) copied, 0.946389 s, 69.2 MB/s
> 
>     # dd if=/dev/vg0/tv0 of=/dev/null bs=64k count=1000
>     65536000 bytes (66 MB) copied, 0.00810655 s, 8.1 GB/s
> 
> Create activated snapshot:
> 
>     # lvcreate -kn -s -n tv0s /dev/vg0/tv0
>       Logical volume "tv0s" created
> 
>     # dd if=/dev/vg0/tv0s of=/dev/null bs=64k count=1000
>     65536000 bytes (66 MB) copied, 1.00061 s, 65.5 MB/s
> 
> Second dd shows no/very little speedup:
> 
>     # time dd if=/dev/vg0/tv0s of=/dev/null bs=64k count=1000
>     65536000 bytes (66 MB) copied, 0.921402 s, 71.1 MB/s

# echo 3 > /proc/sys/vm/drop_caches
# free -m
# exec 77< /dev/vg0/tv0s
# time dd if=/dev/vg0/tv0s of=/dev/null bs=64k count=1000
# free -m
# time dd if=/dev/vg0/tv0s of=/dev/null bs=64k count=1000
# free -m
# exec 77<&-
# free -m


Background:
linux "forgets" the buffer cache for a block device,
if the last opener is gone (no one has it open anymore).

The "main" device has some internal references,
or is mounted... someone has it open, anyways.

At least that's my best guess as to what you are seeing there.

-- 
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com




More information about the linux-lvm mailing list