Increase LVM Partition to Take Up Remaining Space

This is the process of increasing the LVM Partition to fill use up added disk space after a cloud server is reconfigured.

Overview:
  1. Remove and Recreate physical LVM Partition(/dev/sda2)
  2. Extend LVM Physical Volume(pvresize)
  3. Extend LVM Logical Volume(lvresize)
  4. Extend Filesystem into remaining space(xfs_growfs//resize2fs)

In this example a Cloud Server configuration:

Configuration:
CPU: 2 vCore
RAM: 2 GB
SSD: 80 GB

Now our Server has been upgraded:

Configuration:
CPU: 2 vCore
RAM: 4 GB
SSD: 120 GB

In order to increase the storage capacity of the SSD, we must adjust the hard disk configuration in our server’s operating system.

When we use df -h command to list disk free space, we will noticed that there is no changes happened to the root directory. However fdisk -l command showing us the new Disk Space has been added.

Now we start increasing our Storage capacity:

Step 1: Delete/Recreate the LVM partition using fdisk

# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help):

First, we list Server’s Partition (p)

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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
Disk label type: dos
Disk identifier: 0x000e254e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   167772159    82836480   8e  Linux LVM

Then, we delete /dev/sda2 (d)

Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 is deleted

After that, we re-create /dev/sda2 again (n)

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2099200-251658239, default 2099200):
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-251658239, default 251658239):
Using default value 251658239
Partition 2 of type Linux and of size 119 GiB is set

Please note that, to use the entire space, we select First & Last sectors. Now we print Server’s Partition again.

Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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
Disk label type: dos
Disk identifier: 0x000e254e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   251658239   124779520   83  Linux

Now we change /dev/sda2 System type from Linux to Linux LVM (t). If you don’t know what type code you can list all types by (L).

Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): L

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT
1e  Hidden W95 FAT1 80  Old Minix

Linux LVM type code is: 8e

Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): p

Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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
Disk label type: dos
Disk identifier: 0x000e254e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   251658239   124779520   8e  Linux LVM

After changing type to Linux LVM, we need to save these changes to the Operating System Kernel (w).

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Now to apply all of the changes, it either by rebooting our Server, or use partprobe Command to inform the OS of partition table changes.

# partprobe

Now, we Resize LVM physical volume

# pvresize /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

We use pvs command to verify the changes:

# pvs
  PV         VG     Fmt  Attr PSize    PFree
  /dev/sda2  centos lvm2 a--  <119.00g 40.00g

Now, we Resize LVM Logical volume

# lvresize -l +100%FREE /dev/mapper/centos-root
  Size of logical volume centos/root changed from <77.00 GiB (19711 extents) to <117.00 GiB (29951 extents).
  Logical volume centos/root successfully resized.

Check the File System with mount command to grow filesystem into remaining space

# mount | grep centos-root
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)

Use xfs_growfs command to grow filesystem:

# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512    agcount=19, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=20184064, 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 20184064 to 30669824

Use df -h to verify

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  117G  7.6G  110G   7% /
devtmpfs                 1.9G     0  1.9G   0% /dev
tmpfs                    1.9G     0  1.9G   0% /dev/shm
tmpfs                    1.9G   13M  1.9G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1               1014M  336M  679M  34% /boot
tmpfs                    378M   12K  378M   1% /run/user/42
tmpfs                    378M     0  378M   0% /run/user/0

Now, our Server has been upgraded and the Disk Space has been upgraded.

Mohammed has written 27 articles

3 thoughts on “Increase LVM Partition to Take Up Remaining Space

  1. Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your webpage? My website is in the very same niche as yours and my users would truly benefit from some of the information you present here. Please let me know if this okay with you. Appreciate it!

  2. Having read this I thought it was very enlightening. I appreciate you finding the time and energy to put this article together. I once again find myself personally spending a lot of time both reading and leaving comments. But so what, it was still worthwhile!|

Cancel reply

Leave a Reply to Mohammed

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>