Hmm, people still look at my ages-old post about LVM all the time.
So, just a note from end-2013:
The mirror consistency stuff is not your worst nightmare anymore.
Barriers work these days, and I think it’s more important to concentrate on EXT4 Settings like “block_validity”. The chance of losing data due to a lvm mirror issue is much lower than the chance of unnoticed data loss in ext4 🙂
My LVM pain points, as of today, would be:
lvm.conf is a huge patchwork of added features, there should be a LVM maintainer that oversees structure as features are added.
Instead it’s like a castle with a lot of woodden gangways (mirrorlog devices) and stairs (thin provisioning) on the outside and no windows (read up on the “fsck” utility for thin pools, TRY what happens if it runs full and recover from it)
Some features require pre-ahead planning and the way it’s now does not support that.
Reporting is still as bad as it used to be.
I’d be happy for someone to show me how he splits out a snapshot + pv to a backup host, brings it back AND has a fast resync.
(Note, the PV uuid wouldn’t change in this. So, if it doesn’t work, it hints at design flaws)
Those pieces I worry about. And really, the way the project is adding features without specs, documentation and (imho) oversight makes it looks like some caricature of a volume manager.
How I feel about that:
Just look, I have added the feature the others were talking about.
And look at THIS: I now have an arm on my ass so I can scratch between my shoulders, too!
Example: LVM2 did away with a per-LV header as classic LVM had, so you don’t have a ressource area to debug with, and don’t support BBR or per-LV mirror write consistency via the LV header. But instead they added an -optional- feature that wipes the start of an LV. So, if you lose config and rebuild a LV manually on the exact same sectors, but newer LVM config, it’ll wipe out the first meg of the LV.
A volume manager that after the design introduces kind of a LV format change, and make it WIPE DISK BLOCKS. I don’t care how smart you think you are: Whoever came up with this should get the old Mitnick jail sentence: Forbidden to use a computer.
The bad layering of PV/LV/VG I also still care about.
Storage management in the sense I’m used to is something I still don’t touch with LVM.
On the other hand I’m itching daily to actually make prod use of those exact modern features 🙂
But basically I just use it to carve out volumes, but instead of pvmove I might use more modern, powerful tools like blocksync/lvmsync and work with new VGs.
Also, just to be clear:
I’m not saying “don’t use LVM” – I have it on almost any system and hate those without it. I’m just saying it’s not delivering the quality for consistently successful datacenter usage. If you set up your laptop with a 1TB root volume and no LVM and then have some disk-related issue. Well, I’ll probably laugh and get you some Schnaps.
That being said, I wanted to write about more modern software that is actually fun to look at, next post 🙂