虚拟化系列教程:磁盘格式及格式转换

本文介绍了如何使用qemu-img工具将不同格式的虚拟机镜像文件,如vmdk,转换为qcow2格式,适用于KVM环境。转换过程支持压缩和后端镜像设置,可以优化存储空间。通过示例展示了将vmdk转换为qcow2以及raw转换为qcow2的命令行操作,并提到了转换后在KVM中应用新镜像的步骤。
摘要由CSDN通过智能技术生成

格式:convert -c [-f fmt] [-O output_fmt] [-o options] filename [filename2 […]] output_filename

将fmt格式的filename镜像文件根据options选项转换为格式为output_fmt的名为output_filename的镜像文件。它支持不同格式的镜像文件之间的转换,比如可以用VMware用的vmdk格式文件转换为qcow2文件,这对从其他虚拟化方案转移到KVM上的用户非常有用。一般来说,输入文件格式fmt由qemu-img工具自动检测到,而输出文件格式output_fmt根据自己需要来指定,默认会被转换为与raw文件格式(且默认使用稀疏文件的方式存储以节省存储空间)。

其中,“-c”参数是对输出的镜像文件进行压缩,不过只有qcow2和qcow格式的镜像文件才支持压缩,而且这种压缩是只读的,如果压缩的扇区被重写,则会被重写为未压缩的数据。同样可以使用“-o options” 来指定各种选项,如:后端镜像、文件大小、是否加密等等。使用backing_file选项来指定后端镜像,让生成的文件是copy-on-write的 增量文件,这时必须让转换命令中指定的后端镜像与输入文件的后端镜像的内容是相同的,尽管它们各自后端镜像的目录、格式可能不同。

如果使用qcow2、qcow、cow等作为输出文件格式来转换raw格式的镜像文件(非稀疏文件格式),镜像转换还可以起到将镜像文件转化为更小的镜像,因为它可以将空的扇区删除使之在生成的输出文件中并不存在。

下面的命令行演示了两个转换:将VMware的vmdk格式镜像转换为KVM可以使用的qcow2镜像,将一个raw镜像文件转化为qcow2格式的镜像。

# qemu-img convert my-vmware.vmdkmy-kvm.img

(此处并无实际存在vmdk文件,仅演示其命令行操作)

# qemu-img convert -O qcow2 rhel6u3.imgrhel6u3-a.img

用例:

[root@centos8 opt]# qemu-img convert -f raw -O qcow2 centos.raw centos2.qcow2
[root@centos8 opt]# ll centos2.qcow2 centos.raw 
-rw-r--r-- 1 root root  1633353728 2月  27 11:25 centos2.qcow2
-rw------- 1 root root 10737418240 2月  27 11:25 centos.raw 
[root@centos8 opt]# qemu-img info centos2.qcow2 
image: centos2.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 1.52 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: false
    refcount bits: 16
    corrupt: false
extended l2: false
[root@centos8 opt]# qemu-img info centos.raw 
image: centos.raw
file format: raw
virtual size: 10 GiB (10737418240 bytes)
disk size: 1.53 GiB

在转换完格式后,如果想替换存储文件,需要执行以下命令:

[root@centos8 opt]# virsh edit centos7 
Domain 'centos7' XML configuration edited.
     61     <disk type='file' device='disk'>
     62       <driver name='qemu' type='qcow2'/>
     63       <source file='/opt/centos2.qcow2'/>
     64       <backingStore/>
     65       <target dev='vda' bus='virtio'/>
     66       <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function=        '0x0'/>
     67     </disk>
[root@centos8 opt]# virsh reboot centos7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值