发现、评估和迁移 Google Cloud Platform(GCP)VM 到 Azure

本教程介绍如何使用 Azure Migrate:服务器评估和Azure Migrate:服务器迁移工具发现、评估和迁移 Google Cloud Platform 虚拟机(GCP)到Azure VM。

本教程介绍如何执行下列操作:

  • 验证迁移的先决条件。
  • 使用 Azure Migrate:服务器迁移工具准备Azure资源。 为 Azure 帐户和资源设置权限,以便使用 Azure Migrate 和 Modernize。
  • 准备好 GCP VM 实例以进行迁移。
  • 在 Azure Migrate 和现代化中心中添加 Azure Migrate:Server Migration 工具。
  • 设置复制设备并部署配置服务器。
  • 在要迁移的 GCP VM 上安装Mobility service。
  • 为虚拟机启用复制。
  • 跟踪和监视复制状态。
  • 运行测试迁移,确保一切按预期正常进行。
  • 执行完整的Azure迁移。

如果没有 Azure 订阅,请在开始前创建 试用订阅。

发现和评估

迁移到Azure之前,建议执行 VM 发现和迁移评估。 此评估有助于正确调整 GCP VM 的大小,以便迁移到Azure并估算潜在的Azure运行成本。

若要设置评估,请执行以下操作:

  1. 按照 教程 设置 Azure,并为评估准备 GCP 虚拟机。 请注意:

    • Azure Migrate 和 Modernize 使用密码身份验证来发现 GCP VM 实例。 GCP 实例默认不支持密码身份验证。 需要先启用密码验证,才能发现实例。
      • 对于Windows计算机,请允许 WinRM 端口 5985 (HTTP)。 这端口允许远程 WMI 调用。
      • 对于 Linux 计算机:
        1. 登录到每台 Linux 计算机。
        2. 打开sshd_config文件: vi /etc/ssh/sshd_config
        3. 在文件中,定位到 PasswordAuthentication 行,然后将值改为 yes。
        4. 保存文件并将其关闭。 重启 ssh 服务。
    • 如果使用根用户来发现 Linux VM,请确保 VM 上允许根登录。
      1. 登录到每台 Linux 计算机。
      2. 打开sshd_config文件: vi /etc/ssh/sshd_config
      3. 在文件中,定位到 PermitRootLogin 行,然后将值改为 yes。
      4. 保存文件并将其关闭。 重启 ssh 服务。
  2. 然后,按照此 教程 设置 Azure Migrate 项目和虚拟设备,以发现和评估 GCP 虚拟机。

尽管建议你尝试进行评估,但执行评估并不是迁移 VM 的必需步骤。

先决条件

  • 确保要迁移的 GCP VM 正在运行受支持的操作系统 (OS) 版本。 出于迁移目的,GCP VM 被视为物理计算机。 查看物理服务器迁移工作流中支持的操作系统和内核版本。 可以使用标准命令(如 hostnamectl 或 uname -a)检查 Linux VM 的 OS 和内核版本。 建议执行测试迁移,验证 VM 是否按预期运行,然后再继续实际的迁移。
  • 确保 GCP 虚拟机符合迁移到 Azure 的支持的配置。
  • 验证复制到Azure的 GCP VM 是否符合 Azure VM 要求。
  • 在将 VM 迁移到Azure之前,需要对 VM 进行一些更改:
    • 对于某些操作系统,Azure Migrate和现代化会自动进行这些更改。
    • 请在开始迁移之前进行这些更改。 如果在进行更改之前迁移 VM,则 VM 可能无法在Azure启动。 查看Windows和Linux需要进行的更改。

准备Azure资源进行迁移

使用 Azure Migrate:服务器迁移工具为 Azure 做好迁移准备。

任务 详细信息
创建Azure Migrate项目 Azure帐户需要参与者或所有者权限才能创建新项目。
验证Azure帐户的权限 Azure帐户需要权限才能创建 VM 并写入Azure托管磁盘。

分配创建项目的权限

  1. 在 Azure 门户中,打开订阅并选择 Access 控件 (IAM)。

  2. 在 “检查访问权限”中,找到相关帐户,并选择它以查看权限。

  3. 你应该拥有“参与者”或“所有者”权限。

    • 如果刚刚创建了一个试用Azure帐户,则你是订阅的所有者。
    • 如果您不是订阅的所有者,请与所有者合作分配该角色。

分配Azure帐户权限

将 VM 参与者角色分配给Azure帐户。 此角色提供了执行以下操作的权限:

  • 在所选资源组中创建 VM。
  • 在所选虚拟网络中创建 VM。
  • 写入Azure托管磁盘。

创建Azure网络

设置Azure虚拟网络。 复制到 Azure 时,创建的Azure VM 会加入设置迁移时指定的Azure虚拟网络。

准备好 GCP 实例以进行迁移

若要准备 GCP 到 Azure 迁移,需要准备和部署用于迁移的复制设备。

为复制设备准备计算机

Azure Migrate:服务器迁移工具使用复制设备将计算机复制到Azure。 复制设备运行以下组件:

  • 配置服务器:配置服务器协调 GCP VM 与Azure之间的通信并管理数据复制。
  • 进程服务器:进程服务器充当复制网关。 它接收复制数据,并通过缓存、压缩和加密来优化这些数据。 然后将数据发送到Azure中的缓存存储帐户。

若准备进行设备部署,请执行以下操作:

  • 设置单独的 GCP VM 以托管复制设备。 此实例必须Windows Server 2012 R2 或Windows Server 2016运行。 查看 设备的硬件、软件和网络要求。

  • 不应在您要复制的源 VM 上安装设备,也不应在之前可能已安装的 Azure Migrate 发现和评估设备上安装。 它应部署在其他 VM 上。

  • 要迁移的源 GCP VM 应具有到复制设备的视距网络连接。 配置所需的防火墙规则以启用此功能。 建议将复制设备部署在与要迁移的源 VM 相同的虚拟专用云 (VPC) 网络中。 如果复制设备需要位于其他 VPC 中,则必须通过 VPC 对等互连来连接这些 VPC。

  • 源 GCP VM 通过端口 HTTPS 443(控制通道编排)和 TCP 9443(数据传输)与复制设备进行入站通信,以管理复制和传输复制数据。 复制设备反过来协调复制数据,并通过端口 HTTPS 443 出站将复制数据发送到Azure。 若要配置这些规则,请编辑安全组入站/出站规则,在其中加入相应的端口和源 IP 信息。

    显示 GCP 防火墙规则的屏幕截图。

    显示编辑防火墙规则的屏幕截图。

  • 复制设备使用 MySQL。 查看用于在设备上安装 MySQL 的选项 。

  • 查看复制设备访问由世纪互联运营的Azure所需的URL。

设置复制工具

第一个迁移步骤是设置复制设备。 若要为 GCP VM 迁移设置设备,必须下载设备的安装程序文件,然后在 准备好的 VM 上运行它。

下载复制设备安装程序

  1. 在 Azure Migrate 项目中,选择 Windows、Linux 和 SQL Server>Azure Migrate:服务器迁移>发现。

    屏幕截图:“发现”按钮。

  2. 在“发现计算机”“计算机是否已虚拟化?”中,选择“未虚拟化/其他”。

  3. 在 Target 区域中,选择要将计算机迁移到的Azure区域。

  4. 选择“确认迁移的目标区域为 <区域名称>”。

  5. 选择“创建资源”。 此步骤在后台创建Azure Site Recovery保管库。

    • 如果已使用 Azure Migrate:服务器迁移工具设置迁移,则无法配置目标选项,因为以前设置了资源。
    • 选择此按钮后,无法更改此项目的目标区域。
    • 若要将 VM 迁移到其他区域,需要创建新的或不同的Azure Migrate项目。
  6. 在“是否安装新的复制设备?”中,选择“安装复制设备”。

  7. 在 “下载并安装复制设备软件”中,下载设备安装程序和注册密钥。 需要使用该密钥来注册设备。 该密钥在下载后的 5 天内有效。

    显示“下载”按钮的屏幕截图。

  8. 将设备设置文件和密钥文件复制到为复制设备创建的Windows Server 2016或Windows Server 2012 GCP VM。

  9. 如以下过程中所述,运行复制设备安装程序文件。

    1. 在 “开始之前”下,选择 “安装配置服务器和进程服务器 ”,然后选择“ 下一步”。
    2. 在 第三方软件许可证中,选择 “我接受第三方许可协议 ”,然后选择“ 下一步”。
    3. 在 “注册”中,选择“ 浏览 ”,然后转到放置保管库注册密钥文件的位置,然后选择“ 下一步”。
    4. 在 Internet 设置 中,选择 连接到 Azure Site Recovery 而不使用代理服务器,然后选择 下一步。
    5. “先决条件检查”页会针对多个项目进行检查。 完成后,选择“ 下一步”。
    6. 在 MySQL 配置中,输入 MySQL 数据库的密码,然后选择“ 下一步”。
    7. 在“环境详细信息”中选择“否”。 无需保护 VM。 然后,选择“下一步”。
    8. 在“安装位置”中选择“下一步”,接受默认值。
    9. 在“网络选择”中选择“下一步”,接受默认值。
    10. 在“摘要”中选择“安装”。
    11. “安装进度”显示有关安装过程的信息。 完成后,选择“ 完成”。 此时会出现一个显示重启消息的窗口。 选择“确定” 。
    12. 接下来会出现一个窗口,显示关于配置服务器连接口令的消息。 将通行短语复制到剪贴板,并将它保存在源 VM 上的临时文本文件中。 稍后在Mobility service安装过程中需要此通行短语。
  10. 安装完成后,设备配置向导会自动启动。 (也可以使用在设备桌面上创建的 cspsconfigtool 快捷方式手动启动向导。在本教程中,我们将手动在要复制的源 VM 上安装Mobility service。 需要在此步骤中创建虚拟帐户才能继续操作。 对于虚拟帐户,请使用“guest”作为友好名称,使用“username”作为用户名,并使用“password”作为帐户密码。 你需要在“启用复制”阶段使用此虚拟帐户。

    显示“完成注册”的屏幕截图。

安装Mobility服务代理程序

必须在要迁移的源 GCP 虚拟机上预先安装 Mobility 服务代理,然后才能启动复制。 选择安装移动服务代理的方法可能取决于您组织的偏好和现有工具。 目前不支持内置于Azure Site Recovery的“push”安装方法。 你可能需要考虑的方法:

  1. 将安装程序 tarball 的内容提取到 GCP VM 上的本地文件夹(例如 /tmp/MobSvcInstaller),如下所示:

    mkdir /tmp/MobSvcInstaller
    tar -C /tmp/MobSvcInstaller -xvf <Installer tarball>
    cd /tmp/MobSvcInstaller
    
  2. 运行安装程序脚本:

    sudo ./install -r MS -v VmWare -q -c CSLegacy
    
  3. 将代理注册到复制应用程序:

    /usr/local/ASR/Vx/bin/UnifiedAgentConfigurator.sh -i <replication appliance IP address> -P <Passphrase File Path>
    

为 GCP 虚拟机启用复制

注意

通过门户,可一次性最多添加 10 个 VM 用于复制。 若要同时复制更多 VM,可分批次添加,每次添加 10 个。

  1. 在 Azure Migrate 项目中,选择 Windows、Linux 和 SQL Server>Azure Migrate:服务器迁移>Replicate。

    显示选择“复制”的屏幕截图。

  2. 在复制、>、你的计算机是否已虚拟化?中,选择>。

  3. 在 本地设备中,选择所设置Azure Migrate设备的名称。

  4. 在“进程服务器”中,选择复制设备的名称。

  5. 在 Guest 凭据中,选择之前在 复制安装程序设置期间创建的伪帐户手动安装Mobility service。 (不支持“推送”安装。)然后选择“下一步: 虚拟机”。

    显示“复制设置”的屏幕截图。

  6. 在“虚拟机”中的“从评估中导入迁移设置?”内,保留默认设置“否,我将手动指定迁移设置”。

  7. 检查要迁移的每个 VM。 然后选择“下一步: 目标设置”。

    显示选择 VM 的屏幕截图。

  8. 在 Target 设置中,选择要迁移到的订阅和目标区域,并指定迁移后Azure VM 将驻留的资源组。

  9. 在 Virtual Network中,选择将要在迁移后加入的 Azure VM 所在的 Azure 虚拟网络/子网。

  10. 在 缓存存储帐户中,保留默认选项,以使用为项目自动创建的缓存存储帐户。 如果想要指定其他存储帐户用作复制的缓存存储帐户,请使用下拉列表。

  11. 在“可用性选项”中,选择:

    • 可用性区域:将迁移的计算机固定到区域中的特定可用性区域。 使用此选项可跨可用性区域分配形成多节点应用程序层的服务器。 如果选择此选项,则需要指定要用于 “计算 ”选项卡上每个选定计算机的可用性区域。仅当为迁移选择的目标区域支持可用性区域时,此选项才可用。
    • 可用性集:将迁移的计算机置于可用性集中。 若要使用此选项,所选的目标资源组必须具有一个或多个可用性集。
    • 不需要基础结构冗余:如果不需要迁移的计算机的以下任一可用性配置,请使用此选项。
  12. 在“磁盘加密类型”中,选择以下类型:

    • 使用平台管理的密钥进行静态加密。
    • 使用客户管理的密钥进行静态加密。
    • 通过平台管理的密钥和客户管理的密钥进行双重加密。

    注意

    若要使用客户管理的密钥复制 VM,需要在目标资源组下创建磁盘加密集。 磁盘加密集对象将托管磁盘映射到包含由客户管理的用于服务器端加密的密钥的 Azure Key Vault 实例。

  13. 在 Azure Hybrid Benefit:

    • 如果不想应用Azure Hybrid Benefit,请选择 No。 然后,选择“下一步”。
    • 如果您拥有已覆盖活动软件保障或 Windows Server 订阅的 Windows Server 计算机,并且希望将此权益应用于您正要迁移的计算机,请选择 Yes。 然后,选择“下一步”。

    显示目标设置的屏幕截图。

  14. 在“计算”中,查看 VM 名称、大小、OS 磁盘类型和可用性配置(如果在上一步中选定)。 VM 必须符合 Azure 要求。

    • VM 大小:如果使用评估建议,则 VM 大小下拉列表显示建议的大小。 否则,Azure Migrate 和 现代化 会根据 Azure 订阅中最相近的匹配项来选择大小。 或者,在 Azure VM 大小 中选择手动大小。
    • OS 磁盘:指定 VM 的 OS(启动)磁盘。 OS 磁盘是包含操作系统引导加载程序和安装程序的磁盘。
    • 可用性区域:指定要使用的可用性区域。
    • 可用性集:指定要使用的可用性集。
  15. 在 Disks 中,指定 VM 磁盘是否应复制到Azure,并在Azure中选择磁盘类型(标准 SSD/HDD 或高级托管磁盘)。 然后,选择“下一步”。

    • 可以从复制中排除磁盘。
    • 如果排除磁盘,迁移后不会出现在Azure VM 上。

    显示“复制”对话框中的“磁盘”选项卡的屏幕截图。

  16. 在 “标记”中,选择将标记添加到 VM、磁盘和 NIC。

    显示“复制”对话框中的“标记”选项卡的屏幕截图。

  17. 在“检查并开始复制”中检查设置,然后选择“复制”启动服务器的初始复制。

注意

可以在复制开始之前随时更新复制设置,方法是选择“ 管理>复制计算机”。 开始复制后无法更改设置。

跟踪和监视复制状态

  • 选择“复制”会启动一个“开始复制”作业。
  • 当启动复制作业成功完成后,VM 会开始其到 Azure 的初始复制。
  • 初始复制完成后,增量复制将会开始。 对 GCP VM 磁盘的增量更改会定期复制到Azure中的副本磁盘。

可以在门户通知中跟踪作业状态。

可以在Azure Migrate:服务器迁移中选择复制服务器,来监视复制状态。

显示“复制服务器”选项的屏幕截图。

运行测试迁移

开始增量复制时,可以在运行完整迁移到 Azure 之前,为 VM 进行测试迁移。 我们强烈建议进行测试迁移。 你可通过它在继续实际迁移之前发现潜在的问题并解决它们。 建议在迁移之前为每个 VM 至少执行一次此步骤。

  • 运行测试迁移可检查迁移是否按预期进行而不影响 GCP VM,它们仍可保持正常运行并继续复制。
  • 测试迁移通过使用复制的数据创建Azure VM 来模拟迁移。 (测试通常迁移到Azure订阅中的非生产虚拟网络。
  • 可以使用复制的测试Azure VM 来验证迁移、执行应用测试,并在完全迁移之前解决任何问题。

若要执行测试迁移,请执行以下操作:

  1. 在 Migration 目标中,选择 Windows、Linux 和 SQL Server>Azure Migrate:服务器迁移>测试迁移的服务器。

    屏幕截图:测试迁移的服务器。

  2. 右键单击 VM 进行测试并选择 “测试迁移”。

    显示选择测试迁移后的结果的屏幕截图。

  3. 在 测试迁移中,选择迁移后Azure VM 所在的Azure虚拟网络。 建议使用非生产虚拟网络。

  4. “测试迁移”作业随即启动。 在门户通知中监视该作业。

  5. 迁移完成后,在 Azure 门户中的 Virtual Machines 中查看迁移的 Azure VM。 计算机名称具有后缀 -Test。

  6. 测试完成后,在 复制的计算机 中右键单击 Azure VM,然后选择 清理测试迁移 。

    显示测试迁移清理后的结果的屏幕截图。

    注意

    现在,可以使用 SQL IaaS 代理扩展将运行SQL Server的服务器注册到 SQL VM RP,以利用自动修补、自动备份和简化的许可证管理。

    • 选择“管理”“复制服务器”>“包含 SQL Server 的计算机”“计算和网络”,然后选择“是”,注册 SQL VM RP。
    • 如果您拥有包含活动软件保障或SQL Server 订阅的 SQL Server 实例,并且希望将该权益应用于要迁移的计算机,请选择 Azure Hybrid Benefit for SQL Server。

迁移 GCP VM

确认测试迁移按预期方式进行后,就可迁移 GCP VM。

  1. 在 Azure Migrate 项目中,选择 Windows、Linux 和 SQL Server>Azure Migrate:服务器迁移>复制服务器。

    显示“复制服务器”的屏幕截图。

  2. 在“复制计算机”中,右键单击 VM 并选择“迁移”。

  3. 在“迁移”“关闭虚拟机并执行计划迁移(不会丢失任何数据)”中,选择“是”>“确定”。

    注意

    迁移 GCP VM 时不支持自动关闭。

  4. 随即会针对该 VM 启动一个迁移作业。 可以通过选择门户页面右上角的通知钟图标或转到Azure Migrate:服务器迁移工具的 Jobs 页来查看作业状态。 (在工具磁贴上选择 “概述 ”,然后从左侧菜单中选择“ 作业 ”。

  5. 作业完成后,可以从 Virtual Machines 页查看和管理 VM。

完成迁移

  1. 迁移完成后,右键单击 VM 并选择“ 停止迁移”。 此操作:

    • 停止 GCP 虚拟机的复制操作。
    • 从 Azure Migrate:服务器迁移工具的复制服务器计数中移除 GCP 虚拟机。
    • 清除 VM 的复制状态信息。
  2. 验证并排除 Azure VM 上的任何 Windows 激活问题。

  3. 执行任何迁移后的应用调整,例如更新主机名、数据库连接字符串和 Web 服务器配置。

  4. 对已迁移至 Azure 并正在运行的应用程序执行最终的应用程序测试和迁移验收测试。

  5. 将流量切换到已迁移 Azure VM 实例。

  6. 更新任何内部文档以显示Azure VM 的新位置和 IP 地址。

迁移后的最佳做法

故障排除和提示

问题: 在发现的要迁移的服务器列表中看不到 GCP VM。
答: 检查复制设备是否符合要求。 确保在要迁移的源 VM 上安装移动代理并注册配置服务器。 检查防火墙规则,以启用复制设备与源 GCP VM 之间的网络路径。

问题: 如何知道 VM 是否已成功迁移?
Answer:迁移后,可以从 Virtual Machines 页查看和管理 VM。 连接到已迁移的 VM 进行验证。

问题: 无法导入 VM,以便从之前创建的服务器评估结果进行迁移。
答案:目前,我们不支持为此工作流导入评估。 临时解决方法是,导出评估,然后在“启用复制”步骤期间手动选择 VM 建议。

问题: 尝试发现 GCP 虚拟机时,出现错误“无法提取 BIOS GUID”。
答: 使用根登录名进行身份验证,而不使用任何伪用户。 如果无法使用根用户,请确保根据 支持矩阵中提供的说明在用户上设置所需的功能。 另外,请查看 GCP VM 支持的操作系统。

问题:我的复制状态没有任何进展。
答: 检查复制设备是否符合要求。 确保已在复制设备 TCP 端口 9443 和 HTTPS 443 上启用了所需端口以进行数据传输。 确保没有过时的重复版本的复制应用程序连接到同一项目。

问题:由于远程 Windows 管理服务返回 HTTP 状态代码 504,我无法通过 Azure Migrate 和 Modernize 发现 GCP 实例。
Answer:请务必查看Azure Migrate设备要求和 URL 访问需求。 确保没有代理设置阻止设备注册。

Question:在将 GCP VM 迁移到Azure之前是否需要进行任何更改?
Answer: 在将 GCP VM 迁移到 Azure之前,可能需要进行以下更改:

  • 如果使用 cloud-init 进行 VM 预配,可能需要先在 VM 上禁用 cloud-init,然后再将其复制到Azure。 VM 上的 cloud-init 执行的预配步骤可能特定于 GCP,在迁移到Azure后无效。 ​
  • 查看 Prerequisites 部分,以确定在将操作系统迁移到Azure之前是否需要进行任何更改。
  • 我们始终建议在进行最终迁移之前,先运行一次测试迁移。

后续步骤

了解 Azure 云采用框架中的 云迁移旅程。