文档章节

KVM-QEMU, QCOW2, QEMU-IMG and Snapshots

Firxiao
 Firxiao
发布于 2015/01/29 17:41
字数 1129
阅读 3.7K
收藏 24

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

介绍:

QCOW2格式是KVM-QEMU推出的一种镜像格式,它不预先分配全部的磁盘空间,支持快照功能,并且你可以用以前的镜像作为基础,创建出基于它的新镜像,这样可以加快创建虚拟机的速度。

这篇文章将讲述一些qemu-img的高级功能。我们会先创建一个QCOW2镜像(base镜像),为它做快照(base.snap1),创建一个基于它的新镜像(base.demo),让新镜像摆脱base镜像.

基础知识:

qem-img命令:

写这篇文章的时候,Virt-Manager不支持qcow2的高级功能,唯一使用这些高级功能的办法就是执行shell 命令

在看这篇文章之前你可以先看下qemu-img的man手册,找到你想使用的功能。文章中我们只讨论下面这些命令。

  • qemu-img info <imagename> 

  • 查看镜像基本信息 

     

  • qemu-img create -f qcow2 <镜像名字> <max-storage> 

  • 创建一个qcow2镜像。需要指定镜像容量.

     

  • qemu-img create -b <镜像1> -f qcow2  <镜像2> 

  • 创建一个基于镜像1的镜像2,镜像2的文件将基于镜像1,镜像2中的文件将基于镜像1中的.  在镜像2中所作的任何读写操作都不会影响到镜像1. 镜像1可以被其他镜像当做backing file. 但是要确保镜像1不要被修改

  • 警告: 修改作为backing file的镜像会影响基于它的所有镜像 

     

  • qemu-img snapshot -l <镜像名字> 

  • 查看镜像的所有快照 

 

  • qemu-img snapshot -c <快照名字> <镜像名字>

  • 为镜像创建快照,就像给它照了张像。

     

  • qemu-img snapshot -a <快照名字> <镜像名字> 

  • 恢复快照。 

     

  • qemu-img snapshot -d <快照名字> <镜像名字> 

  •  从镜像中删除快照,删除快照并不会减小镜像的所占空间。 但这样删除后释放的空间会给镜像自身将来使用。

     

  • qemu-img convert -p -f qcow2 <源镜像> -O qcow2 <目标镜像> 

  • 镜像格式的转换, 当转换的源镜像和目标镜像格式都是qcow2的时候相当于复制源镜像的当前状态至目标镜像。 -p参数是显示转换进度。 转换出的目标镜像将不含任何原有镜像快照。 这样有助于帮助镜像摆脱backing file。

     




     
  •  

实践 :

接下来我们将使用上面的命令来做实验。

创建一个1g大小的base镜像

qemu-img create -f qcow2 base.qcow2 1G

查看镜像信息

qemu-img info base.qcow2 
image: base.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 136K
cluster_size: 65536

创建快照snap1

qemu-img snapshot -c snap1 base.qcow2

查看镜像信息

qemu-img info base.qcow2 
image: base.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 144K
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         snap1                     0 2015-01-29 17:04:36   00:00:00.000

创建快照snap2并查看镜像信息

qemu-img snapshot -c snap2 base.qcow2
qemu-img info base.qcow2 
image: base.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 156K
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         snap1                     0 2015-01-29 17:04:36   00:00:00.000
2         snap2                     0 2015-01-29 17:07:03   00:00:00.000

 

删除快照snap1并查询镜像信息

qemu-img snapshot -d snap1 base.qcow2
qemu-img info base.qcow2 
image: base.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 156K
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
2         snap2                     0 2015-01-29 17:07:03   00:00:00.000

  恢复快照snap2

qemu-img snapshot -a snap2 base.qcow2

创建基于base.qcow2的镜像test1.qcow2

qemu-img create -b base.qcow2 -f qcow2 test1.qcow2
Formatting 'test1.qcow2', fmt=qcow2 size=1073741824 backing_file='base.qcow2' encryption=off cluster_size=65536

查看新建镜像的信息(注意最后一行)

qemu-img info test1.qcow2 
image: test1.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
backing file: base.qcow2

 

创建一个test-merge.qcow2 让 test1.qcow2 并摆脱backing file

qemu-img convert -p -f qcow2 test1.qcow2 -O qcow2 test1-merge.qcow2
    (100.00/100%)

查看镜像信息(注意最后没有了backing file)

qemu-img info test1-merge.qcow2 
image: test1-merge.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 136K
cluster_size: 65536

 

更改backing file 操作如下

#qemu-img info test1.qcow2 
image: test1.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
backing file: /opt/test/base.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false
# qemu-img rebase test1.qcow2 -b base2.qcow2 
# qemu-img info test1.qcow2 
image: test1.qcow2
file format: qcow2
virtual size: 1.0G (1073741824 bytes)
disk size: 196K
cluster_size: 65536
backing file: base2.qcow2
Format specific information:
    compat: 1.1
    lazy refcounts: false


 

 

 

 

最后 更多的高级功能请参考qemu-img的man手册。

 

 

原文:http://www.azertech.net/content/kvm-qemu-qcow2-qemu-img-and-snapshots

 

 

 

 

 

© 著作权归作者所有

上一篇: 宿主机cpu隔离
下一篇: CnetOS 更改时区
Firxiao
粉丝 22
博文 104
码字总数 38085
作品 0
浦东
运维
私信 提问
加载中

评论(1)

尧尧尧
尧尧尧
555
1、qemu-kvm创建虚拟机并设置网络

一:介绍 Hypervisor:是一种“虚拟机监视器(VMM)”,它介于裸机硬件和操作系统之间的组件,通过它, 可以在物理服务器上安装多个操作系统。 VNC:是一个在UNIX和Linux平台上的远程控制开源...

刘付kin
2016/12/10
1.7K
0
KVM虚拟机静态迁移

如何在linux中进行镜像虚拟机静态迁移(KVM克隆笔记) ---------------author:shikanon 操作 安装virsh、qemu sudo apt-get install qemu-kvm libvirt 拷贝image文件 先查看下要img的格式: ...

Kanonpy
2016/12/27
411
2
KVM guest磁盘扩容

一,KVM常用的两种磁盘格式的比较: raw格式: raw (default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that support sparse fil......

leejia1989
2014/11/17
0
0
KVM虚拟化安装和常用管理命令

1、检查CPU是否虚拟化 grep -Eo "vmx|svm" /proc/cpuinfo 2、检查是否开启虚拟化模块 modprobe kvm_intel lsmod| grep kvm_intel 3、安装KVM组件包 yum groupinstall 'Virtualization' yum ......

qq_37594711
2017/03/13
0
0
xenserver迁移至kvm记录

公司原来的测试环境使用的是 xenserver 搭建的虚拟化环境,最近有需要迁移至kvm,所以研究了如何实现从 xenserver 将 guset 迁移至 kvm 的相关技术。 使用的 xenserver 版本有5 系和 7系的。使...

haifengjiuyuan
2017/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

史上最全的“文件或目录损坏且无法读取”的解决办法大集合

问题描述: G盘打不开文件或目录损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。史上最全的“文件或目录损坏且无法读取”的解决办法大集合具体的恢复方法看正文 工具/软件:极...

计算无敌
今天
9
0
2048游戏的最佳算法是什么? - What is the optimal algorithm for the game 2048?

问题: I have recently stumbled upon the game 2048 . 我最近偶然发现了2048游戏。 You merge similar tiles by moving them in any of the four directions to make "bigger" tiles. 您可......

javail
今天
9
0
Spring Cloud Ribbon 客户端负载均衡

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等,内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略: 简单轮询负载均衡 加权轮询负载均衡 区域...

泥瓦匠BYSocket
今天
7
0
为什么在Python 3中“范围(1000000000000000(1000000000000001))”这么快?

问题: It is my understanding that the range() function, which is actually an object type in Python 3 , generates its contents on the fly, similar to a generator. 据我了解, ra......

技术盛宴
今天
9
0
OSChina 周四乱弹 —— 卖全家桶!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :陈慧娴的单曲《与泪抱拥》 陈慧娴的嗓音加上向雪怀的词,这样的经典组合真不多。#今日歌曲推荐# 《与泪抱拥》- 陈慧娴 手机党少年...

小小编辑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部