VMware无代理迁移提供不侵入客户端操作系统、不占用客户端操作系统的计算资源的无代理迁移能力,能够有效消除用户对服务器安全和性能的顾虑。本文介绍如何使用SMC通过无代理的方式迁移VMware虚拟机。

前提条件

已完成迁移前准备工作。具体操作,请参见准备工作(迁移前必读)

背景信息

VMware vSphere是VMware的虚拟化平台,可将数据中心转换为包括CPU、存储和网络资源的聚合计算基础架构。vSphere将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 vSphere的两个核心组件是ESXi和vCenter Server。ESXi是用于创建并运行虚拟机和虚拟设备的虚拟化平台。vCenter Server是一项服务,用于管理网络中连接的多个主机,并将主机资源池化。

开源虚拟化格式OVF(Open Virtualization Format)文件是一种开源的文件规范,它描述了一个开源、安全、有效、可拓展的便携式虚拟打包以及软件分布格式,它一般有几个部分组成,分别是ovf文件、mf文件、cert文件、vmdk文件和iso文件。

无代理迁移优势

  • 资源无占用

    SMC客户端不在虚拟机内部运行,不占用虚拟机的各类资源。

  • 迁移效率高

    无需为每台虚拟机单独安装代理,节省人力与时间成本。

  • 安全性高

    不在虚拟机操作系统内部进行任何操作,消除用户对安全的顾虑。

  • 兼容性高

    不依赖虚拟机操作系统内部环境,迁移成功率更高。

迁移流程

adsad

环境要求

vCenter权限SMC客户端虚拟机配置支持版本
登录账号需要获取以下权限:
  • Datastore > Browse datastore
  • Datastore > Low-level file operations
  • Host > Local operations > Create virtual machine
  • Virtual machine > Change Configuration > Acquire disk lease
  • Virtual machine > Change Configuration > Toggle disk change tracking
  • Virtual machine > Provisioning > Allow virtual machine download
  • Virtual machine > Provisioning > Allow disk access
  • Virtual machine > Provisioning > Allow read-only disk access
  • Virtual machine > Snapshot management > Create snapshot
  • Virtual machine > Snapshot management > Remove Snapshot
  • vCPU:4 vCPU及以上
  • 内存:8 GB及以上
  • 磁盘:40 GB及以上
  • 在ESXi 6.5及以上的宿主机上部署
  • ESXi版本:ESXi 6.5/6.7
  • vCenter版本:vCenter 6.7

步骤一:创建SMC客户端虚拟机

SMC提供OVF模板文件,在vCenter主机上,用户可以根据OVF模板文件部署SMC客户端虚拟机。

  1. 通过浏览器下载并解压OVF模板文件。
    解压后的文件如下图所示。asdad56
  2. 通过OVF模板创建SMC客户端虚拟机。
    以vCenter 6.7为例,操作步骤如下:
    1. 登录vCenter。
    2. 在vCenter主机上,右键单击Deploy OVF Template...adad
    3. Deploy OVF Template页面,根据配置向导完成创建虚拟机。
      1. 选择OVF模板后,单击NEXT
        选中Local file,并单击Browse...,选择已解压的OVF模板文件。ada
      2. 选择虚拟机名称和安装位置后,单击NEXT
        Virtual machine name后输入虚拟机名称,并选择安装位置。ada56
      3. 选择计算资源后,单击NEXTdaa
      4. 确认模板信息后,单击NEXTadsad
      5. 选择存储空间后,单击NEXTasdasd
      6. 选择网络资源后,单击NEXTadad
      7. 确认配置信息后,单击FINISHasd、
    4. 部署成功后,在SMC客户端虚拟机上右键选择Power > Power On启动电源。
  3. 用户需要自行配置网络环境,确保创建的SMC客户端虚拟机能够与vCenter的443端口(默认)、待迁移虚拟机对应ESXi宿主机的902端口(默认)连通。
  4. 登录SMC客户端虚拟机。
    以SSH远程连接方式为例,操作步骤如下:
    1. Summary页签下,获取SMC客户端虚拟机的IP地址。asda
    2. 在某个与SMC客户端虚拟机网络连通的终端中,运行以下命令,远程连接SMC客户端虚拟机。
      ssh <SMC客户端虚拟机IP地址>
      远程连接SMC客户端虚拟机。默认用户名为root,密码默认为空。
      重要 为了安全考虑,建议您及时修改密码。
  5. 运行以下命令,检查时间是否准确。
    date
    如果不准确,可通过ntpdate命令校准时间。本文以0.asia.pool.ntp.org时间服务器为例。
    ntpdate 0.asia.pool.ntp.org
    hwclock --systohc
    警告 如果时间不准确,会导致导入迁移源失败。
    ad

步骤二:导入迁移源

在SMC客户端虚拟机中,通过命令运行SMC客户端,并将VMware虚拟机的信息导入SMC控制台。

警告 SMC客户端运行期间,避免人为对待迁移的VMware虚拟机执行关机、重启、创建和删除快照等相关操作。若您对待迁移的VMware虚拟机执行了创建和删除快照的操作,可能导致迁移失败。因此导致迁移失败后,需要在SMC客户端主目录/root/smc下执行./disk/migrate_configure,重新获取虚拟机配置后,执行./go2aliyun_client --jobtype=3命令重新运行SMC客户端。
  1. 登录SMC客户端虚拟机。
  2. 运行以下命令,配置文件。
    cd /root/smc
    ./configure.sh
    依次配置VMware vCenter的IP地址、用户名、密码、端口号(建议使用默认443),回显信息类似如下所示。
    [root@localhost ~]# cd /root/smc
    [root@localhost smc]# ./configure.sh
    Please input vCenter IP:192.168.XX.XX
    Please input username:administr****@vsphere.local
    Please input password:
    Please input port number(default 443):443
    提示连接成功,并生成宿主机列表,并要求输入需要迁移的虚拟机对应的宿主机(需选择状态为“已连接”的宿主机,即Connected一栏为*)。
    Test to connect the vCenter...
    Connect success!
    save to ./vmware_connect_config.json
    ========Aliyun SMC VMware Configure Tool 1.0========
    Connect success!
      Getting host list progress:
      [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100.00%]time:1.1s
      Getting vm list progress:
      [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>100.00%]time:0.6s
    Host List:
    ------------------------------------------------------------
    ID      Name                    Version            Connected
    1       192.168.XX.XX           6.7.0                  *
    2       192.168.XX.XX           6.5.0                  *  
    3       192.168.XX.XX           6.7.0                  * 
    ------------------------------------------------------------
    Please input the ID of Host(input 0 to exit):1
    输入宿主机ID后,生成虚拟机列表,并要求输入需要迁移的虚拟机的ID(需选择状态为“已连接”的虚拟机,即Connected一栏为*)。
    VM List of 192.168.XX.XX:
    --------------------------------------------------------------
    ID      Name                     Connected      CBT      Add  
    481     TEST_CLONE_1                 *  
    389     win16bios                    *
    338     hanjun_test_001              * 
    386     Aliyun_SMC_Agent_6.5         * 
    393     win16uefi                    *    
    --------------------------------------------------------------
    Please input the ID of VM to be migrated (input 0 to exit):389
    选择需要迁移的虚拟机的架构。
    --------------------------------------------------------------
    0    x86_64
    1    i386
    2    arm64
    --------------------------------------------------------------
    Please choose the architecture:0
    确认系统给出的操作系统类型是否是当前虚拟机的操作系统,若否输入n,在给出的操作系统列表中输入操作系统对应的序号,例如:10
    说明 VMware vCenter中创建虚拟机时预设的操作系统类型可能并不真实,需要用户确认。
    ada选择系统盘,默认为序号0的虚拟磁盘。
    --------------------------------------------------------------
    0    [datastore1] win16bios/wins16bios-000001.vmdk
    1    [datastore1] wins16bios/wins16bios_1-000001.vmdk
    --------------------------------------------------------------
    Please choose the system disk (default 0):0
    对于虚拟机名称后的Add行显示*,表示添加成功。
    VM List of 192.168.XX.XX:
    --------------------------------------------------------------
    ID      Name                     Connected      CBT      Add  
    481     TEST_CLONE_1                 *      
    389     win16bios                    *                    *  
    338     hanjun_test_001              *  
    386     Aliyun_SMC_Agent_6.5         *  
    393     win16uefi   
    --------------------------------------------------------------
    Please input the ID of VM to be migrated (input 0 to exit):0
    • 如果您需要迁移多台虚拟机,可继续输入需要迁移的虚拟机的ID。
    • 如果您只迁移一台虚拟机,输入0,返回宿主机选择项,如果您需要继续选择迁移其他宿主机中的虚拟机,重复上述操作。反之,输入0,退出配置。
  3. 运行以下命令,可查看已生成vmware_connect_config.jsonvmware_migrate_config.json文件。
    ll
    回显信息类似如下所示。
    [root@localhost smc]# ll
    total 5588
    drwxrwxrwx. 4 root root     239 Oct 17 17:27 Check
    -rwxrwxrwx. 1 root root    6884 Oct 14 15:54 client_data
    -rwxrwxrwx. 1 root root     151 Oct 14 17:47 configure.sh
    drwxrwxrwx. 2 root root      72 Nov  1 01:15 dist
    -rwxrwxrwx. 1 root root   38878 Oct 14 15:54 EULA
    drwxrwxrwx. 2 root root    4096 Oct 17 17:27 Excludes
    -rwxrwxrwx. 1 root root 5633792 Oct 31 19:43 go2aliyun_client
    -rwxrwxrwx. 1 root root     146 Oct 14 15:54 user_config.json
    -rw-r--r--. 1 root root     263 Nov 10 18:05 vmware_connect_config.json
    -rw-r--r--. 1 root root   18406 Nov 10 18:07 vmware_migrate_config.json
  4. 运行以下命令,导入迁移源。
    ./go2aliyun_client --jobtype=3
    根据回显信息,输入激活码或者访问密钥(AccessKey)。
    说明
    • SMC激活码Access Token包括Access Token Id和Access Token Code,如果您没有激活码,请先在SMC控制台导入迁移源页面,单击生成激活码,并单击user_config.json页签,复制access_token_id和access_token_code。获取激活码的具体操作,请参见通过激活码手工导入迁移源
    • 阿里云账号的访问密钥(AccessKey)包括AccessKey ID和AccessKey Secret,如果您未创建AccessKey,请先创建。具体操作,请参见创建AccessKey
    本示例以输入激活码为例,回显信息类似如下所示。当回显信息显示Import Source Server [s-bp14zd35128xgjdbh****] Successfully!时,表示导入迁移源成功。
    [root@localhost smc]# ./go2aliyun_client --jobtype=3
    [2022-11-10 10:12:17] [Info]  ========= Goto Aliyun VMware Client1.1.1 =========
    [2022-11-10 10:12:17] [Info]  Load User Config...
    Please Enter Access Token Id Or Access Id: at-bp1bq6h8194dnpod****
    Please Enter Access Token Code: ******************************
    [2022-11-10 10:12:17] [Info]  Load Client Data...
    [2022-11-10 10:12:17] [Info]  Load VMware Connect Config...
    [2022-11-10 10:12:17] [Info]  Load VMware Migrate Config...
    OS Info: Microsoft Windows Server 2016 (64-bit)
    CPU Info: Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz
    CPU: 4 Cores Memory: 8.00GB
    Hostname: WIN-5KSIG3H94RM IP Address:  Mac Address: 00:50:56:b6:**:**
    [2022-11-10 10:12:17] [Info]  Verify User Account...
    [2022-11-10 10:12:17] [Info]  Generate SSH Key...
    [2022-11-10 10:12:18] [Info]  Import Source Server...
    [2022-11-10 10:12:18] [Info]  Import Source Server [s-bp131kz499d1e22f****] Successfully!
    [2022-11-10 10:12:18] [Info]  =========   Run In BackGround Daemon Mode   =========
    [2022-11-10 10:12:18] [Info]  Goto Aliyun Begin...
    [2022-11-10 10:12:18] [Info]  Check Source Server Status...
    [2022-11-10 10:12:18] [Info]  Check Replication Job Status...
    Please Goto SMC Console To Create New Job, time: 4m30s    \

步骤三:创建并启动迁移任务

在SMC控制台根据界面提示创建并启动迁移任务。迁移完成后生成云服务器镜像,您可以根据云服务器镜像创建ECS实例。

  1. 登录SMC控制台
  2. 在左侧导航栏,单击迁移源
  3. VMware虚拟机页签下,单击目标迁移源操作列下的创建迁移任务
    重要 创建迁移任务时,迁移源状态必须为在线
    ada56
  4. 创建迁移任务对话框中,配置相关参数。
    参数说明具体如下表所示。
    参数说明
    迁移任务类型默认选择VMware无代理迁移
    基本配置
    目标地域目标地域是指您的VMware服务器要迁入目标阿里云的地域。该参数为必填项。关于地域的更多信息,请参见地域和可用区
    任务名称迁移任务的名称。
    说明 同一阿里云地域下,任务名称必须唯一。
    任务描述输入迁移任务的描述信息。
    目标磁盘(GiB)设置目标服务器的磁盘结构。adsa56根据业务需求配置相关参数:
    • 默认选中启用块复制,且不可修改。

      使用块复制能有效提升迁移传输速度的稳定性,同时能够保证跟源分区结构一致,但分区大小无法修改。

    • 系统盘:VMware服务器系统盘的大小,单位为GiB,不可修改。
    • 数据盘<N>:目标阿里云服务器ECS数据盘的大小,单位为GiB。 取值范围:20~32768。
      • 您可以设置数据盘前复选框的选中情况,自行选择是否生成目标数据盘。
      • 变量<N>表示第几个数据盘。
      • 目标数据盘取值需要大于迁移源数据盘的实际占用大小。例如,源数据盘大小为500 GiB,实际占用100 GiB,则目标数据盘取值需大于100 GiB。
      说明 若您的迁移源没有数据盘,或数据盘未挂载,不会出现数据盘配置项。更多信息,请参见为什么新建迁移任务页面没有出现数据盘配置项?
    目标类型默认选择云服务器镜像,您可以将源服务器迁移为云服务器镜像,并通过云服务器镜像创建ECS实例。目标类型的参数说明如下:
    镜像名称SMC为迁移VMware服务器生成的目标阿里云镜像名称。
    说明 同一阿里云地域下,镜像名称必须唯一。
    许可证类型根据实际选择许可证类型。具体说明如下:
    • 阿里云:阿里云提供的微软许可证。更多信息,请参见SMC FAQ
    • 自带许可:自带许可(Bring Your Own License,简称BYOL) 迁移上云目前主要包括Microsoft和Redhat。更多信息,请参见SMC FAQ
    自动增量同步迁移任务是否自动同步源服务器增量数据至阿里云。
    • 开启该开关后,需设置以下配置项:
      • 同步重复频率:增量迁移任务周期性自动执行的时间间隔。
      • 最大镜像保留数:增量迁移任务默认保留的最大镜像数。
      迁移任务将自动周期性执行,并同步增量数据至阿里云。增量迁移需开启CBT功能,关于增量迁移的最佳实践,请参见VMware无代理增量迁移
    • 关闭该开关后,迁移任务仅执行一次。
    执行方式选择迁移任务的执行方式:
    • 立即执行:创建迁移任务后立即启动。
    • 预约执行:创建迁移任务后,在设置的时间自动启动迁移任务。
      重要 预约执行时间最早可设置为当前时间后10分钟。
    • 只创建:仅创建迁移任务,需要手动启动迁移任务。

    默认值:立即执行

    标签与网络(可选)
    迁移任务标签为迁移任务绑定标签键值,便于查询与管理迁移任务。
    重要 同一个迁移任务最多可绑定20个标签。
    网络模式传输迁移数据到中转实例使用的网络。中转实例会被创建在所选专有网络(VPC)、交换机(vSwitch)下,因此中转实例会被分配公网IP。adda
    配置项说明表如下:
    • 公网传输:迁移数据通过公网传输到中转实例。使用该模式,源服务器需能访问公网。根据实际需要,选择是否指定专有网络(VPC)和交换机(vSwitch)。
      • 指定VPC和vSwitch:迁移任务在您指定的VPC和vSwitch下创建中转实例。

        批量迁移时,为每个迁移任务指定相同的VPC和vSwitch,可提高VPC的复用率,每次批量迁移的最大值可达到100台迁移源。

      • 不指定VPC和vSwitch:迁移任务在系统自动新建的VPC和vSwitch下创建中转实例。

        批量迁移时,若不指定VPC和vSwitch,SMC会为每个中转实例创建一个VPC。

        重要 由于每个账号在一个地域下的VPC限额为10(包括您创建的VPC和SMC自动创建的VPC),因此每次批量迁移的最大值不超过10台迁移源。如需提高VPC限额,请提交工单
    • 私网传输:迁移数据通过VPC内网传输到中转实例。使用该模式,需要将源服务器与阿里云VPC打通,并且必须指定VPC和vSwitch。
      说明 如果您能直接从自建机房(Integrated Data Center,IDC)、虚拟机环境或者云主机访问某一阿里云地域下的专有网络VPC,建议您使用该方式进行迁移。使用内网传输能获得比通过公网更快速更稳定的数据传输效果,提高迁移工作效率。您可以通过VPN网关、高速通道物理专线、智能接入网关将源服务器和云上VPC打通。更多信息,请参见连接本地IDC
    高级配置(可选)
    Checksum验证开启后,可增强数据一致性校验,但是可能会降低传输速度。

    默认值:关闭。

    传输限速迁移过程中,数据传输的带宽上限限制,单位为Mbps。
    压缩率迁移过程中,数据压缩传输的级别。 请根据您的实际需要,设置压缩率。
    • 在带宽有限的环境下,使用高压缩率,可提升数据的传输速度。
    • 在带宽很高的情况下,建议您不压缩传输数据,可减少对迁移源CPU资源的耗费。

    取值范围为0~10,默认值为7,0表示不压缩传输数据。

    中转实例规格可根据实际需求选择中转实例规格。
    • 选择中转实例规格:系统会选择该实例规格创建中转实例。若该实例规格库存不足,则迁移任务创建失败。
    • 不选择中转实例规格:系统默认会按照顺序选择实例规格来创建中转实例。
  5. 配置相关参数后,单击创建
  6. 迁移任务页面,在VMware无代理迁移页签,等待迁移任务完成。daa56
    • 当迁移状态为已完成时,表示VMware迁移成功。您可以在目标迁移任务的操作列下,单击创建实例,根据生成的自定义镜像创建ECS实例。具体操作,请参见使用向导创建实例
    • 当任务状态为出错(InError),表示VMware迁移失败。您需要查看日志修复问题后,重新迁移任务。常见错误及修复方案的更多信息,请参见SMC FAQ
  7. 可选:迁移下一个VMware虚拟机。
    如果在导入迁移源配置文件时,您添加了多个虚拟机ID,完成一个VMware虚拟机迁移操作后,可以关掉SMC客户端进程,然后迁移下一个VMware虚拟机。操作步骤如下:
    1. 登录SMC客户端虚拟机。具体操作,请参见登录SMC客户端虚拟机
    2. 通过Ctrl+C退出正在运行的SMC客户端进程,并通过以下命令结束当前SMC客户端进程。
      ./dist/finish 1
    3. 执行以下命令,重新运行SMC客户端,开始迁移下一台虚拟机。
      ./go2aliyun_client --jobtype=3

(可选)步骤四:多任务迁移

如果您需要迁移大量VMware虚拟机,可以通过多任务同时迁移,提高迁移效率。
重要 一个VMware虚拟机迁移完成后,才可以关掉SMC客户端进程,然后迁移下一个VMware虚拟机,否则迁移失败。
  1. 可选:创建多个SMC客户端虚拟机。
    每台SMC客户端虚拟机最多支持同时运行5个SMC客户端,如果不能满足您的需求,您可根据当前VMware环境下剩余资源情况,克隆或通过OVF模板文件部署多个SMC客户端虚拟机,在不同的SMC客户端虚拟机中运行SMC客户端。本示例以克隆SMC客户端虚拟机为例。
    1. 在SMC客户端虚拟机上,右键选择Clone > Clone to Virtual Machineasdas56
    2. 依次配置虚拟机名称和安装位置、计算资源、存储空间以及克隆选项,完成克隆配置。
      具体操作,请参见创建SMC客户端虚拟机
  2. 登录SMC客户端虚拟机。具体操作,请参见登录SMC客户端虚拟机
  3. 对于每台SMC客户端虚拟机,可通过运行以下命令获取多个SMC客户端。
    每台SMC客户端虚拟机最多支持同时运行5个SMC客户端,您可以根据需求复制多个SMC客户端文件。
    cd /root
    cp -r smc smc2
    cp -r smc smc3
    cp -r smc smc4
    cp -r smc smc5
    mv smc smc1                 
    重要 每台SMC客户端虚拟机最多支持同时运行5个SMC客户端。
  4. 运行以下命令,对每个SMC客户端配置文件。
    本步骤以运行第2个SMC客户端为例,如果您需要在一个SMC客户端虚拟机中运行多个SMC客户端,可以到指定目录下,执行./configure.sh命令,配置文件。
    cd /root/smc2
    ./configure.sh
    关于配置文件的具体操作,请参见配置文件
  5. 运行以下命令,查看当前正在运行的SMC客户端相关进程。
    ps -ef | grep smcvmware_client
    回显信息类似下图所示。asda56
    说明 多个SMC客户端运行时,根据客户端进程开始运行的时间顺序,SMC客户端进程名依次包含smcvmware_client_1、smcvmware_client_2、... 、smcvmware_client_N。
  6. 每个客户端对应的迁移任务完成后,通过Ctrl+C退出,并通过以下命令结束当前进程。
    ./dist/finish N
    其中:N表示进程顺序,需替换为实际的值。例如:1、2。
  7. 执行以下命令,重新运行SMC客户端,开始迁移下一台VMware虚拟机。
    ./go2aliyun_client --jobtype=3