没事学些KVM(三)虚拟机基础管理
阅读原文时间:2021年11月24日阅读:1

创建完成虚拟机后,需要对虚拟机进行基础管理学习

virsh list #查看虚拟机列表 改命令只能查看正在运行或挂起的虚拟机

如果需要查看所有的虚拟机需要添加--all 参数

virsh start XXXX     #开启虚拟机

virsh shutdown XXX   #关闭虚拟机,这属于正常关机;

virsh destory XXX      #关闭虚拟机,非正常关机;类似于拔电源;

一个磁盘文件,一个配置文件就可以完整表示一个虚机,根据创建虚机时的命令可知,磁盘文件存放在/opt下,配置文件保存于/etc/libvirt/qemu/路径下

[root@KVM03-10 opt]# cd /etc/libvirt/qemu/
[root@KVM03-10 qemu]# ll
total 8
-rw-------. 1 root root 4229 Aug 26 11:18 centos7.3.xml         #配置文件
drwx------. 3 root root 42 Aug 26 09:58 networks
[root@KVM03-10 qemu]# cd /opt/
[root@KVM03-10 opt]# ll
total 5509500
-rw-------. 1 root root 10737418240 Aug 26 22:36 centos2.1.raw    #磁盘文件
-rw-r--r--. 1 qemu qemu 4379901952 Apr 27 20:56 CentOS-7.3-x86_64-DVD-1611.iso
[root@KVM03-10 opt]#

备份配置文件的命令    virsh dumpxml  XXX   #配置文件格式是xml,直接用该命令讲会把该命令打印到屏幕,可追加到指定文件  >> /tmp/centos7.3

centos7.3 a9c5fb0f-9f5f-4f0b-87ca-06f4b6dfc62c 1048576 1048576 1 hvm Broadwell-noTSX-IBRS ¨C11C ¨C12C ¨C53C ¨C54C ¨C55C ¨C56C ¨C57C

通过配置文件和磁盘文件就可以实现虚机在另一处启动,这个过程就与在共享存储的情况下,虚机迁移的过程类似。换句话说,虚机迁移的时候只要保证这两个文件一致就可以实现迁移,只不过问题在与如何这两个文件的快速生效,也就关乎着虚机热迁移过程中的丢包情况。

virsh undefine XXX #首先删除某一虚拟机,然后将利用之前的虚机配置文件回复虚拟机。删除虚拟机必须在关机情况下进行,这过程与vmware workstation上虚机的工作流程类似,不允许在开机状态下对虚机进行销毁操作。

在磁盘文件中会定义该虚机的配置文件存放位置,如果位置不一致,将导致虚机恢复失败;

[root@KVM03-10 opt]# cat /tmp/centos7.3.xml | grep centos
centos7.3

[root@KVM03-10 opt]#

导入命令:virsh define XXX.xml

[root@KVM03-10 opt]# virsh define /tmp/centos7.3.xml
Domain centos7.3 defined from /tmp/centos7.3.xml
[root@KVM03-10 opt]#

执行undefine命令后会将/etc/libvirt/qemu/centos7.3.xml的配置文件删除,重新创建的时候又会在libvirt服务中增加对应配置文件。该文件不能手动导入,必须用命令!

[root@KVM03-10 opt]# ll /etc/libvirt/qemu/
total 8
-rw-------. 1 root root 4229 Aug 26 23:13 centos7.3.xml
drwx------. 3 root root 42 Aug 26 09:58 networks
[root@KVM03-10 opt]#

但是在很多情况下,导入的虚机可能会存在存放路径不一致、配置文件名称更改、磁盘文件移动位置等情况,如我把磁盘文件名称修改为centos.raw,重新导入就会报错。

[root@KVM03-10 opt]# mv centos2.1.raw centos.raw
[root@KVM03-10 opt]# ll
total 5509500
-rw-r--r--. 1 qemu qemu 4379901952 Apr 27 20:56 CentOS-7.3-x86_64-DVD-1611.iso
-rw-------. 1 root root 10737418240 Aug 26 22:36 centos.raw
[root@KVM03-10 opt]# virsh list --all

Id Name State

  • centos7.3 shut off
    [root@KVM03-10 opt]# virsh undefine centos7.3
    Domain centos7.3 has been undefined
    [root@KVM03-10 opt]# virsh list --all

Id Name State

[root@KVM03-10 opt]# cat /tmp/centos7.3.xml | grep centos
centos7.3

[root@KVM03-10 opt]# ll -h
total 5.3G
-rw-r--r--. 1 qemu qemu 4.1G Apr 27 20:56 CentOS-7.3-x86_64-DVD-1611.iso
-rw-------. 1 root root 10G Aug 26 22:36 centos.raw
[root@KVM03-10 opt]# virsh define centos7.3 error: Failed to open file 'centos7.3': No such file or directory
[root@KVM03-10 opt]#

这个时候的修复方法有两种:

第一种:因为知道该虚机的配置文件在哪,/etc/libvirt/qemu/centos7.3.xml,所以可以通过将通过vim 的形式直接去修改配置文件

[root@KVM03-10 opt]# vi /etc/libvirt/qemu/centos7.3.xml

destroy
restart
destroy


/usr/libexec/qemu-kvm



……………………

第二种:通过virsh edit XXX命令修改。推荐使用该方法,该命令自带检查buff,

[root@KVM03-10 opt]# virsh edit centos7.3
error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng
Element domain failed to validate attributes

Failed. Try again? [y,n,i,f,?]: #yes no ignore force help