LVM (Logical Volume Management) is a flexible and advanced option available to manage hard disks in most of the major Linux distributions. It is easy to manage the disks with LVM than the tradition tools like fdisk, parted or gparted.
Some of the terms which you need to understand while using LVM:
- Physical Volume (PV): Consists of Raw disks or RAID arrays or other storage devices.
- Volume Group (VG): Combines the physical volumes into storage groups.
- Logical Volume (LV): VG’s are divided into LV’s and are mounted as partitions.
In this article, we will take you through the steps to configure Disks using LVM in existing Linux machine by creating PV, VG’s and LV’s.
Note: If you don’t what to use LVM, you can add disk directly to an existing Linux system using these guides.
Let’s consider a scenario where there are 2 HDD of 20GB and 10GB, but we need to add only 2 partitions one of 12GB and another 13GB. We can achieve this using LVM method only.
Once the disks has been added, you can list them using the following command.
# fdisk -l
1. Now partitions both the disks /dev/xvdc
and /dev/xvdd
using fdisk command as shown.
# fdisk /dev/xvdc # fdisk /dev/xvdd
Use n
to create the partition and save the changes with w
command.
2. After partitioning, use the following command to verify the partitions.
# fdisk -l
3. Create Physical Volume (PV).
# pvcreate /dev/xvdc1 # pvcreate /dev/xvdd1
4. Create Volume Group (VG).
# vgcreate testvg /dev/xvdc1 /dev/xvdd1
Here, “testvg” is the VG name.
5. Now use “vgdisplay” to list all details about the VG’s in the system.
# vgdisplay OR # vgdisplay testvg
6. Create Logical Volumes (LV).
# lvcreate -n lv_data1 --size 12G testvg # lvcreate -n lv_data2 --size 14G testvg
Here, “lv_data1” and “lv_data2” are LV name.
7. Now use “lvdisplay” to list all details about the Logical volumes available in the system.
# lvdisplay OR # lvdisplay testvg
8. Format the Logical Volums (LV’s) to ext4 format.
# mkfs.ext4 /dev/testvg/lv_data1 # mkfs.ext4/dev/testvg/lv_data2
9. Finally, mount the file system.
# mount /dev/testvg/lv_data1 /data1 # mount /dev/testvg/lv_data2 /data2
Make sure to create data1
and data2
directories before mounting the filesystem.
That’s it! In this article, we discussed how to create a partition using LVM. If you have any comments or queries regarding this, feel free to post in the comments.
Why would you people create partitions? The WHOLE point of lvm is to replace traditional partitions with something more flexible. On a physical disk, it’s just a redundancy, but in the virtual world, you are just creating a partition prison for your data that you cannot easily expand.
If you pvcreate on the raw device instead of a partition, should that raw device ever change sizes (as in growing a virtual disk), it is trivial to expand it to use the space. With a partition, it’s a huge problem.
There is no benefit to a partition, other than for admins who still use fdisk instead of lsblk to see disk volumes. The ONLY place you need a partition is for your boot volume, as that is a limitation of traditional hardware.
I was taught that the hard drive naming convention in Linux is ‘/dev/hdx#‘ or ‘/dev/sdx#‘. In the article, you are using ‘xvdc‘ and ‘xvdd‘.
Have I been misinformed?
@Drgaonmouth,
We have used cloud virtual storage devices for this setup, that’s why the naming is XVD.
Can just a single partition be part of a logical device? I have a Win10 notebook. The Win10 requirements occupy most of the space on sda. Can I set up a small Linux partition on sda that connects with a physical USB disk I keep plugged into the machine to make up a logical disk for Linux? My Win install is MBR, non-UEFI, not secure boot, but would that make any difference?
It may be worth adding a final step about updating /etc/fstab so that the mount is persistent across boots.
Any idea how can I automate this task using shell script along with multipath configuration
for create LVM we need to select type 8e.
Hi nice article. I noticed that you did’t change the partition type to lv i.e. 8e but created a 83 type. I thought we needed to create a 8e type partition to be able to create a physical volume or is this distro specific.
You did not set the Partition type hex code 8e for the LVM created. This will create issues later