A few days back, I posted about my issue on reddit in hopes of an easy fix.
Well, such no luck.
Today I finally had the time to dig deeper into LVM and found two guides [1] [2] outlining the process of migrating a thin pool’s metadata to a larger LV.
However, both guides failed me.
When I disable the LV pool (lvchange -an vg/pool
), I can not see the pool_tmeta in /dev/mapper.
And when I activate it, I can not copy it with thin_repair, because thin_repair doesn’t work with live data.
Also, I can not just activate tmeta in read-only mode (like the first guide suggests).
sudo lvchange -pr -ay vg/pool_tmeta
produces the message “Unable to change internal LV vg/pool_tmeta directly.”
Using thin_dump (as the second guide suggest) fails just like thin_repair, since it, too, can’t handle live data.
Since migrating failed, I thought about freeing up some space.
I decided to manually remove the vm-AppVM-volatile LV (which I mentioned on reddit), after reading here that it only holds swap+root changes.
However, I had to learn that this not actually frees up space in the right place.
If I understand the achitecture correctly now, it should look somewhat like this:
physical drive > volume group > logical volume pool > tmeta & tdata;
tdata > logical volumes (= VM-"block devices")
so removing the volatile LV only freed up some space inside tdata, but not in the logical volume pool, so that I could expand tmeta…
And now…any ideas how to proceed??
I’m trying to find a solution without resizing (shrinking) tdata.
Because I don’t know how to make sure there won’t occur any data loss.
My tdata is not 100% full, so theoretically there is unallocated space…but will the resize command respect this?!
I.e. will it recognize the free space and prioritize to cut it off, over the allocated space? Probably not, right!?
The idea of migrating the metadata still sounds the most promising to me. But I don’t know how to make it work.
And a bonus question:
How would I prevent this from happening again in the future?
I mean, I could probably just create a much larger tmeta. But that’s just going to delay this issue, right?!
PS. As previously mentioned on reddit, I’m an LVM noob. I spend the last couple of hours reading up on the topic, but my understanding is still very much limited.
Thanks to anyone willing to help!!