镜像服务 IMS-通过qemu-img工具转换镜像格式:典型应用举例

时间:2024-10-31 16:21:37

典型应用举例

  • 应用场景

    用户从VMware平台导出一个pre-allocated格式的镜像文件(pre-allocated格式是VMDK monolithic Flat子格式类型),pre-allocated格式镜像依赖2个文件“xxxx.vmdk”和“xxxx-flat.vmdk”(“xxxx.vmdk”是一个配置文件,“xxxx-flat.vmdk”是实际数据文件),这两种格式的镜像文件不能直接导入到云平台,需提前转换成通用的vmdk或qcow2格式才能导入。

    以下以镜像文件格式为centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk为例,通过qemu-img工具转换镜像格式。

  • 操作步骤
  1. 执行如下命令,查询镜像文件的详细信息。

    ls -lh centos6.9-64bit*

    qemu-img info centos6.9-64bit.vmdk

    qemu-img info centos6.9-64bit-flat.vmdk

    回显信息如下所示:

    [root@CentOS7 tmp]# ls -lh centos6.9-64bit*
    -rw-r--r--. 1 root root 10G Jun 13 05:30 centos6.9-64bit-flat.vmdk
    -rw-r--r--. 1 root root 327 Jun 13 05:30 centos6.9-64bit.vmdk
    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.vmdk
    image: centos6.9-64bit.vmdk
    file format: vmdk
    virtual size: 10G (10737418240 bytes)
    disk size: 4.0K
    Format specific information:
        cid: 3302005459
        parent cid: 4294967295
        create type: monolithicFlat
        extents:
            [0]:
                virtual size: 10737418240
                filename: centos6.9-64bit-flat.vmdk
                format: FLAT
    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit-flat.vmdk
    image: centos6.9-64bit-flat.vmdk
    file format: raw
    virtual size: 10G (10737418240 bytes)
    disk size: 0

    从回显信息中看出,centos6.9-64bit.vmdk文件的格式为vmdk,centos6.9-64bit-flat.vmdk文件的格式为raw,在执行镜像格式转换命令时,源镜像文件必须使用centos6.9-64bit.vmdk(详见步骤3)。

  2. 执行如下命令,查看pre-allocated格式的镜像文件的相关配置信息。

    cat centos6.9-64bit.vmdk

    回显信息如下所示:

    [root@CentOS7 tmp]# cat centos6.9-64bit.vmdk
    # Disk DescriptorFile
    version=1
    CID=c4d09ad3
    parentCID=ffffffff
    createType="monolithicFlat"
     
    # Extent description
    RW 20971520 FLAT "centos6.9-64bit-flat.vmdk" 0
     
    # The Disk Data Base
    #DDB
     
    ddb.virtualHWVersion = "4"
    ddb.geometry.cylinders = "20805"
    ddb.geometry.heads = "16"
    ddb.geometry.sectors = "63"
    ddb.adapterType = "ide"
  3. 将centos6.9-64bit-flat.vmdk和centos6.9-64bit.vmdk放在同一个目录下,执行如下命令,通过qemu-img工具转换镜像格式为qcow2。
    [root@CentOS7 tmp]# qemu-img convert -p -f vmdk -O qcow2 centos6.9-64bit.vmdk centos6.9-64bit.qcow2
        (100.00/100%)
  4. 执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。

    qemu-img info centos6.9-64bit.qcow2

    回显信息如下所示:

    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.qcow2
    image: centos6.9-64bit.qcow2
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 200K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
support.huaweicloud.com/bestpractice-ims/ims_bp_0030.html