LVM: actually kind of awesome
LVM, huh? Always seems like kind of an unnecessary complication.
Except, really it's kind of awesome.
I've done some hardware refreshing here at HA Towers lately. I replaced the virtual machine host box I built a couple of years back; it was running OK, but I keep wanting to play with new things and its hard 16GB RAM limit was starting to get too small. So I built a new VM host box, using a Core i7-4790 on an Asus H97M-E motherboard with 32GB of RAM. (I also upgraded the box I'm using to host my openQA instance - it's also now running an i7-4790, but only has 16GB of RAM, the most its motherboard can take).
The old vmhost had a 128GB RAID-1 array made up of two Samsung 840 Pro SSDs, but I was also starting to run out of space on that. So, the new one has a 240GB RAID-1 array of Intel 730 SSDs (I'd have gone for 850 Pros, but Samsung sure bumped the price).
So now I had two 128GB SSDs lying around the place. Turns out I also had another one lying around (as a spare for the old vmhost RAID array). Also, I was running out of space on my desktop, which had a single 128GB SSD (a Crucial C300, which is probably getting on a bit in years as well).
Hum! Seems like I could put all those drives to use...
So I shoved the three drives I now had spare into my desktop (took some creative SATA power cable juggling...) and built a RAID-5 array out of them. Now I have 256GB of somewhat fault-tolerant storage! But all my data's still sitting on the single 128GB SSD that's getting on a bit...
Fortunately, it was also all in LVM volumes. And hey, turns out LVM is pretty awesome. You can add a new drive - or, in this case, RAID set - to the volume group as a new PV, on the fly. You can then transfer your existing LVs from the existing PV (in my case, the old 128GB SSD) to the new PV (the RAID-5 array) - on the fly, and atomically (i.e. if it all goes tits-up half-way through, you're not screwed). You can then resize the LVs, on the fly. And thanks to resize2fs
, you can grow the ext4 filesystems that sit on the LVs...on the fly.
So I was able to migrate my entire running system from a single SSD to a newly-created RAID-5 array and resize it to take advantage of the extra space - without rebooting the system, or even unmounting a single partition.
That's pretty neat!
Now the old SSD can hang around as a spare.
(So far as /boot
goes, I created a partition for it on one of the new disks ahead of time and dd'ed the existing partition onto the new one, which preserves the UUID).
Comments