Skip to main content

Linux LVM is a disaster

I just got done converting my last LVM enabled system to non-LVM. Not by choice, mind you, but because Linux LVM is a disaster and creates disasters. Every system I've ever deployed Linux LVM to (servers mostly because Ubuntu Server LTS edition "recommends" it), I've encountered nothing but problems. I've got a decade of experience deploying and running Linux servers so it's not a competence issue. LVM is a technology that simply isn't ready for real production environments. LVM also lacks mature community support when things go sideways. RedHat created and barely maintains LVM, which is all I need to know since anything RedHat touches usually winds up a convoluted mess.

What is Linux LVM (that's lvm2 to the initiated)? In short, LVM is a set of user and kernel space modules that give greater control over partitioned space. To that end, it works pretty well. You can partially assign partition space on a drive and leave the extra storage available for expanding bits of /home, /var, and / as needed. We've all wished for the ability to extend partitions whenever we want so what's not to like about that?

Where LVM goes completely and horribly wrong is when (not IF but WHEN!) grub + kernel updates fail. You're left with an unrecoverable system. THAT is unacceptable. A modern OS should never be allowed to destroy itself through a kernel update. It should detect an impending failure and revert and notify, not leave the system in an unbootable state. grub updates should never fail. Kernel updates should never fail. Simple as that.

Modern tools (GUI and command-line) are also only barely cognizant of Linux LVM. "Oh yeah, I guess that's a thing" is the clear and prevailing attitude. Especially recovery tools. When you have an unbootable system with LVM, half of the tools out there don't work. The tools (and developers of those tools) expect a native system and can't comprehend why you would ever want anything but that. All of this is entirely unacceptable.

And, of course, the ever-lovin' so-called Linux community is so equally helpful. Google searches turn up jack squat and what you do find is half-guesses as to what could be wrong that don't pan out. That's because no one in their right mind actually deploys LVM because of a little thing called sanity.

So RedHat needs to get their act together, work with grub, kernel, and recovery software teams and figure out the mess they created in a way that doesn't wind up with broken systems. Partitioning is so critical to storage that it should never fail under any circumstance whatsoever. Either LVM is part of the ecosystem or it isn't. And if it isn't, then Canonical needs to get their act together and give LVM the boot (har har) from their installers because, as it currently stands, it is broken technology.

This rant comes from losing yet another system yesterday due to LVM partitioning and having to reimage it (without LVM, of course) and waste 9 hours of my time to get the system back up and running. Every system I maintain that uses native partitioning has never failed - or, if it has, I've been able to recover using various tools. LVM on the other hand is a game of Russian Roulette and not one single time has recovery of any given LVM enabled system been successful when a critical update fails. The concept is nice, but it has no business being in production, enterprise environments. This is especially true when today I can spin up unlimited new instances of whole fully mounted Linux systems in a virtual environment in under a minute and get gobs of storage at my disposal. I don't need to be wasting my time wrestling with broken-by-design yesteryear software like LVM. I'm fed up and done with LVM. Never again will it touch my systems unless it becomes the DEFAULT "deployed everywhere" solution because only then would the necessary tools and support follow.