目录

1、基本操作指令

2、vm删除与恢复

3、设置vm自启动

4、vm克隆

5、vm快照


本文包括KVM虚拟化操作中的:
基本命令操作、虚拟机删除与恢复、虚拟机自启动、虚拟机克隆、虚拟机镜像操作

1、基本操作指令

[root@linux-node1 /]# virsh shutdown CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 被关闭
[root@linux-node1 /]# virsh start CentOS-7.1-x86_64   
域 CentOS-7.1-x86_64 已开始
[root@linux-node1 /]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     CentOS-7.1-x86_64              running
[root@linux-node1 /]# virsh suspend CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 被挂起
[root@linux-node1 /]# virsh resume CentOS-7.1-x86_64 
域 CentOS-7.1-x86_64 被重新恢复
[root@linux-node1 ~]# virsh dominfo CentOS-7.1-x86_64
Id:             1
名称:       CentOS-7.1-x86_64
UUID:           2e66d4f3-96b4-43ad-9da1-b5007f110c23
OS 类型:    hvm
状态:       running
CPU:          1
CPU 时间:   643.7s
最大内存: 1048576 KiB
使用的内存: 1048576 KiB
持久:       是
自动启动: 启用
管理的保存: 否
安全性模式: none
安全性 DOI: 0

 

2、vm删除与恢复

# 删除vm 

[root@linux-node1 qemu]# cd /etc/libvirt/qemu
[root@linux-node1 qemu]# ls
CentOS-7.1-x86_64.xml  networks
[root@linux-node1 qemu]# virsh undefine CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 已经被取消定义

# 此时虽然running,一旦关闭vm就会消失

[root@linux-node1 qemu]# virsh list
 Id    名称                         状态
----------------------------------------------------
 2     CentOS-7.1-x86_64              running
[root@linux-node1 qemu]# ls
networks

# 备份当前运行vm状态,生成备份配置文件

[root@linux-node1 qemu]# virsh dumpxml CentOS-7.1-x86_64 > kvm1.xml
[root@linux-node1 qemu]# ls
kvm1.xml  networks

# 关闭虚拟机,vm已消失

[root@linux-node1 qemu]# virsh shutdown CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 被关闭
[root@linux-node1 qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------

# vm加载备份配置文件,恢复虚拟机

[root@linux-node1 qemu]# virsh define kvm1.xml
定义域 CentOS-7.1-x86_64(从 kvm1.xml)
[root@linux-node1 qemu]# virsh list --all     
 Id    名称                         状态
----------------------------------------------------
 -     CentOS-7.1-x86_64              关闭
[root@linux-node1 qemu]# virsh start CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 已开始
[root@linux-node1 qemu]# virsh list
 Id    名称                         状态
----------------------------------------------------
 3     CentOS-7.1-x86_64              running

# 相应配置文件已自动重新生成

[root@linux-node1 qemu]# ls
CentOS-7.1-x86_64.xml  kvm1.xml  networks

3、设置vm自启动

[root@linux-node1 qemu]# virsh autostart  CentOS-7.1-x86_64
域 CentOS-7.1-x86_64标记为自动开始
[root@linux-node1 qemu]# ls
autostart  CentOS-7.1-x86_64.xml  kvm1.xml  networks
[root@linux-node1 qemu]# cat autostart/
cat: autostart/: 是一个目录
[root@linux-node1 qemu]# 
[root@linux-node1 qemu]# ll  autostart/
总用量 0
lrwxrwxrwx 1 root root 39 4月  10 19:00 CentOS-7.1-x86_64.xml -> /etc/libvirt/qemu/CentOS-7.1-x86_64.xml

4、vm克隆

# virt-clone命令直接克隆(命令迁移)

[root@linux-node1 qemu]# virsh shutdown CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 被关闭
[root@linux-node1 qemu]# virt-clone -o CentOS-7.1-x86_64 -n centos7 -f /opt/centos7.img --check all=off
等待克隆成功即可。
#因为直接克隆后vnc端口设置-1,随机,mac地址,UUID也都是随机
#所以在开机之前先根据编写好的mac地址与vnc端口进行编辑xml配置文件
<graphics type='vnc' port='5913' autoport='no' listen='0.0.0.0'>
  <listen type='address' address='0.0.0.0'/>
#vm在克隆后,会出现网卡冲突,需要修改此配置文件
vi /etc/udev/rules.d/70-persistent-net.rules


# 拷贝xml与disk文件克隆(异机迁移)

[root@linux-node1 qemu]# cp /opt/CentOS-7.1-x86_64.raw /opt/newvm.raw  # 复制虚拟机文件
[root@linux-node1 qemu]# cp /etc/libvirt/qemu/CentOS-7.1-x86_64.xml /etc/libvirt/qemu/newvm.xml  # 复制配置文件
[root@linux-node1 qemu]# vim newvm.xml  # 修改为实际新的配置
<name>newvm</name>
  <uuid>cce3195a-4fd6-4fcd-8f4b-5757021e2330</uuid>
...
<source file='/opt/newvm.img'/>
...
<mac address='52:54:00:37:5f:a6'/>
...
<graphics type='vnc' port='5914' autoport='no' listen='0.0.0.0'>
[root@linux-node1 qemu]# virsh define newvm.xml  # 加载配置文件定义虚拟机
[root@linux-node1 qemu]# virsh start newvm  # 启动
[root@linux-node1 qemu]# virsh console newvm  # 连接到客户会话

5、vm快照

# 首先关闭vm

[root@linux-node1 qemu]# virsh shutdown CentOS-7.1-x86_64
域 CentOS-7.1-x86_64 被关闭

# 默认raw磁盘不支持快照
# kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。

[root@linux-node1 qemu]# cd /opt/
[root@linux-node1 opt]# qemu-img info CentOS-7.1-x86_64.raw
image: CentOS-7.1-x86_64.raw
file format: raw
virtual size: 5.0G (5368709120 bytes)
disk size: 1.3G

# 转换镜像格式,虚拟机必须先关机

[root@linux-node1 opt]# qemu-img  convert -f raw  -O qcow2 CentOS-7.1-x86_64.raw  CentOS-7.1-x86_64.qcow2
[root@linux-node1 opt]# ll
总用量 3644904
-rw-r--r-- 1 root root 1385365504 4月  10 19:45 CentOS-7.1-x86_64.qcow2
-rw-r--r-- 1 qemu qemu 5368709120 4月  10 20:06 CentOS-7.1-x86_64.raw
-rw-r--r-- 1 qemu qemu  950009856 4月  10 14:50 CentOS-7-x86_64-DVD-1503-01.iso

# 修改配置文件的disk模块,把磁盘改成最新的qcow2的这个文件,同时格式也改成qcow2的

[root@linux-node1 opt]# virsh edit CentOS-7.1-x86_64
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/CentOS-7.1-x86_64.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>

# 生成快照

[root@linux-node1 opt]# virsh shutdown  CentOS-7.1-x86_64 
[root@linux-node1 opt]# virsh start  CentOS-7.1-x86_64   
[root@linux-node1 opt]# virsh snapshot-create  CentOS-7.1-x86_64      
已生成域快照 1586528255
[root@linux-node1 opt]# virsh snapshot-info CentOS-7.1-x86_64  1586528255    
名称:       1586528255
域:          CentOS-7.1-x86_64
当前:       是
状态:       running
位置:       内部
上级:       -
下级:       0
降序:       0
元数据:    是

# 快照存放目录已有文件生成

[root@linux-node1 snapshot]# ls /var/lib/libvirt/qemu/snapshot
CentOS-7.1-x86_64

# 恢复快照到某个版本

[root@linux-node1 CentOS-7.1-x86_64]# virsh snapshot-list  CentOS-7.1-x86_64
 名称               生成时间              状态
------------------------------------------------------------
 1586528255           2020-04-10 22:17:35 +0800 running
 1586528708           2020-04-10 22:25:08 +0800 running
 1586528743           2020-04-10 22:25:43 +0800 running

[root@linux-node1 CentOS-7.1-x86_64]# virsh snapshot-revert CentOS-7.1-x86_64 1586528255

# 删除快照

[root@linux-node1 CentOS-7.1-x86_64]# virsh snapshot-delete CentOS-7.1-x86_64  1586528708
已删除域快照 1586528708


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐