How to Extend and Reduce LVM (Logical Volume Management)
In the previous blog, we saw How to Configure LVM, click here to read more. In this blog we are going to demonstrate How to Extend and Reduce LVM with pvs command you can see here, we still have 20Gb free space in disk /dev/sdb1, We have created two mount points /u01 with filesystem ext4 and /u02 with filesystem xfs.
[root@test-machine02 /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 ol lvm2 a-- <49.00g 4.00m
/dev/sdb1 vg1 lvm2 a-- <50.00g <20.00g
[root@test-machine02 /]#
[root@test-machine02 /]# df -Th /u01 /u02
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu01_vg1 ext4 15G 41M 14G 1% /u01
/dev/mapper/vg1-lvu02_vg1 xfs 15G 33M 15G 1% /u02
[root@test-machine02 /]#
As we have mentioned earlier that we will add more storage to LVM without any downtime to illustrate that we will add 10 Gb of space to each mount point i.e. u01 & u02 using LVEXTEND command.
We will add 10Gb of space in the /u01 mount point. After completing the below steps, you will observe that /u01 mount point space increased from 15GB to 25 GB and all operations we did online, without unmounting /u01.
[root@test-machine02 vg1]# lvextend -L +10G /dev/mapper/vg1-lvu01_vg1
Size of logical volume vg1/lvu01_vg1 changed from 15.00 GiB (3840 extents) to 25.00 GiB (6400 extents).
Logical volume vg1/lvu01_vg1 successfully resized.
[root@test-machine02 vg1]#
[root@test-machine02 vg1]# resize2fs /dev/mapper/vg1-lvu01_vg1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg1-lvu01_vg1 is mounted on /u01; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mapper/vg1-lvu01_vg1 is now 6553600 blocks long.
[root@test-machine02 vg1]#
[root@test-machine02 vg1]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu01_vg1 ext4 25G 44M 24G 1% /u01
[root@test-machine02 vg1]#
Now we will add 9Gb of space to /u02 mount point. Please note filesystem /u02 is xfs so resize2fs command will not work on xfs filesystem, resize2fs work only for ext3 and ext4 filesystem. Instead of resize2fs, we will use the command xfs_growfs. If you attempt to execute the command using resize2fs on xfs filesystem will receive the below errors.
[root@test-machine02 vg1]# lvextend -L +9G /dev/mapper/vg1-lvu02_vg1
Size of logical volume vg1/lvu02_vg1 changed from 15.00 GiB (3840 extents) to 24.00 GiB (6144 extents).
Logical volume vg1/lvu02_vg1 successfully resized.
[root@test-machine02 vg1]#
[root@test-machine02 vg1]# resize2fs /dev/mapper/vg1-lvu02_vg1
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg1-lvu02_vg1
Couldn't find valid filesystem superblock.
[root@test-machine02 vg1]# xfs_growfs /u02
meta-data=/dev/mapper/vg1-lvu02_vg1 isize=256 agcount=4, agsize=983040 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=3932160, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3932160 to 6291456
[root@test-machine02 vg1]#
[root@test-machine02 vg1]# df -Th /u02
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu02_vg1 xfs 24G 33M 24G 1% /u02
on the grounds that we’ve got completed how to Extend the LVM partition, So now we can perform, How we will Reduce the LVM partition. To reduce the partition first, we need to unmount the partition. Simply recall without un-mounting we cannot use e2fsck command. If you try to use e2fsck on a mounted partition you will you will acquire the underneath errors.
In the below demonstration, we can try to reduce /u01 having ext4 filesystem from 25Gb to 15Gb.
[root@test-machine02 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu01_vg1 ext4 25G 44M 24G 1% /u01
[root@test-machine02 ~]# e2fsck -f /dev/mapper/vg1-lvu01_vg1
e2fsck 1.42.9 (28-Dec-2013)
/dev/mapper/vg1-lvu01_vg1 is mounted.
e2fsck: Cannot continue, aborting.
[root@test-machine02 ~]# umount /u01
[root@test-machine02 ~]# e2fsck -f /dev/mapper/vg1-lvu01_vg1
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/vg1-lvu01_vg1: 11/1638400 files (0.0% non-contiguous), 146871/6553600 blocks
[root@test-machine02 ~]# resize2fs /dev/mapper/vg1-lvu01_vg1 15g
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/vg1-lvu01_vg1 to 3932160 (4k) blocks.
The filesystem on /dev/mapper/vg1-lvu01_vg1 is now 3932160 blocks long.
[root@test-machine02 ~]# lvreduce -L 15g /dev/mapper/vg1-lvu01_vg1
WARNING: Reducing active logical volume to 15.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lvu01_vg1? [y/n]: y
Size of logical volume vg1/lvu01_vg1 changed from 25.00 GiB (6400 extents) to 15.00 GiB (3840 extents).
Logical volume vg1/lvu01_vg1 successfully resized.
[root@test-machine02 ~]# mount /dev/mapper/vg1-lvu01_vg1 /u01
[root@test-machine02 ~]# df -Th /u01
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu01_vg1 ext4 15G 41M 14G 1% /u01
[root@test-machine02 ~]#
Please note xfs filesystem doesn’t support e2fsck & resize2fs command. It is currently not possible to shrink or reduce an xfs filesystem. If you try to execute the command using e2fsck & resize2fs on xfs file system you will get hold of the under below errors.
[root@test-machine02 ~]# df -Th /u02
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lvu02_vg1 xfs 24G 33M 24G 1% /u02
[root@test-machine02 ~]# umount /u02
[root@test-machine02 ~]# e2fsck -f /dev/mapper/vg1-lvu02_vg1
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/mapper/vg1-lvu02_vg1
The superblock could not be read or does not describe a correct ext2
filesystem. If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
[root@test-machine02 ~]# resize2fs /dev/mapper/vg1-lvu02_vg1 15g
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg1-lvu02_vg1
Couldn't find valid filesystem superblock.
Click here for Step by Step Install Oracle Enterprise Linux (OEL) 7
Click here for How to Upgrade Oracle Enterprise Linux (OEL) 7.7 to 7.9
Click here for How to Configure LVM (Logical Volume Management) in Oracle Enterprise Linux (OEL)
Click here for Step by Step manually creation of an Oracle 19c Database on Linux 7
This document is only for learning purpose and always validate in the LAB environment first before applying in the LIVE environment.
Hope so you like this article!
Please share your valuable feedback/comments/subscribe and follow us below and don’t forget to click on the bell icon to get the most recent update. Click here to understand more about our pursuit.