Question on Logical Volume Manager in Fedora

OS version: Fedora WS 34

LVM

This is not a Fedora-specific question, per say. But, I am going run some storage related performance intensive stuff in my Fedora desktop. Hence thought of checking with the gurus in this forum.

I would like to combine 3 NVME M.2 SSD drives (each drive 2TB in size) to create a Volume group using Linux’s Logical volume manager.

I have 2 questions on this

Question 1. As I understand, in LVM, Physical volumes can be created either from attached hard disks(/dev/sda) directly or hard disk partitions (/dev/sda1) or in case of enterprise environment, a SAN LUN.

HardDisk ----> Partitions ----> PVs ----> Volume Group -----> LV

Which is better (performance or maintenance wise), creating the PV directly from /dev/sda or creating the PV from a partition ?

Question 2. Performance wise, which file system is better when LVM is used or in general ? ext4 or btrfs or something else ?

3 Likes

The first question I will ask is: how will those 3 NVME drivers be combined?

Raid0, Raid1, Raid5?

Hi Sampson

I don’t want any fault tolerance.
I have 3 NVME drives with each one having 2TB in size.
I just want to combine these 3 drives and have 6 TB storage space in total (2TB X3 = 6TB)
So, I guess it is RAID 0.

https://www.phoronix.com/scan.php?page=article&item=linux-58-filesystems&num=1

In general, btrfs is not well known for fast performance. It is known for its rich features (bit rot detection, integrated multi device support - Raid0/Raid1 are considered stable, low cost snapshot, etc)

3 Likes

Using LVM the PV is the individual device/partition. I use the whole device unless I need some space for another partition, but that is individual choice.

There are effectively 3 layers in the construction.
The VG is created from the PVs, then the LV is created within the VG.

If you are not interested in fault tolerance then simply follow the man pages for vgcreate, pvcreate, and lvcreate and use all 3 devices as PVs within the same VG. Once you have the PVs assigned to the VG and create an LV then use the LV as a partition, create a filesystem by formatting, and mount it. Done and ready to use. The LVs are named and available within /dev/mapper or /dev/VG/LV for mounting.

My /home is on an LV that was created on a 6TB raid5 array (originally 3 3TB drives, since converted to raid6 by adding a 4th drive) for fault tolerance.

Just something to be aware of: As I understand it, btrfs and LVM don’t play well together since resizing an LV affects the way btrfs works. For that reason ext4 is recommended as the file system to use.

4 Likes