Re: pvmove thin volume doesn't move
Zdenek Kabelac <[email protected]> Wed, 19 Nov 2025 17:34:13 +0100
| Newsgroups | dev.linux.lists.linux-lvm |
|---|---|
| Message-ID | <[email protected]> |
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