虚拟机镜像文件

时间:2022-12-24 18:15:01

通常虚拟机用到的image文件有两种:raw和qcow2。

制作raw格式文件的命令:

#qemu-img create –f raw Linux-test.raw 20G

制作qcow2格式文件的命令:

制作qcow2格式的文件有两种方式:一种是backing_file方式,另外一种就是非backing_file方式。

非backing_file方式制作qcow2文件:

#qemu-img create –f qcow2 Linux-test.qcow2 20G

用上面命令制作出来的qcow2文件与raw格式的区别就是,qcow2格式的image的大小可以动态增长。

backing_file方式制作qcow2格式文件:

#qemu-img create –f qcow2 –o cluster_size=2M,backing_file=Linux-test.raw Linux-test.qcow2 40G

backing_file方式的创建虚拟,这里写的40G并不会真正占用40G的空间,只是限制Linux-test.qcow2文件的最大的大小。

当raw格式文件中安装的系统是windows系列的时候,创建qcow2格式最后文件大小需要比raw格式大2~3倍。

这里的Linux-test.qcow2格式的文件并不是独立的image。在使用时需要与Linux-test.raw磁盘一起用。

如下图所示:

虚拟机镜像文件

虚拟机是直接与qcow2格式image交互。raw格式image作为backing file,对虚拟机而言,是完全透明的。实际上,qcow2文件采用的是写时复制策略。qcow2 格式image只是保存了所有的更改数据,raw格式image中的数据不会发生丝毫变动。所以一个backing_file可以被多个虚拟机采用qcow2的方式进行共享,因为此时虚拟机不会直接对backing_file进行写操作。

如果使用的是qcow2格式的磁盘,那么虚拟机xml文件应该按照如下格式填写:

虚拟机镜像文件

  raw格式 qcow2格式
格式转换 可以直接转换为其他格式 很多时候不能直接转换为其他格式,不过可以先转换为raw格式,再转换成其他格式。花费时间较长
占用空间 qemu-img命令旧版本是硬盘多大则占用多大空间。
新版本则根据实际使用量来决定占用空间。
根据实际用量来决定占用空间大小
宿主机文件系统 需要宿主机分区使用特定的文件系统,如:ext2、ext3、ext4、NTFS等等 宿主机文件系统选择范围更大
改变空间最大值 直接可以改变 不可以直接改变,需要转为raw格式后再改变
持载 可以直接挂载 可以直接挂载
加密、压缩、快照 不支持 支持
删除文件 占用空间与磁盘使用量会变小 只是删除文件描述符,并没有真正删除数据,占用空间不变

在为虚拟机添加raw格式的image的时候,xml文件格式如下:

虚拟机镜像文件

查看image文件格式:

#qemu-img info Linux-test.raw

 

摘自:OpenStack开源云王者归来——云计算、虚拟化、Nova、Swift、Quantum与Hadoop 戢友 清华大学出版社.