前言:当我们创建的虚拟机磁盘容量不够我们使用的时候。我们就需要对虚拟机的磁盘进行扩容
而我们的虚拟机的某一个磁盘正在使用 ,如是直接添加一个大的硬盘,则需要把原原来磁盘的文件copy到新的磁盘上,耗费时间,还会出错。
我们可以从LVM方面入手,给已经没有存储空间的硬盘进行扩容。直接把硬盘的容量变大
我们虚拟机test01的磁盘可用为36G 实现 / 的容量变大
[root@test01 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 1007M 36G 3% /
devtmpfs devtmpfs 908M 0 908M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 8.6M 911M 1% /run
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 145M 870M 15% /boot
tmpfs tmpfs 184M 0 184M 0% /run/user/0
大小为10G
[root@itzfl vdisks]# qemu-img create -f qcow2 /kvm/vdisks/test01_data.qcow2 -o size=10G,preallocation=metadata
Formatting '/kvm/vdisks/test01_data.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off
[root@itzfl vdisks]# ls
template.raw test01_data.qcow2 test01.qcow2
[root@itzfl vdisks]#
[root@itzfl vdisks]# virsh attach-disk test01 /kvm/vdisks/test01_data.qcow2 vdb --live --config
成功附加磁盘
[root@itzfl vdisks]#
[root@itzfl vdisks]# virsh domblklist test01
目标 源
------------------------------------------------
vda /kvm/vdisks/test01.qcow2
vdb /kvm/vdisks/test01_data.qcow2
hda -
[root@itzfl vdisks]#
[root@test01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
vdb 252:16 0 10G 0 disk
[root@test01 ~]#
[root@test01 ~]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x72bd196c 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20975231,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20975231,默认为 20975231):
将使用默认值 20975231
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@test01 ~]#
[root@test01 ~]# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created.
[root@test01 ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 centos lvm2 a-- <39.00g 4.00m
/dev/vdb1 lvm2 --- 10.00g 10.00g
[root@test01 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 36.99g
swap centos -wi-ao---- 2.00g
[root@test01 ~]#
lvm的扩容首先需要在卷组上面扩容 本次实现我们扩容的是 root这个逻辑卷
[root@test01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 4.00m
[root@test01 ~]#
[root@test01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 4.00m
[root@test01 ~]# vgextend centos /dev/vdb1
Volume group "centos" successfully extended
[root@test01 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 48.99g 10.00g
[root@test01 ~]#
[root@test01 ~]# lvextend -l +2560 /dev/centos/root
Size of logical volume centos/root changed from 36.99 GiB (9470 extents) to 46.99 GiB (12030 extents).
Logical volume centos/root successfully resized.
[root@test01 ~]#
[root@test01 ~]# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=2424320 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=9697280, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=4735, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 9697280 to 12318720
[root@test01 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 47G 1007M 46G 3% /
devtmpfs devtmpfs 908M 0 908M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
tmpfs tmpfs 920M 8.6M 911M 1% /run
tmpfs tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/vda1 xfs 1014M 145M 870M 15% /boot
tmpfs tmpfs 184M 0 184M 0% /run/user/0
总结 : kvm虚拟机的扩容
物理机:
首先创建一个虚拟磁盘 并且与虚拟机进行绑定
虚拟机:
将添加进来的硬盘,分区,创建物理卷 切记不可创建卷组 ,逻辑卷。
因为我们需要扩容的磁盘肯定已经存在逻辑卷 卷组
我们先要对卷组扩容,在通过卷组对逻辑卷进行扩容