天天看点

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

需要的镜像和工具:

(1)系统:中标麒麟7.4 (国产操作系统,类似于CentOS)

(2)虚拟机软件:VMware Workstation 12版本/VirtualBox (windows版本,MAC版本的没有测试)

(3)vmdk转vhd格式转换工具:winima90.exe,也可以使用阿里云 qemu-img 工具,也可以使用 DiskGenius软件 或参考 DiskGenius格式转换

(4)开通阿里云对象存储oss,创建存储空间(Bucket名字)。

由于创建 VMware 虚拟机生成的主体文件是 vmdk 后缀格式的,阿里云 ECS 只支持导入RAW、VHD和qcow2格式的镜像文件。其他镜像文件,需要转换格式后再导入。

qemu-img能将RAW、qcow2、VMDK、VDI、VHD(vpc)、VHDX、qcow1或QED格式的镜像转换成VHD格式,也可以实现RAW和VHD格式的互相转换。

winima90.exe 是安装在 windows 系统上的软件,体积小易安装,支持多种格式转换,本次测试使用它来进行虚拟机镜像文件的转换工具。

主要步骤如下:

打开 VMware Workstation 软件,创建一个虚拟机,分配动态磁盘空间为 40G ,如下图所示:

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

说明⚠️:

一般来说平常使用 VMware 创建虚拟机,有两种构建磁盘文件的方式(如上图所示):

第一种:使用单个文件存储虚拟磁盘;

第二种:多个文件存储虚拟磁盘。

其中第二种方式将虚拟磁盘拆分为多个文件,可以更轻松地在计算机之间移动虚拟机,但可能会降低大容量磁盘的性能。第一种方式将虚拟磁盘存储为单个文件,虽然提高了磁盘的读写性能,但是对于对于大文件的移动和存储是一个问题。就该问题本文对于这两种方式之间的转换做了一个总结,并使用具体例子,详解了如何通过VMware自带的磁盘管理工具,来对虚拟磁盘文件进行分割与合并。

本次测试选择多个文件存储虚拟磁盘。

中标麒麟操作系统安装与CentOS是一样的,除了 LOGO 不一样,囧~

详细系统分区情况如下:

这里创建的虚拟机相当于一个模版,当它被制作成自定义镜像,在阿里云实例上启动后,登录启动的实例,你会发现系统分区的大小就是上面你所定义的大小。换句话说,你需要系统盘多大,最好在创建虚拟机时就定义多大。

最好不要挂载数据盘,数据盘可以后期创建阿里云 ECS 实例时挂载或创建阿里云 ECS 实例后挂载,均是可以的。

根据上面的两个步骤,我们完成了麒麟操作系统的安装与部署,现在关闭部署好的麒麟虚拟机。这个步骤我们需要了解两点:

虚拟磁盘管理工具使用:vmware-vdiskmanager

多个虚拟磁盘文件合并为单个文件

下面我们一步一步操作,具体步骤如下:

(1)vmware-vdiskmanager

VMware提供了虚拟磁盘管理工具vmware-vdiskmanager。使用命令行可以管理虚拟磁盘文件,包括磁盘的。它有许多功能,使用命令vmware-vdiskmanager.exe -h可以查看它所有的功能(如下图):

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

<code>vmware-vdiskmanager.exe</code> 路径默认在 VMware Workstation 虚拟机安装路径目录下。

<code>-r</code> 参数指定源磁盘文件;<code>-t</code> 参数指定输出虚拟磁盘文件的类型,其值为以下类型之一:

<code>0</code>:创建一个包含在单一虚拟文件中的可增长虚拟磁盘

<code>1</code>:创建一个被分割为每个文件2GB大小的可增长虚拟磁盘

<code>2</code>:创建一个包含在单一虚拟文件中的预分配虚拟磁盘

<code>3</code>:创建一个被分割为每个文件2GB大小的预分配虚拟磁盘

(2)多文件的合并

如图所示,将图中名为Windows Server 2003 Enterprise Edition.vmdk的文件以及名为Windows Server 2003 Enterprise Edition-sXXX.vmdk的文件合并为一个名为Merged.vmdk的文件。

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

打开命令行界面并切换到VMware Workstation目录,输入命令:

<code>vmware-vdiskmanager.exe -r "D:\Virtual Machines\Windows Server 2003 Enterprise Edition.vmdk" -t 0 "D:\Virtual Machines\Merged.vmdk"</code>

命令的格式是:<code>vmware-vdiskmanager.exe -r [源文件] -t 0 [目标文件]</code>

其中[源文件]是待转换的文件;[目标文件]是转换后生成的文件(此文件在系统中是不存在的,只有转换后才存在。所以需要自己为其命名,后缀名为.vmdk);-t后的参数是0表示将源文件合并为一个目标文件。

多文件合并为单文件过程如下:

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

安装winimage支持各种格式互相转换,如下:

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

选择源,注意红色箭头,选择vmdk

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

最后再选择保存位置即可得到一个vhd的磁盘文件。

这一步我们也可以使用阿里云提供的 qemu-img 工具

(1)开通OSS服务

(2)创建存储空间

(3)上传文件

说明⚠️:关于上传文件,我这里说明下,如果待上传文件大小 5G ,可以通过OSS控制台直接上传。反之,需要使用分片上传和断点续传 ossutil 工具。

上面我们生成的 vhd 文件大小是 40G ,所以使用阿里云ossutil工具进行文件的上传工作,MAC电脑下操作命令举例如下:

<code>./ossutilmac64 cp /Users/wtf/Documents/操作系统ISO/zhongbiaoqolin7.4.vhd oss://datagrand-iso/iso-qilin</code>

命令格式:<code>./ossutilmac64 cp a.txt oss://bucket/path</code>

关于阿里云ossutil常用命令的使用详见 命令行工具ossutil概述。

(1)登录ECS管理控制台。

(2)在左侧导航栏,单击镜像 &gt; 导入镜像。

使用VMware虚拟机文件创建阿里云自定义镜像准备镜像格式转换创建阿里云自定义镜像参考文档

在导入镜像对话框里,单击提示信息第3步中的确认地址。否则会报权限错误~

OSS Object地址,可以在OSS管理控制台中,找到你创建的Bucket空间名字,点击该空间中文件后的详情,复制里面的URL即可。

系统平台选择 CentOS(因为本文使用的是中标麒麟7.4系统),当然你也可以选择 Other Linux,但是需要做一定的配置工作。更多的系统平台类型,详见阿里云导入镜像必读。

镜像格式本次选择VHD

(3)点击“确定”,等待完成就行。

根据上面的步骤,我们已经创建好所需的自定义镜像,当我们创建实例选择镜像 --&gt; 自定义镜像 --&gt; 中标麒麟-7.4(上面制作的)即可。

说明⚠️:创建的实例要和自定义的镜像都在同一个区域,如华北2(北京)。

(1)VMware虚拟机虚拟磁盘的分割与合并

(2)Vmware(vmdk)虚拟机到hyperv(vhd)虚拟机转换

(3)HOW TO MERGE MULTIPLE VMDK’S INTO SINGLE VMDK