一、需求说明
虚拟机环境下可以磁盘比较方便,可以实现在线扩容。我们可以直接扩容当前磁盘空间,也可以通过新建硬盘的方式扩容磁盘。如果需求是想增加独立的挂载点,建议使用扩容方式二。
二、linux虚拟机磁盘扩容方式一(直接扩容原磁盘)
1、查看磁盘大小
使用命令df -hT和lsblk可以查看磁盘大小,当前磁盘大小为200G。
2、修改硬盘大小
编辑虚拟机设置,修改硬盘大小为扩容后的值,比如扩容需要扩容20G磁盘则修改为220GG。
3、重新识别磁盘大小
让磁盘重新扫描识别大小,可以看到sda磁盘已经变成了220G。
# echo 1 > /sys/class/block/sda/device/rescan
4、扩容磁盘分区
使用resizepart命令扩容分区大小,此方式的前提是只能扩容最后一个分区号。
# parted /dev/sda
5、重新识别pv卷大小
使用pvresize重新识别pv卷大小。
# pvresize /dev/sda2
Physical volume “/dev/sda2” changed
1 physical volume(s) resized or updated / 0 physical volume(s) not resized
6、查询vg卷情况
通过vgdisplay命令可以看到现在增加了20G的空闲空间。
7、扩容容量到挂载分区
使用命令lvextend命令扩容分区大小。可以使用+100%扩容全部剩余空间,也可以扩容指定大小。
# lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 70.00 GiB (17921 extents).
Logical volume centos/root successfully resized.
8、重新识别分区大小
xfs文件系统格式使用命令xfs_growfs /挂载点 在线扩容大小到挂载分区。
三、linux虚拟机磁盘扩容方式二(新挂载磁盘)
1、添加一块硬盘
编辑虚拟机设置,点击添加硬盘添加一块硬盘。
2、检查磁盘
# fdisk -l
…
磁盘 /dev/sdb:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 97G 0 part
├─centos-root 253:0 0 93G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 200G 0 disk
sr0 11:0 1 1024M 0 rom
3、创建pv
# pvcreate /dev/sdb
Physical volume “/dev/sdb” successfully created.
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 97.00g 4.00m
/dev/sdb lvm2 — 200.00g 200.00g
4、扩容vg卷组
# vgextend centos /dev/sdb
Volume group “centos” successfully extended
# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz–n- 297.00g 200.00g
5、扩容LV
# lvextend -l +100%FREE /dev/centos/root
Size of logical volume centos/root changed from 93.00 GiB (23808 extents) to 293.00 GiB (75008 extents).
6、重新识别分区大小
xfs文件系统使用xfs_growfs命令,ext4文件系统使用resize2fs /dev/centos/root重新识别分区大小。
# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=6094848 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=24379392, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=11904, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 24379392 to 76808192
7、再次查看分区大小
自此虚拟机的磁盘在线扩容就完成了。
df -hT