Linux System Administration

0 of 85 lessons complete (0%)

Managing Unix File Systems

Logical Volumes

You don’t have access to this lesson

Please register or sign in to access the course content.

Logical Volume Management (LVM) is a system in Linux that allows for flexible management of disk space by abstracting physical storage into logical volumes. It makes it easier to manage disk space, allowing resizing, creating, and deleting partitions without worrying about the underlying hardware configuration.

Key Concepts of LVM

  1. Physical Volume (PV):
    • A Physical Volume is a physical storage device (like a hard drive or a partition) used in LVM. You can create one using an entire disk or a specific partition.
    • Example: /dev/sda1, /dev/sdb, etc.
  2. Volume Group (VG):
    • A Volume Group is a pool of storage that combines multiple physical volumes. It acts as a container where logical volumes are created. VGs can span across multiple physical volumes, making it easier to expand the storage.
    • Example: vg01
  3. Logical Volume (LV):
    • A Logical Volume is the partition created from the volume group. It acts as the usable space for file systems and can be resized dynamically.
    • Example: lv_data, lv_home
  4. Physical Extents (PE):
    • Physical Extents are the smallest units of space (typically 4MB or 32MB) that the physical volumes are divided into. These extents are then assigned to logical volumes.

Benefits of LVM

  • Flexibility: You can resize volumes easily, adding or removing storage without worrying about disk boundaries.
  • Snapshots: You can take snapshots of logical volumes for backups or testing purposes.
  • Efficient Space Utilization: Multiple physical devices can be combined into a single volume group, making space management much easier.
  • Dynamic Resize: Logical volumes can be resized dynamically without the need for repartitioning the disk.

Steps to Create and Manage Logical Volumes

1. Creating Physical Volumes (PVs)

The first step is to initialize physical volumes, which are required to create a volume group.

Initialize Physical Volumes:
Use the pvcreate command to initialize disks or partitions as physical volumes.

sudo pvcreate /dev/sdb /dev/sdc

View Physical Volumes:
You can check the list of physical volumes using the pvdisplay command.

sudo pvdisplay

2. Creating a Volume Group (VG)

Once you have initialized physical volumes, you can create a volume group.

Create a Volume Group:
Use the vgcreate command to create a volume group by specifying the name of the group and the physical volumes you want to include.

sudo vgcreate my_volume_group /dev/sdb /dev/sdc

View Volume Groups:
Use the vgdisplay command to list the available volume groups.

sudo vgdisplay

3. Creating Logical Volumes (LV)

After creating the volume group, you can create logical volumes from it.

Create a Logical Volume:

Use the lvcreate command to create a logical volume within the volume group. You need to specify the size of the logical volume and the name.

sudo lvcreate -L 10G -n my_logical_volume my_volume_group

This command creates a logical volume named my_logical_volume of size 10GB within the volume group my_volume_group.

View Logical Volumes: Use the lvdisplay command to list the logical volumes.

sudo lvdisplay

4. Formatting and Mounting the Logical Volume

Now that you have created a logical volume, you can format it with a file system and mount it.

Format the Logical Volume:
Use the mkfs command to format the logical volume with a file system (e.g., ext4).

sudo mkfs.ext4 /dev/my_volume_group/my_logical_volume

Create a Mount Point:
Create a directory to mount the logical volume.

sudo mkdir /mnt/mydata

Mount the Logical Volume:
Mount the logical volume to the mount point.

sudo mount /dev/my_volume_group/my_logical_volume /mnt/mydata

Check Mounted File Systems:
Use the df -h command to verify that the logical volume is mounted correctly.

df -h

5. Resizing Logical Volumes

LVM allows you to resize logical volumes dynamically.

Extend a Logical Volume
To extend a logical volume (and thus increase the file system size), use the lvextend command. After extending, you may need to resize the file system using resize2fs.

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

Reduce a Logical Volume:
Reducing a logical volume requires unmounting the volume first, resizing the file system, and then reducing the logical volume size.

sudo umount /mnt/mydata sudo e2fsck -f /dev/my_volume_group/my_logical_volume sudo resize2fs /dev/my_volume_group/my_logical_volume 8G sudo lvreduce -L 8G /dev/my_volume_group/my_logical_volume sudo mount /dev/my_volume_group/my_logical_volume /mnt/mydata

6. Removing Logical Volumes, Volume Groups, and Physical Volumes

Unmount the Logical Volume:

sudo umount /mnt/mydata

Remove the Logical Volume:

sudo lvremove /dev/my_volume_group/my_logical_volume

Remove the Volume Group:

sudo vgremove my_volume_group

Remove the Physical Volumes:

sudo pvremove /dev/sdb /dev/sdc

Lab Exercise: Working with Logical Volumes

Objective

Create and manage logical volumes using LVM, including creating, extending, and removing them.

Steps

Initialize Physical Volumes:

sudo pvcreate /dev/sdb /dev/sdc

Create a Volume Group:

sudo vgcreate lab_vg /dev/sdb /dev/sdc

Create a Logical Volume:

sudo lvcreate -L 5G -n lab_lv lab_vg

Format and Mount the Logical Volume:

sudo mkfs.ext4 /dev/lab_vg/lab_lv sudo mkdir /mnt/lab sudo mount /dev/lab_vg/lab_lv /mnt/lab

Extend the Logical Volume:

sudo lvextend -L +2G /dev/lab_vg/lab_lv sudo resize2fs /dev/lab_vg/lab_lv

Unmount and Remove the Logical Volume:

sudo umount /mnt/lab sudo lvremove /dev/lab_vg/lab_lv sudo vgremove lab_vg sudo pvremove /dev/sdb /dev/sdc