zoukankan      html  css  js  c++  java
  • 关于vmware虚拟机的ova/ovf转换成aws上的AMI镜像

    很多时候,我们会有这样的需求,需要将DC中vmware虚拟化的服务器,迁移到aws上,我们就得先将vmware虚拟机导出,然后转换

    关于vmvare虚拟的导出备份,一般有ova(Open Virtual Appliance )文件件和ovf(Open Virtual Format)多文件两种格式

    笔者根据自己的实际工作经验,整理了主要操作过程,需要如下3步:

    1、导出OVA/OVF备份

    2、将OVA/OVF上传至S3上

    3、将S3上的OVA/OVF转换成AMI

    关于OVA/OVF转换成AMI,也可参考如下AWS官方文档资料:

    https://docs.amazonaws.cn/vm-import/latest/userguide/vmimport-image-import.html

    +++++++++ 具体操作如下,以OVF格式为例):

    1、事先需要准备的,创建一个s3桶:s3://dcvmbackup,然后可以在其下单独创建一个文件夹DC-VM-HGTAA02V

    2、将导出的OVF备份目录同步到s3上(使用cp上传可能会中断,推荐使用sync同步)

    [qq_5201351@localhost DC-VM-HGTAA02V]# aws s3 sync ./ s3://dcvmbackup/DC-VM-HGTAA02V

    3、上传完成后,将S3上的备份转换成AMI,先写ovf转换成ami的json文件(如写到 /tmp/vm.json):

    [
      {
        "Description": "First disk",
        "Format": "vmdk",
        "UserBucket": {
            "S3Bucket": "dcvmbackup",
            "S3Key": "DC-VM-HGTAA02V/HGTAA02V-1.vmdk"
        }
      },
      {
        "Description": "Second disk",
        "Format": "vmdk",
        "UserBucket": {
            "S3Bucket": "dcvmbackup",
            "S3Key": "DC-VM-HGTAA02V/HGTAA02V-2.vmdk"
        }
      }
    ]

    3、执行转换命令(成功后,将在aws层的后台执行了)

    aws ec2 import-image --description "DC-VM-HGTAA02V" --disk-containers "file:///tmp/vm.json"

    4、执行后,会在终端输出一个import-task-ids,这个值将默认作为AMI转换成功后,AWS/AMIs界面中的AMI Name

          后续也需要使用此值,查询转换的状态(会分几个阶段执行的,完全转换完成后,如下所示,在第一行最后会显示completed)

    [qq_5201351@localhost ~]# aws ec2 describe-import-image-tasks --import-task-ids import-ami-0b31bf4357b880a82
    IMPORTIMAGETASKS x86_64 DC-VM-HGTAA02V ami-0fa0c86c6cf316c83 import-ami-0b31bf4357b880a82 AWS Windows completed
    SNAPSHOTDETAILS First disk /dev/sda1 25364550656.0 VMDK snap-0e46853558beb56dd completed
    USERBUCKET dcvmbackup DC-VM-HGTAA02V/HGTAA02V-1.vmdk
    SNAPSHOTDETAILS Second disk /dev/sdg 27609645568.0 VMDK snap-075b0c2042a3e6a88 completed
    USERBUCKET dcvmbackup DC-VM-HGTAA02V/HGTAA02V-2.vmdk
    [qq_5201351@localhost ~]#

    说明:转换完成后,才会看到AMI-ID,如下所示的ami-0fa0c86c6cf316c83

     

    ++++++ 补充说明:如果是OVA格式的,只是json文件格式不一样,因为是单文件、所以语法会更加简洁一些,如下:

    不过,好像新版本的Vcenter/Esxi,大多默认都只支持OVF格式的导出了

    [
      {
        "Description": "My Server OVA",
        "Format": "ova",
        "UserBucket": {
            "S3Bucket": "my-import-bucket",
            "S3Key": "vms/my-server-vm.ova"
        }
      }
    ]

    关于OVA格式的转换同OVF一样的,公司此前在转换有些主机时,也可能会加上--license-type BYOL选项,从技术上来说,不加也是可以的

    如果是要取消处于活跃状态的导入任务,我们可以使用 cancel-import-task 命令,如下:

    aws ec2 cancel-import-task --import-task-id import-ami-1234567890abcdef0

     

    尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/14706034.html

    作者:一名卑微的IT民工

    出处:https://www.cnblogs.com/5201351

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!

  • 相关阅读:
    Go语言使用grpc
    Go语言中使用protobuf
    proto3语法
    golang标准库io
    走近docker--容器生态系统
    编译技术图式(第四章 语义分析)
    计算机组成原理与结构图示(存储器设计)
    微机原理与汇编接口图式(第一章 数制)
    编译技术图式(第四章 语法分析)03自下而上的语法分析
    计算机组成原理和结构图式(第四章 存储器子系统)
  • 原文地址:https://www.cnblogs.com/5201351/p/14706034.html
Copyright © 2011-2022 走看看