This is the process of increasing the LVM Partition to fill use up added disk space after a cloud server is reconfigured.
Overview:
- Remove and Recreate physical LVM Partition(/dev/sda2)
- Extend LVM Physical Volume(pvresize)
- Extend LVM Logical Volume(lvresize)
- 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.
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!
Hello,
Yes you can, we are building this to help and improve Internet Community as much as we can.
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!|