Digital Studium

Blog about Linux, DevOps and cloud technologies

๐ŸŒ ะ ัƒััะบะธะน

Digital Studium

Linux: How to create LVM logical volume


๐Ÿง˜ By: Konstantin Shutkin

This article describes how to create an LVM group and volume for a physical disk in the Linux operating system.

First step: creating a physical volume

After you have attached the disk to a physical server or virtual machine, you need to type this command:

sudo fdisk -l

to make sure the drive is recognized by the operating system, and to identify the drive name. Output of command will be something like this:

Disk /dev/vdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes

Once you have identified the drive name (in our case it is /dev/vdb), you can create physical volume using the command:

sudo pvcreate /dev/vdb

You will see output like this:

kostya@ubuntu-21-04:~$ sudo pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created.
kostya@ubuntu-21-04:~$

Step two: create the volume group

Now we need to create a volume group. This is done by the following command:

sudo vgcreate {vgname} {pvname}

In our case, the command will look like this:

sudo vgcreate vg-example /dev/vdb

The command output will look like this:

kostya@ubuntu-21-04:~$ sudo vgcreate vg-example/dev/vdb
Volume group "vg-example" successfully created
kostya@ubuntu-21-04:~$

Step three: creating the logical volume

Creating a logical volume can be done with the following command:

sudo lvcreate --size {size} --name {lv-name} {vg-name}

In our case, it will be:

sudo lvcreate --size 5G --name lv-example vg-example

You will see output like this:

kostya@ubuntu-21-04:~$ sudo lvcreate --size 5G --name lv-example vg-example
Logical volume "lv-example" created.
kostya@ubuntu-21-04:~$

If you want the logical volume to use all the free space in the volume group, then run the command:

sudo lvcreate --extents 100%FREE --name lv-example vg-example

Fourth step: creating the filesystem

To create an xfs filesystem, type the command:

sudo mkfs.xfs /dev/vg-example/lv-example

The command output will look like this:

kostya@ubuntu-21-04:~$ sudo mkfs.xfs/dev/vg-example/lv-example
meta-data =/dev/vg-example/lv-example isize = 512 agcount = 4, agsize = 327680 blks
            = sectsz = 512 attr = 2, projid32bit = 1
            = crc = 1 finobt = 1, sparse = 1, rmapbt = 0
            = reflink = 1 bigtime = 0
data = bsize = 4096 blocks = 1310720, imaxpct = 25
            = sunit = 0 swidth = 0 blks
naming = version 2 bsize = 4096 ascii-ci = 0, ftype = 1
log = internal log bsize = 4096 blocks = 2560, version = 2
            = sectsz = 512 sunit = 0 blks, lazy-count = 1
realtime = none extsz = 4096 blocks = 0, rtextents = 0
Discarding blocks ... Done.
kostya@ubuntu-21-04:~$

To create an ext4 filesystem, replace the mkfs.xfs command with mkfs.ext4

Step Five: Mount the Logical Volume

For example, suppose you want to mount the newly created logical volume to the /opt folder. In this case, add this line to file /etc/fstab:

/dev/vg-example/lv-example /opt xfs defaults 0 1

After that, type the command:

sudo mount -a

You can verify that the logical volume has been mounted successfully using the command:

df -h /opt

The output should be like this:

kostya@ubuntu-21-04:~$ df -h /opt/
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/vg--random-lv--random  5.0G   68M  5.0G   2% /opt
kostya@ubuntu-21-04:~$