文档章节

KVM-QEMU, QCOW2, QEMU-IMG and Snapshots

Firxiao
 Firxiao
发布于 2015/01/29 17:41
字数 1129
阅读 1563
收藏 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
博文 99
码字总数 36560
作品 0
浦东
运维
私信 提问
加载中

评论(1)

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

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

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

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

Kanonpy
2016/12/27
74
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
KVM虚拟机管理指南(纯命令行模式)

使用KVM需要以下几个前提条件: 1. CPU必需支持虚拟化,可以在/proc/cpuinfo文件中想找flags,如果是inter的显示为vmx,amd的显示为svm 2. CPU必需支持64位操作系统,可以在上述文件中查找l...

Leon_zhang50773
2016/03/10
0
0
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

没有更多内容

加载失败,请刷新页面

加载更多

netty

##1.Netty 简介 Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifi......

xpttxsok
45分钟前
2
0
Nginx 架构——【核心流程+模块介绍】

1. Nginx简介以及特点 Nginx简介: Nginx (engine x) 是一个高性能的Web服务器和反向代理服务器,也是一个IMAP/POP3/SMTP服务器 俄罗斯程序员Igor Sysoev于2002年开始 Nginx是增长最快的Web...

java知识分子
46分钟前
2
0
winscp中使用sudo的方法

用截图了解如何在 WinSCP 中使用 sudo。 首先你需要检查你尝试使用 WinSCP 连接的 sftp 服务器的二进制文件的位置。 你可以使用以下命令检查 SFTP 服务器二进制文件位置: [root@kerneltalk...

Linux就该这么学
今天
5
0
四、MyBatis中查询执行流程

一、查询执行大致流程 在MyBatis中,查询执行的大致流程如下: 对应的时序图如下: 二、MapperProxy绑定MappedStatement 在MyBatis Mapper Bean初始化深度解析中说过,mapper bean就是Mappe...

yangjianzhou
今天
3
0
系统幂等设计

前言 幂等简单的定义: 系统中的多次操作,不管多少次,都应该产生一样的效果,或返回一样的效果。 比如实际的业务请求为创建一个活动,理论上需要根据业务形态开发幂等创建活动的接口,这样...

春哥大魔王的博客
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部