在迁移期间维护静态 IP 地址(预览版)

适用于:Azure Local 2311.2 及更高版本

本文介绍如何使用 Azure Migrate 在虚拟机(VM)迁移到 Azure 本地期间保留静态 IP 地址。 它提供有关在 Windows 和 Linux VM 上运行静态 IP 迁移脚本的详细说明。

关于静态 IP 迁移包

对于 Windows VM,本文支持 Windows Server 2012 R2 及更高版本中的来宾操作系统。 对于 Linux VM,它支持 Ubuntu、Red Hat Enterprise Linux、CentOS 和 Debian 分发版。

下载 静态 IP 迁移包 (.zip 格式)。 .zip 文件包括适用于 Windows 和 Linux VM 的不同脚本。

适用于 Windows 的以下脚本包括:

  • Prepare-MigratedVM.ps1 – 使用 -StaticIPMigration cmdlet 运行 Initialize-StaticIPMigration.ps1 脚本,为静态 IP 迁移准备 VM。

    日志会自动在脚本的目录中创建。

  • Initialize-StaticIPMigration.ps1 - 将 VM 网络接口信息收集到配置文件(本地目录中InterfaceConfigurations.json),并设置计划的任务来运行 Set-StaticIPConfiguration.ps1 脚本。

  • Set-StaticIPConfiguration.ps1 - 在 VM 启动时运行,应用生成的网络接口配置文件。

  • Utilities.psm1 - 此脚本包含脚本的帮助程序函数。

先决条件

在开始之前,请准备用于 IP 迁移的源环境和目标环境。

准备源 VM 进行 IP 迁移

若要从源系统(Hyper-V 或 VMware)迁移具有静态 IP 的 Windows VM,请确保满足以下要求。

  • 确保虚拟机在整个复制过程和计划内故障转移(迁移)期间保持开机。

  • 对于 VMware VM,请确保安装 VMware 工具

  • 对于 Hyper-V 虚拟机,请确保安装 Hyper-V Integration Services。 有关详细信息,请参阅管理 Hyper-V Integration Services

  • 确保准备脚本由具有管理员权限的帐户在源 VM 上运行,以创建计划的任务。

准备目标 Azure Local 实例和逻辑网络

在目标 Azure 本地实例上,预配静态 Azure Arc 逻辑网络以支持迁移。 此设置需要定义以下内容:

  • IP 地址空间
  • 网关地址
  • DNS 服务器
  • IP 池范围(可选)

有关创建和配置静态或动态 Azure Arc 逻辑网络的详细指南,请参阅 为 Azure 本地创建逻辑网络。

确保计划迁移的静态 IP 地址在静态逻辑网络中可用,而不分配给另一个 VM。 如果 IP 地址已在使用中,迁移将失败并出现错误: 该地址已在使用中。 若要避免这种情况:

  1. 转到目标静态逻辑网络。
  2. 检查正在使用的 IP 地址。
  3. 删除分配给要迁移的静态 IP 的任何 NIC。

“已连接设备”页的屏幕截图。

(可选)准备使用组策略大规模部署 IP 迁移

若要使用此方法,需要域管理员权限和对组策略编辑器的访问权限。 此外,必须满足以下条件之一:

  • 源 VM 必须具有 Internet 访问权限,才能将静态 IP 迁移包直接下载到其本地文件系统。

  • 源 VM 必须具有对托管静态 IP 迁移包的远程文件共享的只读访问权限,该包必须事先准备并下载到远程共享。

设置 IP 迁移

按照以下步骤设置 IP 迁移。 Windows 和 Linux VM 的步骤不同。

对于 Windows VM,可以手动或使用组策略设置 IP 迁移。

手动设置 IP 迁移

若要手动为 Windows VM 设置 IP 迁移,请执行以下作:

  1. 下载 .zip 文件,并将静态 IP 迁移包内容安装到 VM 上的本地文件夹中。

  2. 以管理员身份打开 PowerShell,并使用以下命令运行 Prepare-MigratedVM.ps1 脚本:

    .\Prepare-MigratedVM.ps1 -StaticIPMigration  
    
  3. 在 Azure 门户中,创建迁移项目、触发发现并复制 VM。 有关详细信息,请参阅 创建 Azure Migrate 项目

  4. 选择要迁移的 VM 之前,请使用复制向导为源 VM 上的每个网络接口分配和配置正确的逻辑网络。

  5. 在 "复制"、"> 常规"、"> 计算和网络" 的 部分中,选择 VM。 在此选项卡上,确保网络接口分配给正确的逻辑网络。 DHCP 网络接口分配给动态逻辑网络,静态网络接口分配给静态逻辑网络。

    “计算和网络”页的屏幕截图。

    未能将网络接口正确分配给其相应的逻辑网络会导致 Azure 本地和 Azure 门户中显示的 IP 地址信息不正确。

  6. 迁移 视图中,在 关闭虚拟机下,选择 “是”,关闭虚拟机(确保不会丢失数据)

    “关闭 VM”面板的屏幕截图。

  7. 迁移 VM 后,请检查已迁移的 VM,验证是否已迁移静态 IP 设置。

使用组策略设置 IP 迁移

按照以下步骤使用组策略在已加入域的 VM 上大规模设置静态 IP 迁移。

  • 查看使用组策略列出的静态 IP 迁移的先决条件。

创建组策略对象

  1. 打开 Active Directory(AD)环境的组策略管理控制台。

  2. 在 AD 林中,导航到包含要使用保留的静态 IP 进行迁移的 VM 的位置。

  3. 右键单击并选择 在此域上创建 GPO,并在此处链接

  4. 出现提示时,请将描述性名称分配给此组策略对象(GPO):

    GPO 菜单项的屏幕截图。

  5. 编辑 GPO:

    1. 右键单击新创建的 GPO,然后选择 编辑

    2. 在组策略管理编辑器中,转到 计算机配置 > 首选项 > 控制面板设置 > 计划任务

  6. 右键单击 计划任务 下的空白区域,然后选择 “新建 > 即时任务”(至少 Windows 7)

定义计划任务

  1. 选择“新建”>“即时任务”。 当计划任务向导打开时,按如下所示配置每个选项卡:

  2. 在“常规”选项卡上的“操作”下,选择 “创建”,然后输入任务的描述性名称。

  3. 安全选项下,选择以下设置:

    1. 运行任务时,请使用以下用户帐户 NT AUTHORITY\SYSTEM

    2. 选择“不管用户是否登录都要运行”

    3. 选择 以最高权限运行

  4. 在“为配置 ”下,选择 Windows Vista 或 Windows Server 2008 用于配置:

    IP 迁移属性对话框的屏幕截图。

  5. 在“操作”选项卡上,选择“新建”,此按钮位于“操作”选项卡下。

  6. 操作下,选择 启动程序

  7. 设置下:

    1. 运行 程序/脚本:键入 powershell.exe

    2. 如果 VM 可以访问 .zip 文件的下载链接,请添加以下参数,替换括号中的参数:

      -ExecutionPolicy Bypass -Command "Invoke-WebRequest -Uri [download link] -OutFile [path to static IP migration package] ; Expand-Archive Path [path to static IP migration package] -DestinationPath C:\StaticIp ; & C:\StaticIp\Prepare-MigratedVM.ps1 -StaticIPMigration
      ```   
      
    3. (备用)如果有托管 .zip 文件的远程共享,请添加以下参数,替换括号中的参数:

    -ExecutionPolicy Bypass -Command "Copy-Item -Path [ZIP file path in remote share] -Destination [path to static IP migration package] -Force ; Expand-Archive -Path [path to static IP migration package] DestinationPath C:\StaticIp ; & C:\StaticIp\Prepare-MigratedVM.ps1 -StaticIPMigration
    
  8. 选择操作、程序/脚本、添加可选自变量以及可选的“开始于”信息,如下所示:

    操作页的屏幕截图。

  9. 选择 确定 以完成计划的任务配置。

应用组策略对象

  1. 将 GPO 链接到所需的组织单位(OU):

    1. 如果 GPO 尚未链接,请在组策略管理控制台中右键单击所需的 OU,然后选择“ 链接现有 GPO”。

    2. 选择创建的 GPO。

  2. 等待复制完成。 10-20 分钟后,组策略对象将复制到相应的域控制器。 还可以通过在特定 VM 上的 PowerShell 中运行 gpupdate cmdlet 来强制策略更新。

  3. 验证更改:

    1. 检查 VM 以确认已在上的 C:\StaticIp\IpConfigurations.js下创建了接口配置文件。

    2. 确保已创建名为 Set-StaticIpConfiguration 的计划任务,以便在重启时运行。

已知限制

以下是迁移静态 IP 地址时的已知限制和显示问题:

设备管理器中的旧网络适配器信息

迁移后,设备管理器仍可能会显示迁移前的旧网络适配器信息。 虽然这不会影响迁移后创建的新网络适配器,并且不会导致 IP 冲突,但脚本当前不会删除此旧注册,因此它仍然可见。

单个网络适配器上的多个 IP 地址

如果源 VM 有多个静态 IP 地址分配给单个网络适配器,则会在迁移的 VM 上正确分配这些 IP 地址。 但是,Azure Local 中由 Azure Arc 启用的 Azure 本地 VM 在 Azure 门户中仅显示每个网络适配器的一个 IP 地址。 这是 Azure 本地门户中的已知显示问题,不会影响已迁移 VM 上 IP 地址的实际功能。

多个网络适配器和类型

如果源 VM 具有多个混合 DHCP 和静态配置的网络适配器,则迁移的 VM 将保留静态网络适配器上的网络适配器、网络适配器类型和静态 IP 地址的正确数量。 但是,迁移的 VM 的 Azure 本地门户视图可能会错误地在网络适配器上显示重复或不准确的 IP。 这是 Azure 本地门户中的已知显示问题,不会影响已迁移 VM 上的 IP 地址的功能。 请参阅以下包含 DHCP 网络适配器和静态网络适配器的已迁移 VM 的示例。

网络适配器的屏幕截图。

不支持 IPv6 静态 IP 地址

Azure 本地 VM 目前仅支持 IPv4 地址。 不会迁移配置 IPv6 地址的 NIC,因为不支持 IPv6。

日志

使用 Prepare-MigratedVM.ps1prepare_migrated_vm.sh 脚本为 VM 配置静态 IP 迁移时,日志会自动在脚本的目录中创建。

后续步骤