kvm-热添加
[TOC]
热添加硬盘、网卡、内存、cpu
1:kvm虚拟机在线热添加硬盘
释意:必须先创建硬盘在执行添加硬盘
临时生效
virsh attach-disk web /data/web-add.qcow2 vdb --subdriver qcow2
永久生效--config
virsh attach-disk web /data/web-add.qcow2 vdb --subdriver qcow2 --config
临时剥离硬盘
virsh detach-disk web vdb
永久剥离硬盘--config
virsh detach-disk web vdb --config
创建一块10G的盘符
[root@kvm-01 ~]# qemu-img create -f qcow2 /data/web-add.qcow2 10G
Formatting '/data/web-add.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
查看当前web实例盘符的名字(vda)
[root@kvm-01 ~]# virsh dumpxml web|grep target|grep vd
<target dev='vda' bus='virtio'/>
Web添加一块硬盘为vdb,必须要用绝对路径
[root@kvm-01 ~]# virsh attach-disk web /data/web-add.qcow2 vdb
[root@kvm-01 ~]# virsh dumpxml web|grep target|grep vd #再次查看
<target dev='vda' bus='virtio'/>
<target dev='vdb' bus='virtio'/>
默认用raw格式打开硬盘所以为0MB。原因没有指定打开的格式
[root@kvm-01 ~]# virsh console web
[root@192 ~]# fdisk -l|grep vdb
Disk /dev/vdb: 0 MB, 197120 bytes, 385 sectors
剥离硬盘
[root@kvm-01 ~]# virsh detach-disk web vdb
Disk detached successfully
[root@kvm-01 ~]# virsh dumpxml web|grep target|grep vd #再次查看
<target dev='vda' bus='virtio'/>
加上此参数--subdriver qcow2能识别大小。--config永久添加,如果不加重启服务器之后丢失vdb盘
[root@kvm-01 ~]# virsh attach-disk web /data/web-add.qcow2 vdb --subdriver qcow2
[root@kvm-01 ~]# virsh attach-disk web /data/web-add.qcow2 vdb --subdriver qcow2 --config
再次到虚拟机查看10G的硬盘能识别出来并挂载
[root@kvm-01 ~]# virsh console web
[root@localhost ~]# fdisk -l|grep vdb
Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
[root@localhost ~]# mkfs.xfs /dev/vdb
[root@localhost ~]# mount /dev/vdb /mnt/
[root@localhost ~]# df -h /mnt/
Filesystem Size Used Avail Use% Mounted on
/dev/vdb 10G 33M 10G 1% /mnt
[root@localhost ~]# cp /etc/services /mnt/ #拷贝一个文件,等扩容完了之后查看文件还存不存在
[root@localhost ~]# umount /mnt/ #扩容是硬盘不能是挂载状态
测试扩容
[root@kvm-01 ~]# virsh detach-disk web vdb #剥离硬盘
[root@kvm-01 ~]# qemu-img resize /data/web-add.qcow2 +10G #扩容
[root@kvm-01 ~]# qemu-img info /data/web-add.qcow2 #查看大小20G
image: /data/web-add.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 12M
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
添加硬盘
[root@kvm-01 ~]# virsh attach-disk web /data/web-add.qcow2 vdb --subdriver qcow2
再次测试挂载并查看大小
[root@kvm-01 ~]# virsh console web
[root@localhost ~]# mount /dev/vdb /mnt/
[root@localhost ~]# ll /mnt/services #文件还在
-rw-r--r--. 1 root root 670293 May 3 22:47 /mnt/services
[root@localhost ~]# df -h /mnt/ #查看大小没有更新
Filesystem Size Used Avail Use% Mounted on
/dev/vdb 10G 33M 10G 1% /mnt
[root@localhost ~]# xfs_growfs /dev/vdb # 更新一下超级块儿(也就是分区信息)
data blocks changed from 2621440 to 5242880
[root@desktop-hh2qqho ~]# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/vdb 20G 34M 20G 1% /mnt
2:kvm虚拟机在线热添加网卡
添加网卡,加此--model virtio参数添加的网卡显示eth不加就随机显示ens
--config永久添加,重启也生效
添加网卡
[root@kvm-01 ~]# virsh attach-interface web --type bridge --source br0 --model virtio
[root@kvm-01 ~]# virsh attach-interface web --type bridge --source br0 --model virtio ---cpnfig
剥离网卡(加上虚机的mac)
[root@kvm-01 ~]# virsh detach-interface web --type bridge --mac 52:54:00:67:f4:7e
[root@kvm-01 ~]# virsh detach-interface web --type bridge --mac 52:54:00:67:f4:7e --config
3:kvm虚拟机在线热添加内存
新建虚机进行热添加内存
[root@kvm-01 ~]# qemu-img create -f qcow2 -b /data/centos01-clone.qcow2 /data/web03.qcow2
Formatting '/data/web03.qcow2', fmt=qcow2 size=10737418240 backing_file='/data/centos01-clone.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
利用此--memory 512,maxmemory=2048参数添加虚机,支持热添加内存
[root@kvm-01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web03 --memory 512,maxmemory=2048 --vcpus 1 --disk /data/web03.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
[root@kvm-01 ~]# virsh console web03
[root@localhost ~]# free -m #查看当前内存
total used free shared buff/cache available
Mem: 463 97 238 8 127 212
Swap: 0 0 0
临时热添加内存和缩小
临时热添加内存
[root@kvm-01 ~]# virsh setmem web03 2048M
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 1999 54 1846 16 98 1802
Swap: 0 0 0
还能缩小,但是不能缩小的太多
[root@kvm-01 ~]# virsh setmem web03 1024M
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 975 102 747 8 125 721
Swap: 0 0 0
永久添加内存与缩小
[root@kvm-01 ~]# virsh setmem web03 2048M --config #扩容
[root@kvm-01 ~]# virsh setmem web03 1024M --config #缩小
在以前创建的虚机热添加内存
[root@kvm-01 ~]# virsh edit web
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<!--改为-->
<memory unit='MiB'>2048</memory>
<currentMemory unit='MiB'>1024</currentMemory>
[root@kvm-01 ~]# virsh console web
[root@localhost ~]# reboot #重启虚机生效
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 991 97 771 6 122 747
Swap: 0 0 0
4:kvm虚拟机在线热添加cpu
创建虚机进行热添加cpu
[root@kvm-01 ~]# qemu-img create -f qcow2 -b /data/centos01-clone.qcow2 /data/web04.qcow2
Formatting '/data/web04.qcow2', fmt=qcow2 size=10737418240 backing_file='/data/centos01-clone.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
加此参数支持热添加cpu--vcpus 5,maxvcpus=10
[root@kvm-01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name web04 --memory 512,maxmemory=2048 --vcpus 5,maxvcpus=10 --disk /data/web04.qcow2 --boot hd --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole
增加cpu,--config永久生效,不支持减少cpu
[root@kvm-01 ~]# virsh console web04
[root@localhost ~]# lscpu |grep 'CPU(s):'
CPU(s): 5
增加cpu
[root@kvm-01 ~]# virsh setvcpus web04 6
[root@localhost ~]# lscpu |grep 'CPU(s):'
CPU(s): 6