共计 4698 个字符,预计需要花费 12 分钟才能阅读完成。
创建一个虚拟机用于练习在线扩容
virt-install --name centos8-3 --memory 4096,currentMemory=1024 --vcpus 2,maxvcpus=8 --disk /var/lib/libvirt/images/centos8-3.qcow2,bus=virtio,format=qcow2 --import --os-variant rhel8.0 --graphics vnc --network network=default | |
--name centos8-3 | |
--memory 4096,currentMemory=1024 | |
--vcpus 2,maxvcpus=8 | |
--disk /var/lib/libvirt/images/centos8-3.qcow2,bus=virtio,format=qcow2 --import | |
--os-variant rhel8.0 | |
--graphics vnc | |
--network network=default |
一、磁盘在线扩容
- 热添加一块磁盘
- 热删除一块磁盘
- 为磁盘扩容
1.1、热添加一块磁盘
注意:生产环境下,物理机热添加硬盘,要求你的新盘必须是企业级硬盘,否则不支持热插拔
a、生成一个磁盘
[ | ]|
Formatting '/var/lib/libvirt/images/centos8-3_add.img', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16 |
b、扩容虚拟机磁盘
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio | |
成功附加磁盘 | |
1.2、在线剥离磁盘
[root@zutuanxue ~]# virsh detach-disk --domain centos8-3 --target vdb | |
成功分离磁盘 |
FAQ1:
注意,此时添加的磁盘默认的是 raw 磁盘,我们创建的是 qcow2 磁盘,所以容量不对。
解决问题需要添加磁盘格式: –subdriver qcow2
--subdriver qcow2 | |
剥离后再次添加磁盘 | |
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio --subdriver qcow2 | |
成功附加磁盘 |
FAQ2:
关机,再次开机后发现磁盘丢失,原因是因为我们添加是临时添加的,如果希望永久添加 加上参数: –config
config 参数的意思是修改 xml 文件,下次启动加载 xml 的时候就加载设备了。
再次添加,--config 下次启动才会生效 | |
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio --subdriver qcow2 --config | |
成功附加磁盘 | |
热添加硬盘总结
立即生效 | |
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio --subdriver qcow2 | |
下次生效 | |
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio --subdriver qcow2 --config |
热剥离硬盘总结
临时剥离 | |
[root@zutuanxue ~]# virsh detach-disk --domain centos8-3 --target vdb | |
成功分离磁盘 | |
永久剥离 | |
[root@zutuanxue ~]# virsh detach-disk --domain centos8-3 --target vdb --config | |
成功分离磁盘 |
接下来就是格式化、挂载使用吧。
此处省略一万个字
1.3、磁盘扩容
-
剥离扩容磁盘出来
-
扩容磁盘到目标容量
-
将扩容后的磁盘附加回去
-
扩容磁盘文件系统
a、将扩容磁盘先剥离
剥离 vdb 磁盘 | |
[ | ]|
成功分离磁盘 |
b、扩容剥离出来的磁盘
扩容到目标容量 | |
[root@zutuanxue ~]# qemu-img resize /var/lib/libvirt/images/centos8-3_add.img +20G [也可以直接写目标的容量] | |
Image resized. | |
查看磁盘情况 | |
[root@zutuanxue ~]# qemu-img info /var/lib/libvirt/images/centos8-3_add.img | |
image: /var/lib/libvirt/images/centos8-3_add.img | |
file format: qcow2 | |
virtual size: 40G (42949672960 bytes) | |
disk size: 200K | |
cluster_size: 65536 | |
Format specific information: | |
compat: 1.1 | |
lazy refcounts: false | |
refcount bits: 16 | |
corrupt: false | |
c、热添加磁盘
将扩容后的磁盘添加回去 | |
[root@zutuanxue ~]# virsh attach-disk --domain centos8-3 --source /var/lib/libvirt/images/centos8-3_add.img --target vdb --targetbus virtio --subdriver qcow2 | |
成功附加磁盘 |
d、发现文件系统中显示依然是原大小 - 扩容文件系统 ==[更新分区表]==
[ | ]|
ext 分区的化使用这个命令更新 resize2fs /dev/vdb |
FAQ: xfs_growfs: /dev/vdb1 is not a mounted XFS filesystem
KVM_162#xfs_growfs /dev/vdb1 | |
xfs_growfs: /dev/vdb1 is not a mounted XFS filesystem | |
解决方案 | |
# 重写分区表,以便分区占用它所能占用的所有空间 | |
KVM_162#growpart /dev/vdb 1 | |
CHANGED: partition=1 start=2048 old: size=41940992 end=41943040 new: size=83883999,end=83886047 | |
# 刷新分区表 | |
KVM_162#xfs_growfs /abc | |
meta-data=/dev/vdb1 isize=512 agcount=4, agsize=1310656 blks | |
= sectsz=512 attr=2, projid32bit=1 | |
= crc=1 finobt=1, sparse=1, rmapbt=0 | |
= reflink=1 | |
data = bsize=4096 blocks=5242624, imaxpct=25 | |
= sunit=0 swidth=0 blks | |
naming =version 2 bsize=4096 ascii-ci=0, ftype=1 | |
log =internal log 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 5242624 to 10485499 |
二、网卡热添加
- 网卡添加
# 桥接 | |
[root@zutuanxue ~]# virsh attach-interface --domain centos8-3 --type bridge --source br0 --model virtio --config | |
成功附加接口 | |
#NAT | |
[root@zutuanxue ~]# virsh attach-interface --type network --domain centos8-3 --source default --config | |
成功附加接口 | |
关于 type source 不会写的可以参考 xml 文件 | |
<interface type='network'> | |
<mac address='52:54:00:30:38:55'/> | |
<source network='default'/> | |
<model type='rtl8139'/> | |
<address type='pci' domain='0x0000' bus='0x09' slot='0x01' function='0x0'/> | |
</interface> | |
可以看到 type”source network“这两个字段吧 |
- 网卡剥离
剥离要指定剥离网卡的 Mac 地址
永久剥离 | |
[root@zutuanxue ~]# virsh detach-interface --domain centos8-3 --mac 52:54:00:43:b8:3c --type bridge --config | |
成功分离接口 | |
临时剥离 | |
[root@zutuanxue ~]# virsh detach-interface --domain centos8-3 --mac 52:54:00:95:b7:0e --type network | |
成功分离接口 |
三、内存热添加
内存热添加的基础是必须设置最大内存的容量,否则无法添加,最大扩展不能超过最大分配
扩容内存
# 将原来 1G 的内容扩容到 2G | |
[root@zutuanxue ~]# virsh setmem --domain centos8-3 --size 2048M --live --config | |
--size 目标容量 | |
--live 运行的机器 |
创建机器时可以指定
--memory memory=1024,currentMemory=512
缩小内存
同样的方法,指定内存目标容量即可
临时 | |
[root@zutuanxue ~]# virsh setmem --domain centos8-3 --size 512M --live | |
永久 | |
[root@zutuanxue ~]# virsh setmem --domain centos8-3 --size 512M --live --config |
四、CPU 热添加
添加 CPU
该虚拟机必须指定了最大 cpu 数量 –vcpus 5,maxvcpus=10
临时 | |
[root@zutuanxue ~]# virsh setvcpus --domain centos8-3 6 --live | |
永久 | |
[root@zutuanxue ~]# virsh setvcpus --domain centos8-3 6 --live --config |
注意:CPU 目前是不支持回收的。
正文完
星哥玩云-微信公众号
