你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Linux 虚拟机从非托管磁盘迁移到托管磁盘

适用于:✔️ Linux VM

如果有使用非托管磁盘的现有 Linux 虚拟机 (VM),可以迁移这些 VM 以使用 Azure 托管磁盘。 此过程会同时转换 OS 磁盘和任何附加的数据磁盘。

本文介绍如何使用 Azure CLI 迁移 VM。 如果需要安装或升级它,请参阅安装 Azure CLI

准备阶段

  • 该迁移将重启 VM,因此请在预先存在的维护时段内规划 VM 迁移。

  • 该迁移不可逆。

  • 任何具有虚拟机参与者角色的用户将不能更改 VM 大小(因为它们可以预迁移)。 这是因为包含托管磁盘的 VM 要求用户对 OS 磁盘具有 Microsoft.Compute/disks/write 权限。

  • 请务必测试迁移。 在生产环境中执行迁移之前迁移测试性虚拟机。

  • 在迁移过程中,将解除分配 VM。 迁移完成后,VM 在启动时会接收新的 IP 地址。 如果需要,可向 VM 分配静态 IP 地址

  • 查看 Azure VM 代理支持迁移过程所需的最低版本。 有关如何检查和更新代理版本的信息,请参阅 Azure 中 VM 代理的最低版本支持

  • 不会删除在迁移之前由 VM 使用的原始 VHD 和存储帐户。 它们会继续产生费用。 若要避免这些项目产生的费用,请在验证迁移已完成后删除原始的 VHD Blob。 如果需要找到这些未附加的磁盘以删除它们,请参阅我们的文章查找并删除未附加的 Azure 托管和非托管磁盘

迁移单实例 VM

本部分介绍如何将单实例 Azure VM 从非托管磁盘迁移到托管磁盘。 (如果 VM 位于可用性集中,请参阅下一部分。)可通过此过程,将 VM 从高级 (SSD) 非托管磁盘迁移到高级托管磁盘,或从标准 (HDD) 非托管磁盘迁移到标准托管磁盘。

  1. 使用 az vm deallocate 解除分配 VM。 以下示例在名为 myResourceGroup 的资源组中解除分配名为 myVM 的 VM:

    az vm deallocate --resource-group myResourceGroup --name myVM
    
  2. 使用 az vm convert 将 VM 迁移到托管磁盘。 以下过程转换名为 myVM 的 VM,包括 OS 磁盘和任何数据磁盘:

    az vm convert --resource-group myResourceGroup --name myVM
    
  3. 使用 az vm start 在迁移到托管磁盘后启动 VM。 以下示例启动名为 myResourceGroup 的资源组中名为 myVM 的 VM。

    az vm start --resource-group myResourceGroup --name myVM
    

迁移可用性集中的 VM

如果要迁移到托管磁盘的 VM 位于可用性集中,则需要先将可用性集迁移到托管可用性集。

可用性集中的所有 VM 都必须在迁移可用性集之前解除分配。 可用性集转换为托管可用性集后,计划将所有 VM 迁移到托管磁盘。 然后,启动所有 VM,并继续照常操作。

  1. 使用 az vm availability-set list 列出可用性集中的所有 VM。 以下示例列出了名为 myResourceGroup 的资源组中名为 myAvailabilitySet 的可用性集中的所有 VM:

    az vm availability-set show \
        --resource-group myResourceGroup \
        --name myAvailabilitySet \
        --query [virtualMachines[*].id] \
        --output table
    
  2. 使用 az vm deallocate 解除分配所有 VM。 以下示例在名为 myResourceGroup 的资源组中解除分配名为 myVM 的 VM:

    az vm deallocate --resource-group myResourceGroup --name myVM
    
  3. 使用 az vm availability-set convert 迁移可用性集。 以下示例转换名为 myResourceGroup 的资源组中名为 myAvailabilitySet 的可用性集:

    az vm availability-set convert \
        --resource-group myResourceGroup \
        --name myAvailabilitySet
    
  4. 使用 az vm convert 将所有 VM 迁移到托管磁盘。 以下过程转换名为 myVM 的 VM,包括 OS 磁盘和任何数据磁盘:

    az vm convert --resource-group myResourceGroup --name myVM
    
  5. 使用 az vm start 在迁移到托管磁盘后启动所有 VM。 以下示例在名为 myResourceGroup 的资源组中启动名为 myVM 的 VM:

    az vm start --resource-group myResourceGroup --name myVM
    

使用 Azure 门户进行迁移

还可以使用 Azure 门户将非托管磁盘迁移到托管磁盘。

  1. 登录到 Azure 门户
  2. 从门户的 VM 列表中选择 VM。
  3. 在 VM 的边栏选项卡中,从菜单中选择“磁盘”。
  4. 在“磁盘”边栏选项卡的顶部,选择“迁移到托管磁盘”。
  5. 如果 VM 位于可用性集中,则“迁移到托管磁盘”边栏选项卡上会出现“首先需要迁移可用性集”的警告。 此警告应该有一个链接,单击该链接即可迁移可用性集。 转换可用性集后,或者如果 VM 不在可用性集中,请单击“迁移”以启动将磁盘迁移到托管磁盘的过程。

VM 将会停止并在完成迁移后重新启动。

后续步骤

有关存储选项的详细信息,请参阅 Azure 托管磁盘概述