KVM的克隆、快照都是老生常谈的问题,资料也非常多,这里只是针对个人实验的记录,方便以后查阅。
虚拟机克隆

虚拟机的克隆操作是再频繁不过了,安装好第一台虚拟机后就可以进行基础设置,已此虚拟机为模板,以后直接克隆,而不需要重复进行系统安装工作。

克隆虚拟机首先需要关闭或者挂起虚拟机

[root@kvm7 vps] virsh shutdown vm01

克隆vm01虚拟机为vm02

virt-clone -o vm01 -n vm02 -f /home/vps/vm02.img

克隆会非常占用磁盘IO ,如果是在虚拟机里面做实验,又是机械硬盘的话本地电脑都会很卡。

如果之前创建的虚拟机vm01 是配置了固定VNC端口,那么就需要修改一下vm02的配置文件,将VNC端口改为其他,避免冲突,当然如果是autoport=’yes’ 状态则无需调整。

虚拟机快照

kvm快照有两种方式创建,分别是:

qemu-img snapshot 命令进行生成快照
virsh snapshot 相关命令进行生成快照

查询了下qemu-img 生成快照需要关机,而且很多网友反应数据丢失,相对来讲大家都推荐virsh snapshot 创建快照。

磁盘转换

如果是raw格式的磁盘是不支持快照的,如果是raw磁盘格式,需要转换为qcow2

[root@kvm7 vps] qemu-img info vm01.img
image: vm01.img
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 2.5G
[root@kvm7 vps] qemu-img convert -f raw -O qcow2 vm01.img vm01.qcow2 #在虚拟机磁盘文件目录下复制并转换为qcow2格式
[root@kvm7 vps] qemu-img info vm01.qcow2
image: vm01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 2.3G
cluster_size: 65536
创建快照

给虚拟机vm01创建快照:

[root@localhost vps] virsh snapshot-create vm01

查看快照:

[root@kvm7 vps] virsh snapshot-list vm01
名称 Creation Time 状态
------------------------------------------------------------
1481193249 2016-12-08 18:34:09 +0800 running

当前虚拟机对应的快照是存储在/var/lib/libvirt/qemu/snapshot/vm01 目录下,也就是一个xml文件,查看快照配置可以使用命令:

[root@kvm7 vps] virsh snapshot-current  vm01
恢复快照

在vm01中生成几个文件,然后恢复快照简单测试一下:

恢复快照是需要关闭虚拟机的,所以先关闭vm01主机:

[root@kvm7 vps] virsh shutdown vm01

域vm01被关闭

查看虚拟机状态:

[root@kvm7 vps] virsh domstate vm01

关闭

执行恢复快照:查看到vm01快照时间为1481193249

[root@kvm7 vps] virsh snapshot-revert vm01 1481193249

对比下之前创建的三个文件,已经没有了,快照恢复成功。

查看对应的磁盘是否存在快照也很简单,创建了快照的磁盘通过info 查看会显示出快照信息:

[root@kvm7 vps] qemu-img info vm01.img
image: vm01.img
file format: qcow2
virtual size: 8.0G (8589934592 bytes)
disk size: 2.7G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1481193249 212M 2016-12-08 18:34:09 00:00:25.775
删除快照
[root@kvm7 vps] virsh snapshot-delete vm01 1481193249

https://www.51cto.com/it/news/2019/1125/16914.html

最新文章

  1. HTML URL地址解析
  2. 常用类-StringBuffer
  3. bin/sh^M: bad interpreter: No such file or directory解决
  4. 【hihoCoder】1033: 交错和
  5. [Qt5] Develop openCV3 by QML on Qt-creator
  6. ANDROID学习书单
  7. git/gitLab
  8. 安装.NET CORE
  9. 使用source Insight工具创建uboot工程。
  10. handler.post 为什么要将thread对象post到handler中执行呢?
  11. Ghost win7 系统安装(虚拟机)
  12. 一道sql面试题(查询语句)
  13. Hdoj 2046.骨牌铺方格 题解
  14. Nginx (安装+ 配置域名+ 访问认证 +发布文件)
  15. Linux系统下分析内存使用情况的管理工具
  16. for 没有作用域的说话
  17. Python学习笔记 -- 第四章
  18. QUIC:基于udp的传输新技术
  19. libgdx学习记录24——九宫格NinePatch
  20. CSS框架960Grid从入门到精通一步登天

热门文章

  1. LearnOpenGL.PBR.工作流贴图
  2. 201871010111-刘佳华《面向对象程序设计(java)》第二周学习总结
  3. python处理JSON 序列化与反序列化
  4. day6_面向对象的概念
  5. 【入门篇一】HelloWorld演示(2)
  6. Vue.js如何获得兄弟元素,子元素,父元素(DOM操作)
  7. django之表设计、路由层等
  8. 论文阅读笔记五十九:Res2Net: A New Multi-scale Backbone Architecture(CVPR2019)
  9. <String> 49 87
  10. [LeetCode] 114. Flatten Binary Tree to Linked List 将二叉树展开成链表