LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > Linux教程 >

KVM-QEMU, QCOW2, QEMU-IMG and Snapshots

时间:2015-01-30 09:58来源:oschina 编辑:oschina 点击:
介绍: QCOW2格式是KVM-QEMU推出的一种镜格式,它不预先分配全部的磁盘空间,并且支持快照功能,并且你可以用以前的镜像作为基础,创建出基于它的新镜像,这样可以加快创建虚拟机的

介绍:

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 clus
查看新建镜像的信息(注意最后一行)
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
最后 更多的高级功能请参考qemu-img的man手册。

转载请保留固定链接: https://linuxeye.com/Linux/2160.html

------分隔线----------------------------
标签:KVM
栏目列表
推荐内容