«

kvm-热添加

指尖二进制 • 1 年前 • 723 次点击 • 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
还没收到回复