环境信息
- 虚拟化软件:VMware Workstation 16
- 虚拟机:CentOS 7.7 64bit
在VMware 中给Linux虚拟机总共分了20GB单磁盘,已经不够用。需要扩充,因为Linux是使用LVM(Logical Volume Manager)所以扩充磁盘非常方便。步骤如下
扩容前
扩容前,磁盘(既LV)空间使用率已经达到94%,严重不够用了,需要扩空间:
[root@centosa ~]# df -T (这里加-T选项,可显示文件系统类型)
Filesystem Type 1K-blocks Used Available Use% Mounted on
devtmpfs devtmpfs 1996088 0 1996088 0% /dev
tmpfs tmpfs 2013112 44 2013068 1% /dev/shm
tmpfs tmpfs 2013112 12208 2000904 1% /run
tmpfs tmpfs 2013112 0 2013112 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17811456 16695572 1115884 94% /
/dev/sda1 xfs 1038336 164512 873824 16% /boot
tmpfs tmpfs 402624 0 402624 0% /run/user/1000
[root@centosa ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000cf932
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 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 /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 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
扩容步骤
1、VMware虚拟机扩容
关闭虚拟机后,由于虚拟机存在快照无法直接扩展原磁盘,只能在VMware中新增一块盘。
2、磁盘创建partition
启动虚拟机后,通过df命令查看磁盘空间未变。通过fdisk -l 命令可以看到多了一块 /dev/sdb 的Disk
通过以下fdisk /dev/sdb 将磁盘创建partition
新增的partition为:/dev/sdb1
3、创建PV并纳入VG
这时候通过pvdisplay 或 vgdisplay 命令还看不到刚才新增的Partition。
通过以下pvcreate 和 vgextend,创建PV后,并将新装机的PV加入到VG中(我们的VG名为"centos")
然后,再次通过pvdisplay 或 vgdisplay 命令,就能看到了,并且VG的总容量也增加了,新增的空间是Free空闲的。
4、对原LV扩展容量
在扩LV之前,可以通过命令lvdisplay查看当前的LV情况。可以看到:
- 系统已存在两个LV,都是基于名为“centos”的VG上分配的空间。
- 结合前面,我们正是名为“ /dev/centos/root” 的LV空闲空间不足。
因此,我们将新增的10GB空闲空间,全部分配给名为“ /dev/centos/root” 的LV。 命令格式为:
- lvextend -L +10240m LV名称 (-L指向需要增加的空间大小,单位可以为G、M、T等)
由于直接指定扩大10240MB,会报“ Insufficient free space: 2560 extents needed, but only 2559 available”。既VG中free空闲空间不是严格的10GB,而是少一个PE(VG的一个PE为为4MB)。
所以扩展的空间大小不是10240m,而是10236m。
[root@centosa ~]# lvextend -L +10236m /dev/centos/root
Logical volume centos/root successfully resized.
[root@centosa ~]#
[root@centosa ~]#
[root@centosa ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 28.99 GiB
PE Size 4.00 MiB
Total PE 7422
Alloc PE / Size 7422 / 28.99 GiB
Free PE / Size 0 / 0
VG UUID Ngcx2z-PxqT-W9Dl-jg7b-YcQd-2OD3-x4vmDo
4、扩大文件系统
这是通过df查看当前文件系统,仍为变化。这是因为尽管LV容量扩大了,但文件系统还未扩大。
如果是ext4等文件系统可以通过命令resize2fs扩大。 因为我们是xfs文件系统,所以需要使用命令xfs_growfs来完成文件系统扩大。
然后再次通过df查看空间情况,可以看到空间已经扩大。