1.TL;DR
When RHEL / CentOS is installed in the hypervisor environment of VMware or KVM, it defaults to LVM (logical volume management). If you try to increase the number of virtual disks, you will usually add partitions after increasing the size of the virtual disks in the hypervisor environment. You can only create up to 4 primary partitions (you can add more by using extended partitions, but I will omit them here). I don't like adding partitions every time I increase the disk size, so I tried another method.
** Increased the size of the partition and finally increased the size of the logical volume recognized by the OS. ** **
** This is the worst thing you can do to destroy a virtual machine. Please do it at your own risk. ** **
Check the state before disk expansion. This is the information that can be seen from the hypervisor side first. The size of the virtual disk is recognized as 24GB. The actual size reserved is 12GB.
[root@hypervisor images]# qemu-img info vm1.img
image: vm1.img
file format: qcow2
virtual size: 24G (25769803776 bytes)
disk size: 12G
cluster_size: 65536
Format specific information:
compat: 0.10
Next is the information that can be seen from inside the virtual machine. The second partition to be expanded is 24.7GB.
[root@vm1 ~]# parted /dev/vda print
model: Virtio Block Device (virtblk)
disk/dev/vda: 25.8GB
Sector size(logic/Physics): 512B/512B
Partition table: msdos
Disk flag:
Number Start End Size Type File system flag
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 25.8GB 24.7GB primary lvm
Check the file system. The root partition / dev / mapper / cl_centos7template-root is 22GB.
[root@vm1 ~]# df -h
File system size used Remaining used%Mount position
:
/dev/mapper/cl_centos7template-root 22G 7.4G 15G 35% /
/dev/vda1 1014M 245M 770M 25% /boot
:
Log in to the hypervisor server as root. Shut down the virtual machine before adding more virtual disks.
Increase 10GB with the qemu-img resize command.
[root@hypervisor images]# qemu-img resize vm1.img +10G
Image resized.
The size of the virtual disk has increased from 24GB to 34GB.
[root@hypervisor images]# qemu-img info vm1.img
image: vm1.img
file format: qcow2
virtual size: 34G (36507222016 bytes)
disk size: 12G
cluster_size: 65536
Format specific information:
compat: 0.10
The work from here is done by logging in to the virtual machine as root. Check the partition allocation status with the parted command. At this point, the second partition is still 24.7GB and has not increased.
[root@vm1 ~]# parted /dev/vda print
model: Virtio Block Device (virtblk)
disk/dev/vda: 36.5GB
Sector size(logic/Physics): 512B/512B
Partition table: msdos
Disk flag:
Number Start End Size Type File system flag
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 25.8GB 24.7GB primary lvm
Partitions are increased with the resizepart subcommand of the parted command. Enter here in an interactive way. The first option 2 indicates the second partition. -1s means to increase to the last sector. There is no response after running the resizepart subcommand, but don't worry. The end is the q subcommand.
[root@vm1 ~]# parted /dev/vda
GNU Parted 3.1
/dev/Use vda
Welcome to GNU Parted! To see the command list'help'Please enter.
(parted) resizepart 2 -1s
(parted) q
The second partition has increased from 24.7GB to 35.4GB.
[root@vm1 ~]# parted /dev/vda print
model: Virtio Block Device (virtblk)
disk/dev/vda: 36.5GB
Sector size(logic/Physics): 512B/512B
Partition table: msdos
Disk flag:
Number Start End Size Type File system flag
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 36.5GB 35.4GB primary lvm
The details of the physical volume have not increased yet.
[root@vm1 ~]# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name cl_centos7template
PV Size <23.00 GiB / not usable 2.00 MiB
:
Increase the size of the physical volume with the pvresize command.
[root@vm1 ~]# pvresize /dev/vda2
Physical volume "/dev/vda2" changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
The size of the physical volume has been increased from 23GB to 33GB.
[root@vm1 ~]# pvdisplay /dev/vda2
--- Physical volume ---
PV Name /dev/vda2
VG Name cl_centos7template
PV Size <33.00 GiB / not usable 2.00 MiB
:
The size of the volume group increases with the increase of the physical volume (33GB). You can see that there is 10GB of unallocated (FREE) space.
[root@vm1 ~]# vgdisplay cl_centos7template
--- Volume group ---
VG Name cl_centos7template
:
VG Size <33.00 GiB
PE Size 4.00 MiB
Total PE 8447
Alloc PE / Size 5887 / <23.00 GiB
Free PE / Size 2560 / 10.00 GiB
VG UUID XZleoU-FvcU-pNs9-rIc7-4PrH-pZZ6-KfoyZm
Finally, increase the logical volume with the lvextend command. -l + 100% FREE refers to all free space. -r is an option to resize the file system as well (synonymous with the resize2fs command).
[root@vm1 ~]# lvextend -l +100%FREE -r /dev/cl_centos7template/root
Size of logical volume cl_centos7template/root changed from <21.50 GiB (5503 extents) to <31.50 GiB (8063 extents).
Logical volume cl_centos7template/root successfully resized.
meta-data=/dev/mapper/cl_centos7template-root isize=512 agcount=7, agsize=818944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=5635072, 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 5635072 to 8256512
The logical volume has increased to 31.5GB.
[root@vm1 ~]# lvdisplay /dev/cl_centos7template/root
--- Logical volume ---
LV Path /dev/cl_centos7template/root
LV Name root
VG Name cl_centos7template
:
LV Status available
# open 1
LV Size <31.50 GiB
:
You can see that the file system has also increased to 32G.
[root@vm1 ~]# df -h
File system size used Remaining used%Mount position
: 1000M 0 1000M 0% /sys/fs/cgroup
/dev/mapper/cl_centos7template-root 32G 7.4G 25G 24% /
/dev/vda1 1014M 245M 770M 25% /boot
:
I introduced this troublesome procedure, but in the first place, the virtual machine created in KVM or VMware does not need to be LVM. If it is a physical machine, by using LVM, you can increase the logical volume without partitioning when adding an HDD. Is it an LVM snapshot? I've never used it because I'm scared.
Disk expansion should be a little easier for non-LVM (simple partitions).