KVM虚拟化学习五——KVM磁盘管理

1.KVM镜像文件raw与qcow2介绍

1.1 raw介绍

the raw format is a plain binary image of the disc image, and is very portable. On filesystems that support sparse files, images in this format only use the space actually used by the data recorded in them.

RAW为全镜像模式,是最原始的镜像格式,特点是写入速度快,性能优,能方便转换成其它格式,缺点是占用空间大,一次分配,不支持压缩,快照等功能。

1.2 qcow2介绍

QEMU copy-on-write format with a range of special features, including the ability to take multiple snapshots,smaller images on filesystems that don’t support sparse files, optional AES encryption, and optional zlib compression

qcow2为稀松模式,是现在比较主流的一种虚拟化镜像格式,经过cow -> qcow1 -> qcow2一代的发展优化,目前qcow2的性能上接近raw裸格式的性能。qcow2功能多,支持压缩,快照,占用空间较小,用多少占多少等,是云计算首选磁盘格式。

  • qcow2 的基本原理

 qcow2 镜像格式是 QEMU 模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的 raw 格式的镜像相比,有以下特性:

  1. 更小的空间占用,即使文件系统不支持空洞(holes);

  2. 支持写时拷贝(COW, copy-on-write),镜像文件只反映底层磁盘的变化;

  3. 支持快照(snapshot),镜像文件能够包含多个快照的历史;

  4. 可选择基于 zlib 的压缩方式

  5. 可以选择 AES 加密

  • Copy-on-Write 镜像文件

qcow2 镜像可以用来保存另一个镜像文件的变化,它并不去修改原始镜像文件,只记录与原始镜像文件的不同即可,这种镜像文件就叫做 copy-on-write 镜像。虽然是一个单独的文件,但它的大部分的数据都来自原始镜像,只有跟原始镜像文件相比有变化的 cluster 才会被记录下来。

这很容易去实现,在头部信息中记录原始文件路径即可。当需要从一个 copy-on-write 镜像文件中读取一个 cluster 的时候,首先检查这块区域是否已经在该镜像文件中被分配,如果没有就从原始文件读取。

  • 快照

快照有些类似 Copy-On-Write 文件,但区别是快照是一个可写的。快照就是原始文件本身(内部快照)。它既包含做快照之前的原始文件部分,它本身也包含可写的部分。


2.qcow2和raw文件相互转换及对比

2.1 qcow2操作

[root@linux-node4 ~]# qemu-img create -f qcow2 test.qcow2 10G    #创建大小为10G的qcow2磁盘
[root@linux-node4 ~]# qemu-img convert  test.qcow2  test.raw     #将qcow2转换成raw
[root@linux-node4 ~]# qemu-img convert -f qcow2 -O raw test.qcow2 test.raw #同上
[root@linux-node4 ~]# qemu-img info test.qcow2     #查看磁盘的信息
image: test.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)              #创建容量为10G
disk size: 1.1G                                    #实际上占用1.2G,使用多少占多少
cluster_size: 65536                                #cluster为qcow2分配单位
Format specific information:
   compat: 1.1
   lazy refcounts: false
[root@linux-node4 ~]# ls -lh test.qcow2 |awk -F " " '{print $5}'
1.2G
[root@linux-node4 ~]# du -h test.qcow2 |awk '{print $1}'
1.2G

2.2 RAW操作

[root@linux-node4 ~]# qemu-img info test.raw
image: test.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 1.1G
[root@linux-node4 ~]# ls -lh test.raw |awk -F " " '{print $5}'    #一次分配多少全部占用
10G                                                      
[root@linux-node4 ~]# du -h test.raw |awk '{print $1}'            #实际使用1.2G
1.2G

● 总结

  qcow2 格式的文件虽然在性能上比Raw 格式的有一些损失(主要体现在对于文件增量上,qcow2 格式的文件为了分配 cluster 多花费了一些时间),但是 qcow2 格式的镜像比 Raw 格式文件更小,只有在虚拟机实际占用了磁盘空间时,其文件才会增长,能方便的减少迁移花费的流量,更适用于云计算系统,同时,它还具有加密,压缩,以及快照等 raw 格式不具有的功能。

参考:

https://www.ibm.com/developerworks/cn/linux/1409_qiaoly_qemuimgages/

http://www.360doc.com/content/16/1005/07/17640751_595862003.shtml

http://www.360doc.com/content/16/1005/08/17640751_595866059.shtml

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/1248.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注