I noticed that Linux server distros are using LVM as default. What is so good about LVM, and when should I use it? Is there a GUI for managing LVM volumes like GParted, or is it just through the terminal? How is it different from RAID in using multiple drives for one volume?
LVM is just a way more flexible partition table. It gives you the possibility to grow partitions at a later date. You probably not think you can do that with MBR or GPT too. Well yes, but only when the spare room is adjacent to the partition you want to grow. With LVM you can grow partitions even if the free space is somewhere else on the disk.
So you can grow any disk ‘partition’ at any time as long as you have some free space in the group.
Another advantage is that you can encrypt logical volumes easily. Usually that’s supported when you install the OS.
You can also stack LVM on top of a software RAID, so you can create a mdadm from a disk partition of several disks and create a VG on that with LVs to spilt it into pieces.
I usually use LVM on every server. There is no need not to and gives you options for the future.
LVM is a bit more complicated than just using a normal partition, but it does add a lot of functionality. If you need to make an LVM volume bigger, you can just add another disk to the volume. You can also do RAID like stuff with it. Live resizing of volumes is doable too.
I think some LVM stuff can be done in Disks, but I generally just use the command line. Smarter people, are there graphical LVM utilities I don’t know about?
In addition to those things you can also thin provision lvm volumes which is helpful sometimes and it even has built in caching. It really is just a much more flexible way of using a disk, it is not an an analog for RAID, you would typically use a RAID volume with LVM on top.
Works the other way too, can do a LVM with RAID underneath. I currently use LVM raid 5 with XFS underneath. Though all the news around bcachefs has got me pretty excited to go that route and cut out the LVM middleware.
Something that LVM supports but ZFS and BTRFS don’t, is the ability to reduce your storage. (That is, to empty and remove a drive from the array, without having to completely destroy the storage array.) As a home user without sufficient storage to have complete duplicates of everything, I find this an important feature.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters NAS Network-Attached Storage RAID Redundant Array of Independent Disks for mass storage SSD Solid State Drive mass storage
3 acronyms in this thread; the most compressed thread commented on today has 13 acronyms.
[Thread #309 for this sub, first seen 28th Nov 2023, 23:05] [FAQ] [Full list] [Contact] [Source code]
Slightly off tangent, but if you are thinking you might need LVM features (other than disk encryption) then it is worth looking into filesystems that have most of the functionality built in, like btrfs or OpenZFS.
I’m torn a bit, because architecturally/conceptually the split that LVM does is the correct way: have a generic layer that can bundle multiple block devices to look like one and let any old filesystem work on top of that. It’s neat, it’s clean, it’s unix-y.
But then I see what ZFS (and btrfs, but I don’t use that personally) do while “breaking” that neat separation and it’s truly impressive. Sometimes tight integration between layers has serious advantages too and neat abstraction layers don’t work quite as well.
Care to elaborate about these ZFS features?
New Lemmy Post: Why and when should I use LVM? (https://lemmy.world/post/8856492)
Tagging: #SelfHosted(Replying in the OP of this thread (NOT THIS BOT!) will appear as a comment in the lemmy discussion.)
I am a FOSS bot. Check my README: https://github.com/db0/lemmy-tagginator/blob/main/README.md
can you stack btrfs on top of LVM? is there any advantage of doing so?
right now i have each docker volume mapped to a btrfs volume, so that i can snapshot the volume and send it away.
can i replicate the same thing with LVM and ext4 for example?
i’m mostly interested in the ssd as cache feature and the possibility of just adding more disks. Stuffs that are not possible in my current setup.
Opensuse can do this. Well put btrfs on LVM that is. I found out with my tumbleweed installs that if i use disk encryption and no LVM i do not have the option to boot from btrfs snapshots. Also with LUKS you need to type in your password twice when booting if you dont use LVM.