kvm虚拟化管理工具

kvm虚拟化管理工具

    • 一、什么是云计算?
    • 二、云计算的基础KVM虚拟化
    • 三、安装kvm虚拟化管理工具
    • 四、virsh虚拟机的日常操作(开关,挂起虚拟机,导配置文件,磁盘增容,转化磁盘格式等)
    • 五、快照管理
    • 六、KVM虚拟机的克隆
      • 1、完整克隆
      • 2、链接克隆
        • 全自动链接克隆虚拟机脚本
    • 七、kvm虚拟机的桥接模式
    • 八、热添加技术
      • 1、在线热添加硬盘(含临时,永久添加及剥离硬盘)
      • 2、在线扩容
      • 3、在线热添加网卡(含移除网卡)
      • 4、在线热添加内存
      • 5、在线热添加cpu
      • 6、kvm虚拟机的热迁移

一、什么是云计算?

云计算是一种按量付费的模式,云计算的底层是通过虚拟化技术实现的。

2、云计算的服务类型

a、IAAS 基础设施即服务 (主要提供虚拟机,阿里云的esc相当于IAAS层,openstack能实现esc功能)
b、PAAS 平台即服务 (提供安装好的软件环境)
c、SAAS 软件即服务 (cdn服务)

kvm虚拟化管理工具_第1张图片
3、为什么要用云计算?

小公司: 物理服务器还需要idc机房,服务器费用,带宽费用等等,云主机相比话费更少,若如企业不需要这么多服务器,直接释放云主机,但物理服务器是退不了的,云主机的风险小,立马就可以用,扩展灵活性高。
大公司: 比如京东618,用户流量疯长,不可能买那么多服务器遍布全国,618一过,用户量就降下来了,那么买的服务器就闲置了,闲置的服务器资源向外出租,超卖计算。

二、云计算的基础KVM虚拟化

1、什么是虚拟化?

通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。

2、虚拟化软件的差别:

a、qemu 靠软件纯模拟硬件,全虚拟化软件,特别慢,兼容性好
b、xen redhat 5.5以前用的xen,5.5以后换成了kvm,xen的性能特别好,需要使用专门修改后的内核,兼容性差
c、KVM 有硬件支持cpu,基于内核,不需要使用专门的内核,性能好,兼容性较好,结合了上面两个优点

三、安装kvm虚拟化管理工具

KVM:Kernel-based Virtual Machine 基于内核的虚拟化工具

1、安装kvm需要的工具

yum install qemu-kvm qemu-img libvirt libvirt-python libvirt-client virt-install virt-viewer –y

**libvirt:**kvm虚拟机的管理软件
**virt-install:**虚拟机的安装工具
**qemu-kvm qemu-img(qcow2,raw):**管理虚拟机的虚拟磁盘

启动libvirt并设置开机自启动

[root@kvm ~]# systemctl start libvirtd [root@kvm ~]# systemctl enable libvirtd

2、环境要求
Centos7系统+2G内存+cpu开启虚拟化
kvm虚拟化管理工具_第2张图片
3、安装一台kvm虚拟机
1、首先建立两个目录分别用来存放iso文件和生成的qcow2磁盘文件

[root@kvm ~]# mkdir /home/iso   #存放镜像的目录
[root@kvm ~]# mkdir /home/images    #存放磁盘文件的目录

2、这里我们选用vnc连接虚拟机的方法

安装VNC server/VNC客户端,使用VNC连接虚拟机

yum -y install tigervnc-server tigervnc vnc vnc-server

设置远程登录所需要的密码
输入vncserver后会提示输入密码
注:此密码是远程登录时所需要输入的密码
kvm虚拟化管理工具_第3张图片

按下以下命令就可以连接上虚拟机了

virt-install --name=nebula --virt-type=kvm --memory 800,maxmemory=1024 --vcpus 1 --cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso --disk path=/home/images/nebula.qcow2,size=10 --network bridge=br0 --graphicsvnc --vncport=15950 --vnclisten=0.0.0.0 --noautoconsole --autostart

命令解释:

virt-install :虚拟机的安装工具
- -virt-type=kvm:虚拟化的类型
- -name=nebula:虚拟机的名字
- -memory 800 :虚拟机的内存(因为我上传的镜像是792M的,所以给它800M内存)
maxmemory=1024:最大内存
- -vcpus 1 虚拟cpu的核数
--cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso :镜像的存放位置
- -disk path=/home/images/nebula.qcow2,size=10 :存放磁盘文件的目录,以及磁盘类型的大小,大小为10G
- -network network=default :使用默认的NAT网络
- -graphics vnc --vncport=15950 --vnclisten=0.0.0.0 :默认显示器为vnc,指定端口号
- -noautoconsole --autostart :可加可不加

以上的配置其实和虚拟机的配置是对应的
kvm虚拟化管理工具_第4张图片
云主机为了提高性能,都没有swap分区。
以下就是通过vnc连接进入到虚拟机的页面
kvm虚拟化管理工具_第5张图片

四、virsh虚拟机的日常操作(开关,挂起虚拟机,导配置文件,磁盘增容,转化磁盘格式等)

1、列出运行的虚拟机

[root@kvm images]# virsh list
 Id    Name                           State
----------------------------------------------------

2、启动虚拟机

[root@kvm images]# virsh start nebula1
Domain nebula1 started

3、列出所有的虚拟机(运行的或者关机的)

[root@kvm images]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     nebula1                        shut off

4、如果执行了shutdown但是vnc的虚拟机仍在运行,此时要强制关机(拔电源关机,数据会丢失)

[root@kvm images]# virsh destroy nebula1

5、重启虚拟机

[root@kvm images]# virsh reboot nebula1

6、查看配置文件

[root@kvm images]# virsh dumpxml  nebula1

将这个配置文件写入到一个文件里,就可以看到内存,cpu,磁盘等情况。

[root@kvm images]# virsh dumpxml nebula1>>nebula1.xml

只要有磁盘文件+配置文件,虚拟机就可以迁移到任何电脑上,将配置文件导入,就可以迁移到其他主机上了

[root@kvm images]# virsh define nebula1.xml

7、删除虚拟机(undefine的本质是删掉了.xml文件)

[root@kvm images]# virsh undefine nebula1

删除了虚拟机如何恢复呢?只需要恢复其之前导入的配置文件就行,命令如下:

[root@kvm images]# virsh define nebula1.xml

再virsh list就可以看到nebula1了。

以下命令,有几个xml文件就代表有几台虚拟机

[root@kvm images]# ls /etc/libvirt/qemu
autostart  nebula1.xml  networks

用 ps -ef |grep qemu可以看到正在运行的虚拟机的磁盘内容等。

8、如果df-h看到磁盘快满了,可以将虚拟机安装到别的目录

[root@kvm images]# mkdir /data
[root@kvm images]# mv  mv nebula1.qcow2 /data/

再virsh start nebula1会出错:

[root@kvm images]# virsh start nebula1
error: Failed to start domain nebula1
error: Cannot access storage file '/home/images/nebula1.qcow2' (as uid:107, gid:107): No such file or directory

因为我们把磁盘文件挪地方了,所以在启动时找不到磁盘文件,这是我们修改配置文件里磁盘文件的路径,cd /etc/libvirt/qemu, virsh edit nebula1,搜索disk,将磁盘路径换为data,再启动就可以启动成功。

[root@kvm images]# cd /etc/libvirt/qemu
[root@kvm images]# ls /etc/libvirt/qemu
autostart  nebula1.xml  networks
[root@kvm images]# virsh edit nebula1(其实就是vim nebula1.xml,不过为了安全起见,配置文件里面让我们选择这种修改方式)
  <driver name='qemu' type='qcow2'/>
  <source file='/data/nebula1.qcow2'/>

9、重命名:我们虚拟机的名字要让我们知道这个虚拟机跑的是什么服务,所以名字要一目了然:

[root@kvm images]# virsh domrename nebula1 web-blog

将nebula1的名字改成跑博客的web服务,开机状态下不可以重命名。

10、挂起虚拟机

[root@kvm qemu]# virsh suspend nebula1
Domain nebula1 suspended

[root@kvm qemu]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 9     nebula1                        paused

11、恢复状态

[root@kvm qemu]# virsh resume nebula1
Domain nebula1 resumed

[root@kvm qemu]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 9     nebula1                        running

12、查看vnc端口号

[root@kvm ~]# virsh vncdisplay nebula1
:10050

13、设置kvm开机自启,为了不影响业务

[root@kvm ~]# virsh autostart nebula1    ###设置开机自启
Domain nebula1 marked as autostarted

[root@kvm ~]# virsh list --all                ###看状态
 Id    Name                           State
----------------------------------------------------
 -     nebula1                        shut off

[root@kvm ~]# systemctl restart libvirtd    ###启动libvirtd
[root@kvm ~]# virsh list --all              ###nebula1也开机自启动了
 Id    Name                           State
----------------------------------------------------
 1     nebula1                        running

14、看谁是开机自启动的机器

[root@kvm ~]# cd /etc/libvirt/qemu
[root@kvm qemu]# ls       ###看到有一个autostart,就是开机自启动的目录
autostart  nebula1.xml  networks
[root@kvm qemu]# cd autostart/       ###进入到此目录,看有哪些是开机自启动
[root@kvm autostart]# ls                    ###看到nebula1是设置了开机自启动
nebula1.xml
[root@kvm autostart]# ll -h nebula1.xml        ###这是一个软链接文件,如果把源文件删除掉了,那么即使给它设置了开机自启动,它也启动不起来
lrwxrwxrwx 1 root root 29 May  1 15:15 nebula1.xml -> /etc/libvirt/qemu/nebula1.xml
[root@kvm autostart]# ln -s /etc/libvirt/qemu/nebula1.xml /etc/libvirt/qemu/autostart    #如果没有设置开机自启动,也可以直接给它做软链接

15、取消开机自启动:

[root@kvm autostart]# virsh autostart --disable nebula1
Domain nebula1 unmarked as autostarted
[root@kvm autostart]# ls   ###这个目录下没内容了,实质上就是删除了软链接
[root@kvm autostart]#

16、进入到命令行版的控制台页面:(可以代替vnc,console登录)

[root@kvm autostart]# virsh console nebula1
Connected to domain nebula1
Escape character is ^]           ###用^]才可以退出来,长按Ctrl+]
[root@kvm autostart]#

改kvm的虚拟机的内核参数:

[root@kvm ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
reboot,必须重启才有效

重启之后virsh console nebula1就可以进入到登录界面了
kvm虚拟化管理工具_第6张图片

17、kvm虚拟机虚拟磁盘格式转化:

raw:裸格式,占用空间大,有多少空间直接占满,不支持快照,性能较好,不方便传输
qcow2:cow(copy on write),要用多少内存给多少内存,不会一下子占完,占用空间小支持快照,性能比raw能差一点,方便传输

虚拟机磁盘工具的常用命令:

qemu -img info,create,resize,covert

18、查看是否是磁盘文件(用这个命令qemu -img info)

[root@kvm data]# ls
nebula1.qcow2

[root@kvm data]# qemu-img info nebula1.qcow2
image: nebula1.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 1.3G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true

19、创建一块大小为1G的qcow2格式的虚拟磁盘:

[root@kvm data]# qemu-img create -f qcow2 /data/ll.qcow2 1G
image: ll.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)

20、调整磁盘容量(给磁盘加1G容量)

[root@kvm data]# qemu-img resize /data/ll.qcow2 +1G
Image resized.
[root@kvm data]# ll -h ll.qcow2
-rw-r--r-- 1 root root 257K May  1 16:44 ll.qcow2
[root@kvm data]# qemu-img info ll.qcow2
image: ll.qcow2
file format: qcow2
virtual size: 2.0G (2147483648 bytes)            ###可以看到内存由1G加到了2G(qcow2格式的磁盘只能加不能减,raw格式的盘可以减)

21、给raw盘缩容(生产上不要缩容,会丢失数据!!!)只能扩!!!不能缩!!!

[root@kvm data]# qemu-img info liyu.raw
image: liyu.raw
file format: raw
virtual size: 2.0G (2147483648 bytes)     ###可以看到原来是2G内存

给它减掉1G内存:
[root@kvm data]# qemu-img resize liyu.raw -1G
Image resized.
[root@kvm data]# qemu-img info liyu.raw
image: liyu.raw
file format: raw
virtual size: 1.0G (1073741824 bytes)       ###缩容成功

22、转化格式:

[root@kvm data]# qemu-img convert -f raw -O qcow2 liyu.raw liyu.qcow2  #-f指定将raw格式,转化为-O,qcow2格式,后面跟着两个要转化的文件
[root@kvm data]# ll -h
total 1.3G
-rw-r--r-- 1 root root 193K May  1 17:03 liyu.qcow2
-rw-r--r-- 1 root root 1.0G May  1 16:50 liyu.raw
-rw------- 1 qemu qemu  11G May  1 17:03 nebula1.qcow2

格式转化完之后,要修改配置文件才起效:(以liyu举例)

[root@kvm data]# virsh  edit   liyu
修改disk里的raw为qcow2,修改type的raw为qcow2。修改两处
再开启它:
[root@kvm data]# virsh start liyu

qcow2是一个写时复制的磁盘格式,你给这个磁盘写入2G的内容,ll -h看就增加了2G,如果此时你觉得占用空间,删掉了2G的内容,再df -h查看,原来增加的2G内存还在,因为qcow2格式文件只能增,不能减。

五、快照管理

创建快照:(快照会保存在磁盘文件里,所以每创建一个快照,磁盘文件的内存就会越变越大)

[root@kvm ~]# virsh snapshot-create nebula1
Domain snapshot 1619861008 created
[root@kvm ~]# virsh snapshot-list nebula1
 Name                 Creation Time             State
------------------------------------------------------------
 1619861008           2021-05-01 17:23:28 +0800 running
 
[root@kvm ~]# date +%s  #上列1619861008为unix时间戳(距离197000秒过了多少秒),和date +%s时间差不多
1619861052

删除快照:

[root@kvm ~]# virsh snapshot-delete nebula1 --snapshotname  1619861008
Domain snapshot 1619861008 deleted

我们不想以时间戳为名字命名快照,比如想以安装环境配置好了为快照名字,可以采取以下命令:

[root@kvm ~]# virsh snapshot-create-as --name env_ok nebula1
Domain snapshot env_ok created
[root@kvm ~]# virsh snapshot-list nebula1
 Name                 Creation Time             State
------------------------------------------------------------
 env_ok               2021-05-01 17:34:11 +0800  running

还原快照:比如我们不小心删根了,我们可以还原快照:

[root@kvm ~]# virsh snapshot-revert nebula1  --snapshotname env_ok

六、KVM虚拟机的克隆

1、完整克隆

kvm虚拟化管理工具_第7张图片
纯自动克隆

-o指定旧的虚拟机,-n指定新的虚拟机

[root@kvm ~]# virt-clone --auto-clone -o nebula1 -n backup
WARNING  Setting the graphics device port to autoport, in order to avoid confli                                                 cting.
WARNING  The requested volume capacity will exceed the available pool space whe                                                 n the volume is fully allocated. (10240 M requested capacity > 4194 M available                                                 )
Allocating 'backup.qcow2'                                  |  10 GB  00:08

Clone 'backup' created successfully.

再进行查看就可以看到克隆的虚拟机了,磁盘文件存放在和克隆虚拟机一样的位置

[root@kvm ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     backup                         shut off
 -     nebula1                        shut off

[root@kvm ~]# virsh dumpxml backup|grep -i 'qcow2'
      <driver name='qemu' type='qcow2'/>
      <source file='/data/backup.qcow2'/>

2、链接克隆

链接克隆没有纯自动克隆,所以得手动克隆,手动克隆需要有磁盘文件加配置文件,自动克隆我们可以写个脚本如下。

磁盘文件创建如下:

[root@kvm data]# qemu-img create -f qcow2 -b nebula1.qcow2 web01.qcow2
Formatting 'web01.qcow2', fmt=qcow2 size=10737418240 backing_file='nebula1.qcow2' encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm data]# ll -h    #可以看到占用空间很小
total 2.9G
-rw------- 1 root root 1.3G May  4 17:46 backup.qcow2
-rw------- 1 root root  11G May  4 17:42 nebula1.qcow2
-rw-r--r-- 1 root root 193K May  4 18:30 web01.qcow2

[root@kvm data]# qemu-img info web01.qcow2
image: web01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: nebula1.qcow2    #源克隆文件是nebula1.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false

配置文件创建如下:

[root@kvm data]# virsh dumpxml nebula1 >> web01.xml  #随便找一个xml文件导入给新克隆的虚拟机
[root@kvm data]# ls
backup.qcow2  nebula1.qcow2  web01.qcow2  web01.xml
[root@kvm data]# vim web01.xml  #修改配置文件
 <name>web01</name>
 <source file='/data/web01.qcow2'/>
 <graphics type='vnc' port='15954' autoport='no' listen='0.0.0.0'>
#因为我们创建nebula1时的端口号是指定的,所以这里端口号也要修改,不然会冲突
再将uuid和mac地址那两行全部删掉,启动时系统会重新生成新的uuid和mac地址

再导入配置文件,进行启动

[root@kvm data]# virsh define web01.xml
Domain web01 defined from web01.xml

[root@kvm data]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     backup                         shut off
 -     nebula1                        shut off
 -     web01                          shut off

[root@kvm data]# virsh start web01
Domain web01 started

全自动链接克隆虚拟机脚本

kvm虚拟化管理工具_第8张图片

[root@kvm scripts]# sh conle-vm.sh centos7 test
Domain test defined from /tmp/test.xml

Domain test started

全自动链接克隆脚本就写好了

七、kvm虚拟机的桥接模式

如果用NAT模式,在浏览器上会找不到网页,而且会生成一个新的网段,使用桥接模式不用端口映射,直接连接,给虚拟机分配的ip也是宿主机网段的。

在安装kvm虚拟机时也要指定网络为桥接模式 –network bridge=br0
1、创建桥接模式

virsh iface-bridge ens33 br0

2、取消桥接模式

virsh iface-unbridge br0

3、也可以修改网卡配置文件,不过我觉得第一种方法更简便
这个是ens33的网卡配置内容
kvm虚拟化管理工具_第9张图片
这个是桥接网络virbr0的配置文件
kvm虚拟化管理工具_第10张图片

八、热添加技术

所谓热添加就是在开机状态下添加

1、在线热添加硬盘(含临时,永久添加及剥离硬盘)

先给nebula1的磁盘加5G容量

[root@kvm data]# qemu-img create -f qcow2 nebula1-add.qcow2 5G

然后再来创建磁盘(源虚拟机,源虚拟机磁盘路径,目标磁盘)

[root@kvm data]# virsh attach-disk nebula1 /data/nebula1-add.qcow2 vdb
Disk attached successfully

此时vdb磁盘已经添加成功,在kvm虚拟机里执行fdisk -l就可以看到添加的磁盘
kvm虚拟化管理工具_第11张图片
可是为什么刚才明明加了5G内容,vdb上面却显示0MB呢?因为添加硬盘的时候要指定磁盘类型,不指定默认为raw类型,qcow2的磁盘肯定显示不了raw磁盘的大小,所以我们现在要把添加的硬盘剥离出来,使用以下命令:(临时剥离硬盘),要想永久剥离硬盘和下面永久添加硬盘一样,加上- -config参数

[root@kvm data]# virsh detach-disk nebula1 vdb
Disk detached successfully

然后要指定添加硬盘的类型为qcow2,添加最后一个参数

[root@kvm images]# virsh attach-disk nebula1 /data/nebula1-add.qcow2 vdb --subdriver qcow2
Disk attached successfully

这下再进到kvm虚拟机里fdisk -l就可以看到刚才添加的5G硬盘容量了
kvm虚拟化管理工具_第12张图片
但是!在我们强制关机之后,再次开机进入到kvm虚拟机以后,添加的硬盘又不见了,因为这只是临时添加,所以我们想要以后开机添加的硬盘永久存在就得永久添加,加上下列参数即可。

[root@kvm images]# virsh attach-disk nebula1 /data/nebula1-add.qcow2 vdb --subdriver qcow2 --config

- -config这个参数是在下次重启的时候才生效。

要想这块添加的盘能用还得格式化(mkfs.xfs /dev/vdb),再进行挂载,查看
kvm虚拟化管理工具_第13张图片

2、在线扩容

在进行扩容时,必须要将刚才挂载的硬盘卸载掉

umount /mnt

还要把刚才添加的硬盘剥离出来

[root@kvm images]# virsh detach-disk nebula1 vdb
Disk detached successfully

再给它进行扩容然后进行查看,磁盘容量已经由我们添加的5G变为8G了

[root@kvm images]# qemu-img resize /data/nebula1-add.qcow2 +3G
Image resized.
[root@kvm images]# qemu-img info /data/nebula1-add.qcow2
image: /data/nebula1-add.qcow2
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 16M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

现在再将磁盘添加上去

[root@kvm images]# virsh attach-disk nebula1 /data/nebula1-add.qcow2 vdb --subd                                                 river qcow2
Disk attached successfully

再在kvm虚拟机的磁盘挂载上去,我们看到之前拷贝的文件也没有丢失,但是df -h时看到磁盘还是5G,并没有更新到8G
kvm虚拟化管理工具_第14张图片
为什么呢?因为我们在格式化时已经规定了inode和block大小(超级块),但是我们扩容的盘在后面,所以得更新一下超级块信息
kvm虚拟化管理工具_第15张图片
用以下命令更新超级块信息,可以看到block信息已经更新了

kvm虚拟化管理工具_第16张图片
再次df -h查看,由5G变成8G了
kvm虚拟化管理工具_第17张图片
如果是ext3/ext4文件系统,则用resize2fs /dev/vdb来更新
扩容的思路:
kvm虚拟化管理工具_第18张图片

3、在线热添加网卡(含移除网卡)

添加- -model virtio参数,附加的网卡就是按顺序来的,eth0,eth1

[root@kvm ~]# virsh attach-interface nebula1 --type bridge --source virbr0 --model virtio
Interface attached successfully

在kvm虚拟机里可以查看IP,看到新增网卡eth1
kvm虚拟化管理工具_第19张图片
移除网卡:

[root@kvm images]# virsh detach-interface nebula1 --type bridge
error: Domain has 2 interfaces. Please specify which one to detach using --mac
error: Failed to detach interface

上述方式移除网卡会提示有两块接口都是bridge类型,需要指定mac地址进行移除,看到上图eth1的mac地址为52:54:00:2f:f2:5f,所以加上mac参数

[root@kvm images]# virsh detach-interface nebula1 --type bridge --mac 52:54:00:                                                 2f:f2:5f
Interface detached successfully

可以看到kvm虚拟机里的eth1没了,移除网卡成功
kvm虚拟化管理工具_第20张图片
这只是临时修改,要想永久生效还得加上- -config参数

4、在线热添加内存

注意这里刚开始安装的Kvm虚拟机要指定现有内存以及最大内存,才方便以后添加内存

virt-install --name=nebula --virt-type=kvm --memory 800,maxmemory=1024 --vcpus 1 --cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso --disk path=/home/images/nebula.qcow2,size=10 --network bridge=br0 --graphicsvnc --vncport=15950 --vnclisten=0.0.0.0 --noautoconsole --autostart

添加内存的命令如下

[root@kvm images]# virsh setmem nebula1 1024M

在kvm虚拟机里查看内存容量,就看到增加了
kvm虚拟化管理工具_第21张图片
但是如果我们安装kvm虚拟机的时候没有指定最大内存,那么就要进入到配置文件里面修改了,你可以将单位修改为MIB,保存文件再次进入时系统就会自动转换单位为KB

[root@kvm images]# vim nebula1.xml
 <memory unit='KiB'>1048576</memory>
 <currentMemory unit='KiB'>819200</currentMemory>

如果修改的虚拟机处于运行状态,那么修改的配置文件是不会生效的,需要重启才会生效。

5、在线热添加cpu

用下列命令安装kvm虚拟机的时候,就有添加cpu信息,最大cpu数量

virt-install --name=nebula --virt-type=kvm --memory 800,maxmemory=1024  --vcpus 1,maxvcpus=10 --cdrom=/home/iso/CentOS-7-x86_64-Minimal-1708.iso --disk path=/home/images/nebula.qcow2,size=10 --network bridge=br0 --graphicsvnc --vncport=15950 --vnclisten=0.0.0.0 --noautoconsole --autostart

然后再设置CPU数量,将nebula1的CPU调整为2

[root@kvm images]# virsh setvcpus nebula1 2

再lscpu查看就可以看到两个cpu了,原来只有0,现在是0和1
kvm虚拟化管理工具_第22张图片
那么cpu可以加,可以减吗?我们试一下,可以看到之前的cpu数量是6,现在设置为2,提示不支持CPU回收
在这里插入图片描述

6、kvm虚拟机的热迁移

见下一篇,这一篇写不下了

你可能感兴趣的:(kvm虚拟化管理工具)