How to Use Logical Volume Manager (LVM) in Linux

How to Use Logical Volume Manager (LVM) in Linux

Linux Day 5: Understanding Logical Volume Manager

  • LVM (Logical Volume Manager) in Linux is a system for managing disk storage

  • LVM provides flexibility and control over how storage is allocated, resized, and used.

  • It allows you to combine multiple physical storage devices into a single logical unit, which can be resized dynamically and managed more easily than traditional partitions.

Key Concepts of LVM

  1. Physical Volume (PV): These are the actual storage devices or partitions (e.g., /dev/sda1, /dev/sdb) that are used in LVM. Physical volumes are initialized using the pvcreate command.

  2. Volume Group (VG): A volume group is created by combining one or more physical volumes. The volume group acts as a storage pool from which logical volumes are created. This can be dynamically resized by adding or removing physical volumes. VGs are created using the vgcreate command.

  3. Logical Volume (LV): Logical volumes are created from the storage available in a volume group. These are analogous to partitions but are much more flexible. You can resize them, create snapshots, or even strip across multiple physical devices. LVs are created using the lvcreate command.

  4. Physical Extents (PE): Physical volumes are divided into fixed-size chunks called physical extents. The size of these extents is determined when the volume group is created. Logical volumes are composed of these extents.

  5. Logical Extents (LE): Logical volumes are also divided into logical extents, which map one-to-one with physical extents.

Advantages of Using LVM

  • Flexible Resizing: You can increase or decrease the size of logical volumes dynamically without needing to unmount them.

  • Snapshots: LVM allows you to create snapshots of a logical volume, which is useful for backups and testing.

  • Pooling Storage: You can combine multiple physical disks or partitions into a single logical volume group, allowing for better utilization of disk space.

  • Redundancy and Striping: LVM can be combined with RAID to offer redundancy or striping for performance improvement.

Basic LVM Operations

1. Create Physical Volumes (PV)

To initialize a disk or partition as a physical volume:

 pvcreate /dev/sda1 /dev/sdb

2. Create a Volume Group (VG)

Combine physical volumes into a volume group:

 vgcreate my_volume_group /dev/sda1 /dev/sdb

3. Create a Logical Volume (LV)

Create a logical volume from the volume group:

lvcreate -L 20G -n my_logical_volume my_volume_group
  • -L 20G specifies the size of the logical volume.

  • -n my_logical_volume gives the logical volume a name.

4. Format the Logical Volume

Once the logical volume is created, format it with a file system (e.g., ext4):

 mkfs.ext4 /dev/my_volume_group/my_logical_volume

5. Mount the Logical Volume

Mount the logical volume to make it available for use:

  mount /dev/my_volume_group/my_logical_volume /mnt/my_mount_point

6. Resize a Logical Volume

If you need to resize a logical volume (increase its size), first resize the logical volume and then resize the filesystem:

  lvextend -L +5G /dev/my_volume_group/my_logical_volume
 resize2fs /dev/my_volume_group/my_logical_volume

7. Create a Snapshot

Create a snapshot of an existing logical volume:

 lvcreate -L 5G -s -n my_snapshot /dev/my_volume_group/my_logical_volume

8. Remove a Logical Volume

To delete a logical volume:

 lvremove /dev/my_volume_group/my_logical_volume

LVM Example Workflow :

Here’s a step-by-step example of how you might use LVM in practice:

  1. Initialize Physical Volumes:

      pvcreate /dev/sda1 /dev/sdb1
    
  2. Create a Volume Group:

      vgcreate vg1 /dev/sda1 /dev/sdb1
    
  3. Create a Logical Volume:

       lvcreate -L 50G -n lv1 vg1
    
  4. Format the Logical Volume:

       mkfs.ext4 /dev/vg1/lv1
    
  5. Mount the Logical Volume:

      mount /dev/vg1/lv1 /mnt/mydata
    
  6. Extend the Logical Volume:

    • Add a new physical volume (e.g., /dev/sdc1):

          pvcreate /dev/sdc1
         vgextend vg1 /dev/sdc1
      
    • Extend the logical volume and resize the filesystem:

         lvextend -L +20G /dev/vg1/lv1
        resize2fs /dev/vg1/lv1
      

Results :

Conclusion :

LVM in Linux offers a powerful and flexible approach to managing disk storage. It simplifies disk management by allowing dynamic resizing of logical volumes, snapshot capabilities, and more efficient use of storage resources. LVM makes it easier for system administrators to handle the growing storage needs of modern systems, enabling them to manage storage space without downtime or complex partitioning schemes.