From: Zdenek Kabelac <zdenek.kabelac@gmail.com>
To: "Brian J. Murrell" <brian@interlinx.bc.ca>, linux-lvm@lists.linux.dev
Subject: Re: pvmove thin volume doesn't move
Date: Wed, 19 Nov 2025 17:34:13 +0100 [thread overview]
Message-ID: <8973228e-7ca9-48a3-9743-dbd30f28e5bc@gmail.com> (raw)
In-Reply-To: <f53f9eb8b6bcd3cc0da29817f9e683ea32c69e44.camel@interlinx.bc.ca>
Dne 19. 11. 25 v 16:46 Brian J. Murrell napsal(a):
> On Wed, 2025-11-19 at 09:07 -0500, Matthew Patton wrote:
>>
>> That is one hell of a wild and unsupported assumption.
>
> Yeah, I too was going to challenge that statement that I was a "lonely"
> outlier in the community of LVM users that would want to be able to
> move a thinly-provisioned LV from one PV to another, just as non-
> thinly-provisioned LVs can be.
>
>> Practically nobody , even seasoned sysadmins would know of this
>> deficiency.
>
> Indeed, I was skeptical that this was commonly understood as well.
> Well by anyone who had not tried it as I did only to find it is not
> supported.
>
> It does suck to have to choose between feature sets that are both very
> useful.
There is likely a major misunderstanding how thin-provisioning works with lvm2
(and ATM I'm not sure how we can improve our 'man lvmthin' to make this more
clear)
It's NOT lvm2 doing 'thin-provisioning' at lvm2 level.
lvm2 just drives a kernel target device - which you can think of like would
attach some 'magic box' that take space X a gives you back space Y with
some properties (just like when lvm2 controls 'raidX' target).
lvm2 does not see 'how the magic of provisioning' is made - it just consumes
it - thus lvm2 itself has no knowledge about the layout of thin-chunks - which
are often very small compared with lvm2 extent size granularity.
So lvm2 cannot move i.e. 64KiB thin chunk blocks - when the minimal pvmove
granularity if 4MiB.
And while I'm not saying the work cannot be done somehow - it's quite a major
feature request for thin-pool kernel target if that should be an online operation.
To add better example - it's like if you would want to 'extract' the file from
filesytem and let the rest of 'device' compact.
I guess everyone sticks to 'cp' command - which can be seen as equivalent of
'dd' command in our block device level...
Regards
Zdenek
next prev parent reply other threads:[~2025-11-19 16:34 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-16 13:27 pvmove thin volume doesn't move Brian J. Murrell
2025-11-17 15:01 ` Zdenek Kabelac
2025-11-17 23:30 ` Brian J. Murrell
2025-11-17 23:37 ` Zdenek Kabelac
2025-11-18 23:14 ` Brian J. Murrell
2025-11-19 9:16 ` Zdenek Kabelac
2025-11-19 14:07 ` Matthew Patton
2025-11-19 15:46 ` Brian J. Murrell
2025-11-19 16:34 ` Zdenek Kabelac [this message]
2025-11-19 16:06 ` Zdenek Kabelac
2025-11-19 16:36 ` Brian J. Murrell
2025-11-19 16:59 ` Zdenek Kabelac
2025-11-19 17:22 ` matthew patton
2025-11-19 17:31 ` Zdenek Kabelac
2025-11-19 17:38 ` Brian J. Murrell
2025-11-19 18:11 ` Zdenek Kabelac
2025-11-19 19:41 ` matthew patton
2025-11-19 20:38 ` Zdenek Kabelac
2025-11-19 16:10 ` David Teigland
2025-11-24 8:25 ` David Greaves
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=8973228e-7ca9-48a3-9743-dbd30f28e5bc@gmail.com \
--to=zdenek.kabelac@gmail.com \
--cc=brian@interlinx.bc.ca \
--cc=linux-lvm@lists.linux.dev \
/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.