Discussion:
[linux-lvm] LVM thin pool discard_max_bytes reports 0
Timur Alperovich
2014-08-07 03:48:47 UTC
Permalink
Hi there,

I was trying to understand why fstrim would fail on an LVM thin provisioned
volume and figured out that the discard_max_bytes is reported as 0 in
/sys/block/dm-N/queue/discard_max_bytes (I checked the device that
corresponded to the LVM pool that the volume is created within). The
discard options are also disabled for the thin volume itself. I'm observing
this issue on an Ubuntu 12.04 system, running kernel 3.8.0-32, and LVM2
2.02.98 backported to Ubuntu 12.04 (
https://launchpad.net/~timur-alperovich/+archive/ubuntu/ppa/+packages).

I did a small experiment where I created another LVM pool within the same
volume group and the discard value was set to 65536 for that device. I'm
not sure if it matters, but the system is an running on ESXi 5.0 host.
While I don't necessarily expect discard to propagate to the host, I was
hoping to reclaim the block in the thin pool itself.

Could anyone shed some light on why discard may be disabled on an LVM thin
pool device? I tried looking for any bugs specific to TRIM or discard
subsequent to 2.02.98, but could not find anything definitive.

Also, is there a way to enable discard without having to recreate the thin
pool?

Thank you,
Timur
Timur Alperovich
2014-08-07 05:03:13 UTC
Permalink
I have managed to answer my own questions.
Post by Timur Alperovich
Hi there,
I was trying to understand why fstrim would fail on an LVM thin
provisioned volume and figured out that the discard_max_bytes is reported
as 0 in /sys/block/dm-N/queue/discard_max_bytes (I checked the device that
corresponded to the LVM pool that the volume is created within). The
discard options are also disabled for the thin volume itself. I'm observing
this issue on an Ubuntu 12.04 system, running kernel 3.8.0-32, and LVM2
2.02.98 backported to Ubuntu 12.04 (
https://launchpad.net/~timur-alperovich/+archive/ubuntu/ppa/+packages).
I did a small experiment where I created another LVM pool within the same
volume group and the discard value was set to 65536 for that device. I'm
not sure if it matters, but the system is an running on ESXi 5.0 host.
While I don't necessarily expect discard to propagate to the host, I was
hoping to reclaim the block in the thin pool itself.
Could anyone shed some light on why discard may be disabled on an LVM thin
pool device? I tried looking for any bugs specific to TRIM or discard
subsequent to 2.02.98, but could not find anything definitive.
I noticed the following in the 2.02.98 changelog:
"Reinstate correct default to ignore discards for thin metadata from old
tools."

and this looks like the associated commit:
commit 109b3bb49b31d5fa7f6d0dd23345d703ab866ad6
Author: Zdenek Kabelac <***@redhat.com>
Date: Tue Aug 21 15:51:54 2012 +0200

thin: discard

The commit changes the default discard value to "ignore" and this can be
confirmed with lvs -o +discards
Post by Timur Alperovich
Also, is there a way to enable discard without having to recreate the thin
pool?
Yes, it can be changed with lvchange --discards passdown (being mindful of
https://bugzilla.redhat.com/show_bug.cgi?id=903411)
Post by Timur Alperovich
Thank you,
Timur
Cheers,
Timur
Zdenek Kabelac
2014-08-07 07:57:03 UTC
Permalink
Post by Timur Alperovich
I have managed to answer my own questions.
Hi there,
I was trying to understand why fstrim would fail on an LVM thin
provisioned volume and figured out that the discard_max_bytes is reported
as 0 in /sys/block/dm-N/queue/discard_max_bytes (I checked the device that
corresponded to the LVM pool that the volume is created within). The
discard options are also disabled for the thin volume itself. I'm
observing this issue on an Ubuntu 12.04 system, running kernel 3.8.0-32,
and LVM2 2.02.98 backported to Ubuntu 12.04
(https://launchpad.net/~timur-alperovich/+archive/ubuntu/ppa/+packages).
I did a small experiment where I created another LVM pool within the same
volume group and the discard value was set to 65536 for that device. I'm
not sure if it matters, but the system is an running on ESXi 5.0 host.
While I don't necessarily expect discard to propagate to the host, I was
hoping to reclaim the block in the thin pool itself.
Could anyone shed some light on why discard may be disabled on an LVM thin
pool device? I tried looking for any bugs specific to TRIM or discard
subsequent to 2.02.98, but could not find anything definitive.
"Reinstate correct default to ignore discards for thin metadata from old tools."
commit 109b3bb49b31d5fa7f6d0dd23345d703ab866ad6
Date: Tue Aug 21 15:51:54 2012 +0200
thin: discard
The commit changes the default discard value to "ignore" and this can be
confirmed with lvs -o +discards
Also, is there a way to enable discard without having to recreate the thin
pool?
Yes, it can be changed with lvchange --discards passdown (being mindful of
https://bugzilla.redhat.com/show_bug.cgi?id=903411)
Thank you,
Timur
Be sure your kernel has this commit:

09869de57ed2728ae3c619803932a86cb0e2c4f8

Zdenek

Loading...