使用KVM命令管理虚拟机

前言:在上一篇博客中已经完成对虚拟机的创建,系统也正常工作,可以配上IP地址让终端远程控制它。下面将介绍如何使用KVM命令来管理虚拟机
上一篇博客地址连接KVM虚拟化架构理论与实操

文章目录

  • 一、KVM基本功能管理
    • 1.查看命令帮助
    • 2.查看KVM配置文件存放目录
    • 3.查看所有虚拟机状态
    • 4.开启与关闭虚拟机
    • 5.强制关闭centos7.6虚拟机的电源
    • 6.通过配置文件启动虚拟机系统实列
    • 7.挂起与恢复centos7.6虚拟机
    • 8.自动启动
    • 9.导出虚拟机centos7.6配置
  • 二、删除与添加虚拟机
  • 三、KVM文件管理
    • 1.查看当前磁盘格式
    • 2.virt-cat 命令, 类似于 cat 命令
    • 3.virt-edit 命令
    • 4.virt-df 命令
    • 5.虚拟机克隆
  • 四、虚拟机快照
    • 1.对 centos7.6 创建快照
    • 2.查看虚拟机快照版本信息
    • 3.查看快照信息
    • 4.创建新快照
    • 5.查看快照信息
    • 6.恢复虚拟机状态至 1503494464
    • 7. 查看虚拟机快照版本信息
    • 8.删除快照

一、KVM基本功能管理

1.查看命令帮助

[root@localhost ~]# virsh -h 

virsh [options]... []
virsh [options]...  [args...]

  options:
    -c | --connect=URI      hypervisor connection URI
    -d | --debug=NUM        debug level [0-4]
    -e | --escape     set escape sequence for console
    -h | --help             this help
    -k | --keepalive-interval=NUM
                            keepalive interval in seconds, 0 for disable
    -K | --keepalive-count=NUM
                            number of possible missed keepalive messages
    -l | --log=FILE         output logging to file
    -q | --quiet            quiet mode
    -r | --readonly         connect readonly
    -t | --timing           print timing information
    -v                      short version
    -V                      long version
         --version[=TYPE]   version, TYPE is short or long (default short)
  commands (non interactive mode):
  。。。省略部分内容

2.查看KVM配置文件存放目录

[root@localhost ~]# ls /etc/libvirt/qemu      
autostart  centos7.6.xml  networks

3.查看所有虚拟机状态

[root@localhost ~]# virsh list --all           
 Id    名称                         状态
----------------------------------------------------
 2     centos7.6                      running

4.开启与关闭虚拟机

[root@localhost ~]# virsh shutdown centos7.6     //关闭centos7.6虚拟机
域 centos7.6 被关闭

[root@localhost ~]# virsh start centos7.6      //开启centos7.6虚拟机
域 centos7.6 已开始

5.强制关闭centos7.6虚拟机的电源

[root@localhost ~]# virsh destroy centos7.6  
域 centos7.6 被删除

6.通过配置文件启动虚拟机系统实列

[root@localhost ~]# virsh create /etc/libvirt/qemu/centos7.6.xml 
域 centos7.6 被创建(从 /etc/libvirt/qemu/centos7.6.xml)

7.挂起与恢复centos7.6虚拟机

[root@localhost ~]# virsh suspend centos7.6     //挂起centos7.6虚拟机 
域 centos7.6 被挂起
[root@localhost ~]# virsh list --all    //centos7.6虚拟机 是暂停的,说明被挂起了
 Id    名称                         状态
----------------------------------------------------
 4     centos7.6                      暂停
[root@localhost ~]# virsh resume centos7.6   //从挂起中恢复centos7.0虚拟机
域 centos7.6 被重新恢复
[root@localhost ~]# virsh list --all    //centos7.6虚拟机 是运行的的,说明在被挂起时,恢复运行正常了
 Id    名称                         状态
----------------------------------------------------
 4     centos7.6                      running

8.自动启动

[root@localhost ~]# virsh autostart centos7.6   //centos7.6虚拟机伴随宿主机自动启动
域 centos7.6标记为自动开始

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 4     centos7.6                      running

[root@localhost ~]# virsh shutdown centos7.6 
域 centos7.6 被关闭

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos7.6                      关闭

[root@localhost ~]# init 6

[root@localhost ~]#  virsh list --all       //centos7.6虚拟机已经伴随宿主机自动启动
 Id    名称                         状态
----------------------------------------------------
 1     centos7.6                      running

9.导出虚拟机centos7.6配置

[root@localhost ~]# virsh dumpxml centos7.6 >/opt/c1.xml 

二、删除与添加虚拟机

[root@localhost ~]# virsh undefine centos7.6   //删除centos7.0虚拟机 ,磁盘文件不会被删除
域 centos7.6 已经被取消定义
[root@localhost qemu]# ll     //centos7.6.xml 信息没了
总用量 0 
drwxr-xr-x  2 root root  6 4月  19 18:41 autostart
drwx------. 3 root root 42 4月  19 00:56 networks
  
[root@localhost qemu]# virsh list --all             //centos7.6信息没了
 Id    名称                         状态
----------------------------------------------------

[root@localhost qemu]# cp /opt/c1.xml /etc/libvirt/qemu/centos7.6

[root@localhost qemu]# virsh define centos7.6 
定义域 centos7.6(从 centos7.6)

[root@localhost qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos7.6                      关闭
[root@localhost qemu]# cp /opt/c1.xml /etc/libvirt/qemu/centos7.0
[root@localhost qemu]# virsh define centos7.0 
定义域 centos7.0(从 centos7.0)

[root@localhost qemu]#  virsh list --all    
 Id    名称                         状态
----------------------------------------------------
 -     centos7.0                      关闭

[root@localhost qemu]# vi /etc/libvirt/qemu/centos7.6   //通过这个配置文件可以修改虚拟机信息
[root@localhost qemu]# virsh edit centos7.6    //这条命令也可以修改

三、KVM文件管理

  • 通过文件管理可以直接查看、 修改、 复制虚拟机的内部文件。 例如, 当系统因为配置问题无法启动时, 可以直接修改虚拟机的文件。 虚拟机磁盘文件有 raw、 qcow2 与 qed 格式,KVM 虚拟机默认使用 qcow2 格式。 这里介绍本地 YUM 安装 libguestfs-tools 后产生的命令行工具, 这个工具可以直接读取 qcow2 格式的磁盘文件

1.查看当前磁盘格式

[root@localhost ~]# qemu-img info /data_kvm/store/bdqn_kvm.img 
image: /data_kvm/store/bdqn_kvm.img
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 9.0G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: true
  • 如果虚拟机磁盘文件不是 qcow2 格式, 可以通过 qemu-img 命令转换磁盘文件格式, 如执行以下操作可以将 test01 虚拟机 raw 格式磁盘转换至 qcow2 格式
  • 下面是将qcow2格式转为raw格式
[root@localhost ~]# virsh shutdown centos7.6

[root@localhost ~]# qemu-img convert -f qcow2  -O raw /data_kvm/store/bdqn_kvm.img  /data_kvm/store/bdqn_kvm.qcow2

qemu-img convert -f raw  -O qcow2 /data_kvm/store/bdqn_kvm.qcow2 /data_kvm/store/bdqn_kvm.img  

[root@localhost ~]# qemu-img info /data_kvm/store/bdqn_kvm.qcow2   ##
image: /data_kvm/store/bdqn_kvm.qcow2
file format: raw
virtual size: 9.0G (9663676416 bytes)
disk size: 4.5G

[root@localhost ~]# virsh edit centos7.6 
。。。。。。。
    
                      //原来的qcow  改为raw 因为上面转化的格式变了
           //上面转化后的路径的也变了

[root@localhost ~]# virsh start centos7.6     //启动虚拟机
域 centos7.6 已开始

[root@localhost ~]# virsh list --all      //查看虚拟机状态
 Id    名称                         状态
----------------------------------------------------
 3     centos7.6                      running

2.virt-cat 命令, 类似于 cat 命令

  • 使用这个命令需要安装 libguestfs-tools-c 工具包
[root@localhost ~]# yum -y install libguestfs-tools-c
[root@localhost ~]# virt-cat -a /data_kvm/store/bdqn_kvm.qcow2 /etc/sysconfig/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

3.virt-edit 命令

  • virt-edit 命令, 用于编辑文件, 用法与 vim 基本一致。通俗理解方法是修改直接修改虚拟机里面的配置文件
[root@localhost ~]# virt-edit -a /data_kvm/store/bdqn_kvm.qcow2 /etc/resolv.conf  ###
nameserver 8.8.8.8

4.virt-df 命令

  • virt-df 命令用于查看虚拟机磁盘信息
[root@localhost ~]# virt-df -h centos7.6
文件系统                            大小 已用空间 可用空间 使用百分比%
centos7.6:/dev/sda1                      1014M       146M       868M   15%
centos7.6:/dev/centos/root                7.1G       3.9G       3.1G   56%

5.虚拟机克隆

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 3     centos7.6                      running

[root@localhost ~]# virsh shutdown centos7.6 
域 centos7.6 被关闭

[root@localhost ~]# virt-clone -o centos7.6 -n centos7.3 -f /data_kvm/store/bdqn_kvm7.3.qcow2
正在分配 'bdqn_kvm7.3.qcow2'                            | 9.0 GB  00:34     

//成功克隆 centos7.3

[root@localhost ~]# virsh start centos7.3 
域 centos7.3 已开始

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 7     centos7.3                      running       //centos7.3启动了
 -     centos7.6                      关闭

四、虚拟机快照

  • raw不支持快照
[root@localhost ~]# virsh snapshot-create centos7.3     
错误:不支持的配置:存储类型 vda 不支持磁盘 raw 的内部快照


[root@localhost ~]# qemu-img convert -f raw  -O qcow2 /data_kvm/store/bdqn_kvm.qcow2 /data_kvm/store/bdqn_kvm.img  

[root@localhost ~]# virsh edit centos7.6

  centos7.6
  582606e6-f450-4ed9-b5d2-e5cd049a7887
  2097152
  2097152
  2
  
    /machine
  
  
    hvm
    
  
  
    
    
  
  
    Haswell
    
    
    
    
    
  
  
    
    
    
  
  destroy
  restart
  destroy
  
    
    
  
  
    /usr/libexec/qemu-kvm
    
           ###改格式###
          ###改路径###
      
      
"/tmp/virshknLTQF.xml" 123L, 4575C written 编辑了域 centos7.6 XML 配置。 [root@localhost ~]# virsh start centos7.6 域 centos7.6 已开始 [root@localhost ~]# virsh list --all Id 名称 状态 ---------------------------------------------------- 7 centos7.3 running 8 centos7.6 running

1.对 centos7.6 创建快照

[root@localhost ~]# virsh snapshot-create centos7.6 
已生成域快照 1555672796

2.查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current centos7.6

  1555672796
  running
  1555672796
  
  。。。省略部分内容
  
  
  

。。。省略部分内容

3.查看快照信息

[root@localhost ~]#  virsh snapshot-list centos7.6
 名称               生成时间              状态
------------------------------------------------------------
 1555672796           2020-02-19 19:19:56 +0800 running

4.创建新快照

[root@localhost ~]# virsh snapshot-create centos7.6
已生成域快照 1555673091

5.查看快照信息

[root@localhost ~]# virsh snapshot-list centos7.6
 名称               生成时间              状态
------------------------------------------------------------
 1555672796           2020-02-19 19:19:56 +0800 running
 1555673091           2020-02-19 19:24:51 +0800 running

6.恢复虚拟机状态至 1503494464

[root@localhost ~]# virsh snapshot-revert centos7.6 1555672796

7. 查看虚拟机快照版本信息

[root@localhost ~]# virsh snapshot-current centos7.6 

  1555672796      //当前快照状态是1555672796
  running
  1555672796
  
  
。。。省略部分内容

8.删除快照

[root@localhost ~]# virsh snapshot-delete centos7.6  1555672796
已删除域快照 1555672796

[root@localhost ~]# virsh snapshot-list centos7.6     //1555672796快照已经删除
 名称               生成时间              状态
------------------------------------------------------------
 1555673091           2020-02-19 19:24:51 +0800 running

你可能感兴趣的:(虚拟化)