Logical volume provides a greater flexibility in a number of ways than physical disk in terms of flexible capacity and re-sizeable storage pools etc.
As you can see, the physical combines and form the Volume Group, and Logical volumes are created from the volume group. The Logical volumes are then formatted and partitioned as devices from the operating system for application and databases.
Let's get started,
Example:
Create three physical volumes for three physical disk
Create a Volume Group
Create a Logical Volume
Create a File System on this LV and mount it.
lvmdiskscan scans all SCSI, (E)IDE disks, multiple devices and a
bunch of other block devices in the system looking for LVM PVs.
Run lvmdiskscan to see the list of current volumes
[root@localhost ~]# lvmdiskscan
/dev/nvme0n1p1 [ 1.00 GiB]
/dev/nvme0n1p2 [ <39.00 GiB] LVM physical volume
/dev/nvme0n2p1 [ 1023.00 MiB]
/dev/nvme0n3p1 [ <5.00 GiB]
/dev/nvme0n4 [ 3.00 GiB]
/dev/nvme0n5 [ 3.00 GiB]
/dev/nvme0n6 [ 3.00 GiB]
0 disks
6 partitions
0 LVM physical volume whole disks
1 LVM physical volume
2. The new disks are added but not labelled as "LVM physical volume". So run pvcreate to label them.
[root@localhost ~]# pvcreate /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6
Physical volume "/dev/nvme0n4" successfully created.
Physical volume "/dev/nvme0n5" successfully created.
Physical volume "/dev/nvme0n6" successfully created.
[root@localhost ~]# vgcreate new_group /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6
Volume group "new_group" successfully created
3. Create a volume group
[root@localhost ~]# vgcreate new_group /dev/nvme0n4 /dev/nvme0n5 /dev/nvme0n6
Volume group "new_group" successfully created
4. Run vgs to see the new volume groups
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
new_group 3 0 0 wz--n- <8.99g <8.99g
rhel 1 2 0 wz--n- <39.00g 0
4. Create a logical volume with 2 GigaByte.
[root@localhost ~]# lvcreate -L 2G -n new_lvm new_group
Logical volume "new_lvm" created.
5. Run lvmscan to see new logical volume
[root@localhost ~]# lvscan
ACTIVE '/dev/new_group/new_lvm' [2.00 GiB] inherit
ACTIVE '/dev/rhel/swap' [<3.94 GiB] inherit
ACTIVE '/dev/rhel/root' [<35.06 GiB] inherit
6. For detailed view of logical volume
[root@localhost ~]# lvdisplay /dev/new_group/new_lvm
--- Logical volume ---
LV Path /dev/new_group/new_lvm
LV Name new_lvm
VG Name new_group
LV UUID IdF48L-McZI-inff-3RW0-mNak-ADYO-tVcMxq
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-06-12 03:57:35 -0400
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
7. Now format the new logical volume to preferred file system
[root@localhost ~]# mkfs.ext4 /dev/new_group/new_lvm
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 524288 4k blocks and 131072 inodes
Filesystem UUID: dcc291cc-924a-4bcb-b81a-de37063eb729
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
8. Assign label to the new logical volume, use blkid if you want to verify
[root@localhost ~]# tune2fs -L lvlabel /dev/new_group/new_lvm
tune2fs 1.45.6 (20-Mar-2020)
9. Now add the entry to fstab
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jun 11 06:41:30 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=5dc60cd5-8e84-4132-8d4d-89957c00ba4e /boot xfs defaults 0 0
/dev/mapper/rhel-swap none swap defaults 0 0
LABEL=mylabel /mymount1 ext4 defaults 0 0
LABEL=lvlabel /lvdrive ext4 defaults 0 0
10. Create the folder and mount it.
[root@localhost ~]# mkdir /lvdrive
[root@localhost ~]# mount -a
11. Run df to verify above action
[root@localhost lvdrive]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1869140 0 1869140 0% /dev
tmpfs 1899504 0 1899504 0% /dev/shm
tmpfs 1899504 9992 1889512 1% /run
tmpfs 1899504 0 1899504 0% /sys/fs/cgroup
/dev/mapper/rhel-root 36743652 5015516 31728136 14% /
/dev/nvme0n3p1 5095004 20472 4796008 1% /mymount1
/dev/nvme0n1p1 1038336 248444 789892 24% /boot
tmpfs 379900 4636 375264 2% /run/user/1000
/dev/mapper/new_group-new_lvm 1998672 6144 1871288 1% /lvdrive
Comments