使用VMware虚拟机文件建立阿里云自定义镜像

准备

须要的镜像和工具:php

(1)系统:中标麒麟7.4 (国产操做系统,相似于CentOS)html

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

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

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

镜像格式转换

因为建立 VMware 虚拟机生成的主体文件是 vmdk 后缀格式的,阿里云 ECS 只支持导入RAW、VHD和qcow2格式的镜像文件。其余镜像文件,须要转换格式后再导入。wordpress

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

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

建立阿里云自定义镜像

主要步骤以下:测试

建立虚拟机文件

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

使用VMware虚拟机文件建立阿里云自定义镜像

说明⚠️:

  • 通常来讲日常使用 VMware 建立虚拟机,有两种构建磁盘文件的方式(如上图所示):

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

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

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

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

安装麒麟操做系统

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

详细系统分区状况以下:

根目录/:37G

/boot目录:1G

swap:2G

说明⚠️:

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

  • 最好不要挂载数据盘,数据盘能够后期建立阿里云 ECS 实例时挂载或建立阿里云 ECS 实例后挂载,均是能够的。

VMware虚拟机虚拟磁盘的合并

根据上面的两个步骤,咱们完成了麒麟操做系统的安装与部署,如今关闭部署好的麒麟虚拟机。这个步骤咱们须要了解两点:

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

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

下面咱们一步一步操做,具体步骤以下:

(1)vmware-vdiskmanager

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

使用VMware虚拟机文件建立阿里云自定义镜像

说明⚠️:

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

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

0:建立一个包含在单一虚拟文件中的可增加虚拟磁盘

1:建立一个被分割为每一个文件2GB大小的可增加虚拟磁盘

2:建立一个包含在单一虚拟文件中的预分配虚拟磁盘

3:建立一个被分割为每一个文件2GB大小的预分配虚拟磁盘

(2)多文件的合并

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

使用VMware虚拟机文件建立阿里云自定义镜像

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

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

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

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

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

使用VMware虚拟机文件建立阿里云自定义镜像

vmdk到vhd文件格式转换

安装winimage支持各类格式互相转换,以下:

使用VMware虚拟机文件建立阿里云自定义镜像

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

使用VMware虚拟机文件建立阿里云自定义镜像

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

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

使用阿里云OSS

主要步骤以下:

(1)开通OSS服务

(2)建立存储空间

(3)上传文件

说明⚠️:关于上传文件,我这里说明下,若是待上传文件大小 5G ,能够经过OSS控制台直接上传。反之,须要使用分片上传和断点续传 ossutil 工具。

使用阿里云ossutil

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

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

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

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

导入自定义镜像

主要步骤以下:

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

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

使用VMware虚拟机文件建立阿里云自定义镜像

说明⚠️:

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

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

  • 系统平台选择 CentOS(由于本文使用的是中标麒麟7.4系统),固然你也能够选择 Other Linux,可是须要作必定的配置工做。更多的系统平台类型,详见阿里云导入镜像必读

  • 镜像格式本次选择VHD

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

使用自定义镜像建立实例

根据上面的步骤,咱们已经建立好所需的自定义镜像,当咱们建立实例选择镜像 --> 自定义镜像 --> 中标麒麟-7.4(上面制做的)便可。

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

参考文档

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

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

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

相关文章
相关标签/搜索