发现、评估 Amazon Web Services (AWS) VM 并将其迁移到 Azure
注意
本文引用了 CentOS,这是一个接近生命周期结束状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
本教程介绍如何使用“Azure Migrate: 服务器评估”和“Azure Migrate 和服务器迁移”工具来发现、评估 Amazon Web Services (AWS) 虚拟机 (VM) 并将其迁移到 Azure VM。
注意
将 AWS VM 迁移到 Azure 的方式与迁移物理服务器相同。
本教程介绍如何执行下列操作:
- 验证迁移的先决条件。
- 准备要使用“Azure Migrate 和服务器迁移”工具进行迁移的 Azure 资源。 设置要与 Azure Migrate and Modernize 配合使用的 Azure 帐户和资源的权限。
- 让 AWS Elastic Compute Cloud (EC2) 实例做好迁移准备。
- 在“Azure 迁移和现代化”中心添加“Azure Migrate 和服务器迁移”工具。
- 设置复制设备并部署配置服务器。
- 在要迁移的 AWS VM 上安装出行服务。
- 为 VM 启用复制。
- 跟踪和监视复制状态。
- 运行测试迁移,确保一切按预期正常进行。
- 运行到 Azure 的完整迁移。
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
发现和评估
建议你先执行 VM 发现和迁移评估,然后再迁移到 Azure。 该评估可帮助你适当调整要迁移到 Azure 的 AWS VM,并预估 Azure 可能的运行成本。
若要设置评估,请执行以下操作:
按照教程设置 Azure 并准备 AWS VM 进行评估。 请注意:
- Azure 迁移和现代化使用密码验证来发现 AWS 实例。 AWS 实例默认不支持密码验证。 需要先启用密码验证,才能发现实例。
- 对于 Windows 计算机,请允许 WinRM 端口 5985 (HTTP)。 这端口允许远程 WMI 调用。
- 对于 Linux 计算机:
- 登录到每台 Linux 计算机。
- 打开 sshd_config 文件:
vi /etc/ssh/sshd_config
。 - 在文件中,定位到
PasswordAuthentication
行,然后将值改为yes
。 - 保存文件并将其关闭。 重启 ssh 服务。
- 如果使用根用户来发现 Linux VM,请确保 VM 上允许根登录。
- 登录到每台 Linux 计算机。
- 打开 sshd_config 文件:
vi /etc/ssh/sshd_config
。 - 在文件中,定位到
PermitRootLogin
行,然后将值改为yes
。 - 保存文件并将其关闭。 重启 ssh 服务。
- Azure 迁移和现代化使用密码验证来发现 AWS 实例。 AWS 实例默认不支持密码验证。 需要先启用密码验证,才能发现实例。
然后,按照此教程设置 Azure Migrate 项目和设备,以发现和评估 AWS VM。
尽管建议你尝试进行评估,但执行评估并不是迁移 VM 的必需步骤。
先决条件
- 确保要迁移的 AWS VM 正在运行受支持的操作系统 (OS) 版本。 出于迁移目的,AWS VM 被视为迁移的物理计算机。 请参阅受支持的操作系统和内核版本,了解物理服务器迁移工作流。 可以使用标准命令(如
hostnamectl
或uname -a
)检查 Linux VM 的 OS 和内核版本。 建议执行测试性迁移(测试性故障转移),验证 VM 是否按预期运行,然后再继续迁移。 - 要迁移到 Azure,请确保 AWS VM 符合支持的配置。
- 验证复制到 Azure 的 AWS VM 是否符合 Azure VM 要求。
- 将 VM 迁移到 Azure 之前,需要在 VM 上进行一些更改:
让 Azure 资源准备好进行迁移
准备 Azure 以使用 Azure Migrate 和服务器迁移工具进行迁移。
任务 | 详细信息 |
---|---|
创建 Azure Migrate 项目 | Azure 帐户需要“参与者”或“所有者”权限才能创建新项目。 |
验证 Azure 帐户的权限 | Azure 帐户需要有权创建 VM 并将数据写入 Azure 托管磁盘。 |
分配创建项目的权限
- 在 Microsoft Azure 门户中打开订阅,然后选择“访问控制(IAM)”。
- 在“检查访问权限”中,找到相关帐户并选择它以查看权限。
- 你应该拥有“参与者”或“所有者”权限。
- 如果你刚刚创建了试用版 Azure 帐户,那么你就是订阅的所有者。
- 如果你不是订阅所有者,请让所有者分配该角色。
分配 Azure 帐户权限
将 VM 参与者角色分配给 Azure 帐户。 此角色提供了执行以下操作的权限:
- 在所选资源组中创建 VM。
- 在所选虚拟网络中创建 VM。
- 写入 Azure 托管磁盘。
创建 Azure 网络
设置 Azure 虚拟网络。 复制到 Azure 时,所创建的 Azure VM 会加入到在设置迁移时指定的 Azure 虚拟网络。
让 AWS 实例准备好进行迁移
若要准备好进行 AWS 到 Azure 的迁移,需要准备和部署一个用于迁移的复制设备。
为复制设备准备计算机
“Azure Migrate 和服务器迁移”工具使用复制设备将计算机复制到 Azure。 复制设备运行以下组件:
- 配置服务器:配置服务器会协调 AWS 环境与 Azure 之间的通信并管理数据复制。
- 进程服务器:进程服务器充当复制网关。 它接收复制数据,并通过缓存、压缩和加密来优化这些数据。 然后,它会将数据发送到 Azure 中的缓存存储帐户。
若准备进行设备部署,请执行以下操作:
设置单独的 EC2 VM 以托管复制设备。 此实例必须正在运行 Windows Server 2012 R2 或 Windows Server 2016。 查看设备的硬件、软件和网络要求。
该设备不应安装在要复制的源 VM 上,也不应安装在以前可能已安装的“Azure Migrate: 发现和评估”设备上。 它应部署在其他 VM 上。
要迁移的源 AWS VM 应具有到复制设备的网络线路。 配置所需的安全组规则来启用此功能。 建议将复制设备部署在与要迁移的源 VM 相同的虚拟私有云 (VPC) 中。 如果复制设备需要位于其他 VPC 中,则必须通过 VPC 对等互连来连接这些 VPC。
源 AWS VM 在端口 HTTPS 443(控制通道业务流程)和 TCP 9443(数据传输)上与复制设备进行入站通信,从而管理复制和传输复制数据。 然后,复制设备会通过端口 HTTPS 443 出站来协调复制数据并将该数据发送到 Azure。 若要配置这些规则,请编辑安全组入站/出站规则,在其中加入相应的端口和源 IP 信息。
复制设备使用 MySQL。 查看在设备上安装 MySQL 的选项。
查看复制设备访问由世纪互联运营的 Azure 时所需的 Azure URL。
设置复制设备
第一个迁移步骤是设置复制设备。 若要设置设备来迁移 AWS VM,则必须下载设备的安装程序文件,然后在准备好的 VM 上运行。
下载复制设备安装程序
在 Azure Migrate 项目中,选择“Windows、Linux 和 SQL Server”>“Azure Migrate: 服务器迁移”>“发现”。
在“发现计算机”>“计算机是否已虚拟化?”中,选择“未虚拟化/其他”。
在“目标区域”中,选择要将计算机迁移到的 Azure 区域。
选择“确认迁移的目标区域为 <区域名称>”。
选择“创建资源”。 此步骤会在后台创建一个 Azure Site Recovery 保管库。
- 如果已设置使用“Azure Migrate 和服务器迁移”工具进行迁移,则无法配置目标选项,因为之前已设置了资源。
- 选择此按钮后,无法更改此项目的目标区域。
- 若要将 VM 迁移到其他区域,需要创建一个新的或不同的 Azure Migrate 项目。
在“是否安装新的复制设备?”中,选择“安装复制设备”。
在“下载并安装复制设备软件”中,下载设备安装程序和注册密钥。 需要使用该密钥来注册设备。 该密钥在下载后的 5 天内有效。
将设备安装程序文件和密钥文件复制到为复制设备创建的 Windows Server 2016 或 Windows Server 2012 AWS VM。
如以下过程中所述,运行复制设备安装程序文件。
- 在“准备工作”下,选择“安装配置服务器和进程服务器”。 然后,选择“下一步”。
- 在“第三方软件许可证”中,选择“我接受第三方许可协议。”并 然后,选择“下一步”。
- 在“注册”中选择“浏览”,然后转到保管库注册密钥文件所在的位置。 选择下一步。
- 在“Internet 设置”中,选择“在不使用代理服务器的情况下连接到 Azure Site Recovery。”并 然后,选择“下一步”。
- “先决条件检查”页运行多个项的检查。 完成后,选择“下一步”。
- 在“MySQL 配置”中提供 MySQL 数据库的密码。 然后,选择“下一步”。
- 在“环境详细信息”中选择“否”。 无需保护 VM。 然后,选择“下一步”。
- 在“安装位置”中选择“下一步”,接受默认值。
- 在“网络选择”中选择“下一步”,接受默认值。
- 在“摘要”中选择“安装” 。
- “安装进度”显示有关安装过程的信息。 完成后,选择“完成”。 此时会出现一个显示重启消息的窗口。 选择“确定” 。
- 接下来会出现一个窗口,显示有关配置服务器连接通行短语的消息。 将通行短语复制到剪贴板,并将它保存在源 VM 上的临时文本文件中。 在稍后的出行服务安装过程中,需要用到此通行短语。
安装完成后,设备配置向导会自动启动。 (也可以使用在设备桌面上创建的
cspsconfigtool
快捷方式来手动启动向导。)在本教程中,我们将手动在要复制的源 VM 上安装出行服务。 需要在此步骤中创建虚拟帐户才能继续操作。 对于虚拟帐户,请使用“guest”作为易记名称,使用“username”作为用户名,并使用“password”作为帐户密码。 你需要在“启用复制”阶段使用此虚拟帐户。待设备安装并重启后,在“发现计算机”中的“选择配置服务器”内选择新设备,然后选择“完成注册”。 “完成注册”步骤会执行最终的几个任务来准备复制设备。
安装移动服务代理
必须先在要迁移的源 AWS VM 上预装出行服务代理,然后才能启动复制。 选择安装出行服务代理的方法可能取决于组织的首选项和现有工具。 目前不支持 Site Recovery 中内置的“推送”安装方法。 你可能需要考虑的方法:
- AWS System Manager
- System Center Configuration Manager
- Azure Arc for servers 和自定义脚本扩展
- 安装适用于 Windows 的移动代理
- 安装适用于 Linux 的移动代理
将安装程序 tarball 的内容提取到 AWS VM 上的本地文件夹(例如 /tmp/MobSvcInstaller),如下所示:
mkdir /tmp/MobSvcInstaller tar -C /tmp/MobSvcInstaller -xvf <Installer tarball> cd /tmp/MobSvcInstaller
运行安装程序脚本:
sudo ./install -r MS -v VmWare -q -c CSLegacy
将代理注册到复制设备:
/usr/local/ASR/Vx/bin/UnifiedAgentConfigurator.sh -i <replication appliance IP address> -P <Passphrase File Path>
为 AWS VM 启用复制
注意
通过门户,可一次性最多添加 10 个 VM 用于复制。 若要同时复制更多 VM,可分批次添加,每次添加 10 个。
在 Azure Migrate 项目中,选择“Windows、Linux 和 SQL Server”>“Azure Migrate: 服务器迁移”>“复制”。
在“复制”>“源设置”>“你的计算机是否已虚拟化?”中,选择“未虚化/其他”。
在“本地设备”中,选择已设置的 Azure Migrate 设备的名称。
在“进程服务器”中,选择复制设备的名称。
在“来宾凭据”中,选择以前在复制安装程序设置过程中创建的虚拟帐户,以手动安装出行服务。 (不支持“推送”安装。)然后选择“下一步: 虚拟机”。
在“虚拟机”中的“从评估中导入迁移设置?”内,保留默认设置“否,我将手动指定迁移设置”。
检查要迁移的每个 VM。 然后选择“下一步: 目标设置”。
在“目标设置”中,选择要迁移到的订阅和目标区域。 指定 Azure VM 在迁移后所在的资源组。
在“虚拟网络”中,选择 Azure VM 在迁移之后要加入到的 Azure 虚拟网络/子网。
在“缓存存储帐户”中,保留默认选项,以使用为项目自动创建的缓存存储帐户。 如果想要指定其他存储帐户用作复制的缓存存储帐户,请使用下拉列表。
在“可用性选项”中,选择:
- 可用性区域:将迁移的计算机固定到区域中的特定可用性区域。 使用此选项可跨可用性区域分配形成多节点应用程序层的服务器。 如果选择此选项,则需要在“计算”选项卡中指定用于每个选定计算机的可用性区域。仅当为迁移选择的目标区域支持可用性区域时,此选项才可用。
- 可用性集:将迁移的计算机放入可用性集。 若要使用此选项,所选的目标资源组必须具有一个或多个可用性集。
- 无需基础结构冗余:如果不需要为迁移的计算机使用其中任何可用性配置,则选择此选项。
在“磁盘加密类型”中,选择以下类型:
- 使用平台管理的密钥进行静态加密。
- 使用客户管理的密钥进行静态加密。
- 通过平台管理的密钥和客户管理的密钥进行双重加密。
注意
若要使用客户管理的密钥来复制 VM,需要在目标资源组下创建磁盘加密集。 磁盘加密集对象将托管磁盘映射到 Azure Key Vault 实例,该实例包含用于服务器端加密的客户管理的密钥。
在“Azure 混合权益”中:
- 如果你不想要应用 Azure 混合权益,请选择“否”。 然后,选择“下一步”。
- 如果你的 Windows Server 计算机享有有效软件保障或 Windows Server 订阅的权益,并且你想要将此权益应用到所要迁移的计算机,请选择“是”。 然后,选择“下一步”。
在“计算”中,查看 VM 名称、大小、OS 磁盘类型和可用性配置(如果在上一步中选定)。 VM 必须符合 Azure 要求。
- VM 大小:如果你正在使用评估建议,则 VM 大小下拉列表会显示建议大小。 否则,Azure Migrate and Modernize 会根据 Azure 订阅中最接近的匹配项选择大小。 或者,请在“Azure VM 大小”中的手动选择一个大小。
- OS 磁盘:为 VM 指定 OS(启动)磁盘。 OS 磁盘是包含操作系统引导加载程序和安装程序的磁盘。
- 可用性区域:指定要使用的可用性区域。
- 可用性集:指定要使用的可用性集。
在“磁盘”中,指定是否要将 VM 磁盘复制到 Azure,并选择 Azure 中的磁盘类型(标准 SSD/HDD 或高级托管磁盘)。 然后,选择“下一步”。
- 可以从复制中排除磁盘。
- 如果你排除了磁盘,则在迁移后它们将不会出现在 Azure VM 中。
在“标记”中,选择向虚拟机、磁盘和 NIC 添加标记。
在“检查并开始复制”中检查设置,然后选择“复制”启动服务器的初始复制。
注意
若要在复制开始前随时更新复制设置,请选择“管理”>“复制计算机”。 开始复制后无法更改设置。
跟踪和监视复制状态
- 选择“复制”会启动一个“开始复制”作业。
- “开始复制”作业成功完成后,VM 将开始初始复制到 Azure。
- 初始复制完成后,增量复制将会开始。 对 AWS VM 磁盘所做的增量更改会定期复制到 Azure 中的副本磁盘。
可以在门户通知中跟踪作业状态。
你可以通过选择“Azure Migrate: 服务器迁移”中的“复制服务器”来监视复制状态。
运行测试迁移
增量复制开始后,在开始以 Azure 为目标的完整迁移之前,可以针对 VM 运行完整迁移。 强烈建议执行测试迁移。 你可通过它在继续实际迁移之前发现潜在的问题并解决它们。 建议在迁移之前为每个 VM 至少执行一次此步骤。
- 运行测试迁移可检查迁移是否按预期进行而不影响 AWS VM,它们仍可保持正常运行并继续复制。
- 测试迁移通过使用复制的数据创建 Azure VM 来模拟迁移。 (测试通常会迁移到 Azure 订阅中的非生产虚拟网络。)
- 可以使用复制的测试 Azure VM 来验证迁移、执行应用测试,并解决完整迁移之前出现的任何问题。
若要执行测试迁移,请执行以下操作:
在“迁移目标”中,选择“Windows、Linux 和 SQL Server”>“Azure Migrate: 服务器迁移”>“测试已迁移的服务器”。
右键单击要测试的 VM,然后选择“测试迁移”。
在“测试迁移”中,选择 Azure VM 在迁移后所在的 Azure 虚拟网络。 建议使用非生产虚拟网络。
“测试迁移”作业随即启动。 在门户通知中监视该作业。
迁移完成后,在 Azure 门户上的“虚拟机”中查看已迁移的 Azure VM。 计算机名称带有 -Test 后缀。
测试完成后,在“复制计算机”中右键单击 Azure VM,然后选择“清除测试迁移”。
注意
现在可以使用 SQL VM RP 注册运行 SQL Server 的服务器,以利用自动修补、自动备份和使用 SQL IaaS 代理扩展简化的许可证管理。
- 选择“管理”>“复制服务器”>“包含 SQL Server 的计算机”>“计算和网络”,然后选择“是”,注册 SQL VM RP。
- 如果你的 SQL Server 实例享有有效软件保障或 SQL Server 订阅的权益,并且你需要将此权益应用到要迁移到的计算机,请选择“面向 SQL Server 的 Azure 混合权益”。
迁移 AWS VM
确认测试迁移按预期方式进行后,就可迁移 AWS VM。
在 Azure Migrate 项目中,选择“Windows、Linux 和 SQL Server”>“Azure Migrate: 服务器迁移”>“复制服务器”。
在“复制计算机”中,右键单击 VM 并选择“迁移”。
在“迁移”>“关闭虚拟机并执行计划迁移(不会丢失任何数据)”中,选择“是”>“确定”。
注意
迁移 AWS VM 时,不支持自动关闭。
随即会针对该 VM 启动一个迁移作业。 可选择门户页面右上角的通知铃铛图标来查看作业状态。 还可以转到 Azure Migrate 和服务器迁移工具的“作业”页面。 (在工具磁贴上选择“概述”,然后从左侧菜单中选择“作业”。)
该作业完成后,可以从“虚拟机”页查看和管理该 VM。
完成迁移
- 完成迁移后,右键单击 VM 并选择“停止迁移”。 此操作:
- 停止 AWS VM 的复制。
- 从“Azure Migrate: 服务器迁移”工具中的“复制服务器”计数中删除 AWS VM。
- 清除 VM 的复制状态信息。
- 验证并排查 Azure VM 上的所有 Windows 激活问题。
- 执行任何迁移后的应用调整,例如更新主机名、数据库连接字符串和 Web 服务器配置。
- 对 Azure 中当前运行的迁移应用程序执行最终的应用程序和迁移验收测试。
- 将流量交接到已迁移的 Azure VM 实例。
- 更新所有内部文档,以显示新的位置和 Azure VM 的 IP 地址。
迁移后的最佳做法
- 为增强恢复能力,请采取以下措施:
- 为提高安全性,请采取以下措施:
- 使用 Microsoft Defender for Cloud - 即时管理锁定和限制入站流量访问。
- 使用 Azure 更新管理器管理和治理 Windows 和 Linux 计算机上的更新。
- 使用网络安全组限制流入管理终结点的网络流量。
- 部署 Azure 磁盘加密以帮助保护磁盘,并保护数据以防被盗和未经授权的访问。
- 详细了解保护 IaaS 资源和 Microsoft Defender for Cloud。
- 对于监视和管理:
- 考虑部署 Microsoft 成本管理以监视资源使用率和支出。
故障排除和提示
问题:我在已发现的要迁移的服务器列表中看不到 AWS VM。
答: 请检查复制设备是否满足要求。 确保在要迁移的源 VM 上安装移动代理并注册配置服务器。 检查网络设置和防火墙规则,启用复制设备与源 AWS VM 之间的网络路径。
问题:如何知道我的 VM 是否已成功迁移?
答案:迁移后,你可从“虚拟机”页面查看和管理 VM。 连接到已迁移的 VM 进行验证。
问题:我无法从之前创建的服务器评估结果中导入 VM 进行迁移。
答案:目前,我们不支持为此工作流导入评估。 临时解决方法是,导出评估,然后在“启用复制”步骤期间手动选择 VM 建议。
问题:我在尝试发现我的 AWS VM 时收到“未能提取 BIOS GUID”错误。
答: 始终使用根登录进行身份验证,而不是使用任何伪用户。 另外,请查看 AWS VM 支持的操作系统。
问题:我的复制状态没有进展。
答: 请检查复制设备是否满足要求。 确保已在复制设备 TCP 端口 9443 和 HTTPS 443 上启用了所需端口以进行数据传输。 确保没有复制设备的陈旧重复版本连接到同一项目。
问题:我无法使用 Azure 迁移和现代化来发现 AWS 实例,原因是远程 Windows 管理服务出现 HTTP 状态代码 504。
答案:请确保满足 Azure Migrate 设备要求和 URL 访问需求。 确保没有代理设置阻止设备注册。
问题:在将 AWS VM 迁移到 Azure 之前是否需要进行任何更改?
答案:在将 EC2 VM 迁移到 Azure 之前,可能需要进行以下更改:
- 如果使用 cloud-init 进行 VM 预配,可以先在 VM 上禁用 cloud-init,再将其复制到 Azure。 由 cloud-init 在 VM 上执行的预配步骤可能特定于 AWS,将在迁移到 Azure 后失效。
- 如果 VM 是半虚拟化 (PV) VM 而不是硬件 VM,则可能无法按原样在 Azure 上运行它。 PV VM 在 AWS 中使用自定义启动序列。 在迁移到 Azure 之前,可以通过卸载 PV 驱动程序来克服此挑战。
- 始终建议在最终迁移之前运行测试迁移。
问题:是否可以迁移运行 Amazon Linux 操作系统的 AWS VM?
答案:由于只有 AWS 支持 Amazon Linux OS,因此无法按原样迁移运行 Amazon Linux 的 VM。
若要迁移在 Amazon Linux 上运行的工作负荷,可以在 Azure 中启动 CentOS/RHEL VM。 然后,你可以使用相关的工作负荷迁移方法迁移在 AWS Linux 计算机上运行的工作负荷。 例如,根据工作负荷,通过特定于工作负荷的工具来帮助迁移。 对于数据库,可以使用这些工具;对于 Web 服务器,则可以使用部署工具。
后续步骤
在 Azure 云采用框架中调查云迁移旅程。