云服务器内容精选

  • 操作步骤 上传待转换格式的镜像文件至云服务器。 本地主机为Linux系统: 通过scp命令将镜像文件上传至云服务器。以将“image01.qcow2”文件上传至云服务器的“/usr/”目录下为例。 scp /var/image01.qcow2 root@xxx.xxx.xx.xxx:/usr/ 其中,xxx.xxx.xx.xxx为云服务器的弹性公网IP。 本地主机为Windows系统: 使用文件传输工具(例如WinSCP)将镜像文件上传至云服务器。 获取qemu-img-hw工具并上传至云服务器,然后解压工具包。 表2 qemu-img-hw工具获取方式 工具包 下载地址 qemu-img-hw.zip https://cn-south-1-cloud-reset-pwd.obs.cn-south-1.myhuaweicloud.com/imageImportTools/qemu-img-hw.zip 当前工具仅限在x86架构的服务器下使用。 转换镜像格式。 进入qemu-img-hw存放目录,以存放在“/usr/qemu-img-hw”为例: cd /usr/qemu-img-hw 执行以下命令修改权限: chmod +x qemu-img-hw 执行qemu-img-hw命令将镜像文件转为zvhd2格式。 qemu-img-hw命令格式: ./qemu-img-hw convert -p -O {目标镜像格式} {待转换镜像文件} {目标镜像文件} 以将“image01.qcow2”格式文件转换成“image01.zvhd2”格式为例: ./qemu-img-hw convert -p -O zvhd2 image01.qcow2 image01.zvhd2
  • 附1:qemu-img-hw常用命令 镜像文件格式转换:qemu-img-hw convert -p -O {目标镜像格式} {待转换镜像文件} {目标镜像文件} 上述命令中各参数对应的说明如下: -p:标识转换的进度条 -O:(必须是大写)后面的参数为转换出来的镜像格式 + 源镜像文件名称 + 目标镜像文件名称 示例:将qcow2格式转为zvhd2格式 qemu-img-hw convert -p -O zvhd2 test.qcow2 test.zvhd2 查询镜像文件信息:qemu-img-hw info {镜像文件} 示例:qemu-img-hw info test.zvhd2 查看帮助:qemu-img-hw -help
  • 附2:执行qemu-img-hw常见报错 问题描述: 执行qemu-img-hw命令时回显信息如下: ./qemu-img-hw: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qemu-img-hw) 解决方法: 执行strings /lib64/libc.so.6 | grep GLIBC查看GLIBC版本,若由于版本过低造成,可安装高版本即可。依次执行下述命令: wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz tar -xvf glibc-2.15.tar.gz tar -xvf glibc-ports-2.15.tar.gz mv glibc-ports-2.15 glibc-2.15/ports mkdir glibc-build-2.15 cd glibc-build-2.15 ../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin 此命令若报错“configure: error: no acceptable C compiler found in $PATH”,请先执行:yum -y install gcc make make install 问题描述: 执行qemu-img-hw命令时回显信息如下: ./qemu-img-hw: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决方法:请先执行命令yum install libaio
  • 本地为Linux操作系统 操作过程中如果出现报错,可参考附2:执行qemu-img-hw常见报错。 安装qemu-img。 Ubuntu、Debian系列操作系统,请执行如下命令: apt install qemu-img CentOS、Red Hat、Oracle系列操作系统,请执行如下命令: yum install qemu-img SUSE、openSUSE系列操作系统,请执行如下命令: zypper install qemu-img 执行如下命令,验证安装成功。 qemu-img -v 如回显信息中出现qemu-img工具的版本信息和帮助手册,即表示安装成功。以CentOS 7为例,回显信息如下所示: [root@CentOS7 ~]# qemu-img -v qemu-img version 1.5.3, Copyright (c) 2004-2008 Fabrice Bellard usage: qemu-img command [command options] QEMU disk image utility Command syntax: check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename create [-q] [-f fmt] [-o options] filename [size] commit [-q] [-f fmt] [-t cache] filename compare [-f fmt] [-F fmt] [-T src_cach] 转换镜像格式,以CentOS 7操作系统中转换vmdk格式为qcow2格式的镜像为例。 执行如下命令转换镜像文件格式。 qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2 上述命令中各参数对应的说明如下: -p标识转换的进度条。 -f后面为源镜像格式。 -O(必须是大写)后面的参数为转换出来的镜像格式 + 源镜像文件名称 + 目标文件名称。 转换完成后,目标文件会出现在源镜像文件所在的目录下。 回显信息如下所示: [root@CentOS7 home]# qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2 (100.00/100%) 执行如下命令,查询转换后的qcow2格式镜像文件的详细信息。 qemu-img info centos6.9.qcow2 回显信息如下所示: [root@CentOS7 home]# qemu-img info centos6.9.qcow2 image: centos6.9.qcow2 file format: qcow2 virtual size: 1.0G (1073741824 bytes) disk size: 200K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false
  • 约束与限制 qemu-img镜像格式转换工具支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi或qed社区格式的镜像的相互转换。 zvhd和zvhd2是云服务内部自研格式,qemu-img工具无法识别这两种格式的镜像文件。如需将镜像文件转换为这两种格式,请使用自研qemu-img-hw工具,详细指导参见转换镜像格式(qemu-img-hw)。 vhd格式镜像在执行命令转换格式时请使用vpc代替,否则可能造成qemu-img工具无法识别镜像格式。 例如,将CentOS 6.9镜像的vhd格式转换为qcow2格式,请执行如下命令: qemu-img convert -p -f vpc -O qcow2 centos6.9.vhd centos6.9.qcow2
  • 典型应用举例 应用场景 用户从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工具转换镜像格式。 操作步骤 执行如下命令,查询镜像文件的详细信息。 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)。 执行如下命令,查看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" 将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%) 执行如下命令,查询转换后的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