分享方式:


處理將虛擬機器移至資源群組或訂用帳戶時的特殊案例

本文說明將虛擬機器移至新的資源群組或 Azure 訂用帳戶時需要額外步驟的特殊案例。 如果您的虛擬機器使用磁碟加密、Marketplace 方案或 Azure 備份,您必須使用本文所述的其中一項因應措施。 針對所有其他案例,使用 Azure 入口網站Azure CLIAzure PowerShell 的標準作業來移動虛擬機器。 針對 Azure CLI,請使用 az resource move 命令。 針對 Azure PowerShell,請使用 Move-AzResource 命令。

如果您想要將虛擬機器移至新區域,請參閱教學課程:跨區域移動 Azure VM

不支援的案例

尚未支援下列案例:

  • 具有標準 SKU Load Balancer 或標準 SKU 公用 IP 的虛擬機器擴展集無法移動。
  • 只有當虛擬網路及其所有相依的資源也移動時,現有虛擬網路中的虛擬機器才可移至新的訂閱。
  • 從 Marketplace 資源建立並具有附加方案的虛擬機器無法在資源群組或訂閱之間移動。 如需可能的因應措施,請參閱 具有 Marketplace 方案的虛擬機器
  • 低優先順序的虛擬機器和低優先順序的虛擬機器擴展集無法跨資源群組或訂閱移動。
  • 無法個別移動可用性設定組中的虛擬機器。
  • 使用排程修補的虛擬機器無法跨資源群組或訂用帳戶移動。 如需可能的因應措施,請參閱使用維護組態管理 VM 更新

Azure 磁碟加密

與金鑰保存庫整合以實作適用於 Linux VM 的 Azure 磁碟加密適用於 Windows VM 的 Azure 磁碟加密的虛擬機器,可以在解除配置狀態時移至另一個資源群組。

不過,若要將這類虛擬機器移至另一個訂用帳戶,您必須停用加密。

az vm encryption disable --resource-group demoRG --name myVm1 --volume-type all

具有 Marketplace 方案的虛擬機器

從 Marketplace 資源建立並具有附加方案的虛擬機器無法在資源群組或訂閱之間移動。 若要解決這項限制,您可以在目前的訂用帳戶中取消佈建虛擬機器,並在新的訂用帳戶中再次予以部署。 下列步驟可協助您重新建立新訂閱中的虛擬機器。 不過,這個方式可能無法適用於所有的案例。 如果 Marketplace 中已不再提供方案,則這些步驟將無法運作。

  1. 取得方案的相關資訊。

    az vm show --resource-group demoRG --name myVm1 --query plan
    
  2. 檢查供應項目是否仍存在於 Marketplace 中。

    az vm image list-skus --publisher Fabrikam --offer LinuxServer --location centralus
    
  3. 請將 OS 磁碟複製到目標訂閱,或在將來源訂閱的虛擬機器刪除後移動原始磁碟。

  4. 在目標訂閱中,接受您方案的 Marketplace 條款。 您可以執行下列 PowerShell 命令來接受這些條款:

    az vm image terms accept --publisher {publisher} --offer {product/offer} --plan {name/SKU}
    

    或者,您可以透過入口網站,建立包括方案的新虛擬機器執行個體。 您可以在接受新訂閱中的條款之後,刪除虛擬機器。

  5. 在目標訂閱中,使用 PowerShell、CLI 或 Azure Resource Manager 範本,從複製的 OS 磁碟重新建立虛擬機器。 包括附加至磁碟的 Marketplace 方案。 方案的相關資訊應該符合您在新訂閱中購買的方案。 如需詳細資訊,請參閱建立 VM

如需詳細資訊,請參閱 將 Marketplace Azure 虛擬機器移至另一個訂閱

具有 Azure 備份的虛擬機器

若要移動使用 Azure 備份設定的虛擬機器,您必須從保存庫中刪除還原點集合 (快照集)。 已複製到保存庫的還原點可以保留和移動。

如果您的虛擬機器已啟用虛刪除,則您無法在移動虛擬機器時保留這些還原點。 請在刪除還原點後停用虛刪除 或等候 14 天。

入口網站

  1. 暫時停止備份並保留備份資料。

  2. 若要移動使用 Azure 備份設定的虛擬機器,請使用下列因應措施:

    1. 尋找包含備份的資源群組。 如果您使用預設的資源群組,則會有下列命名模式:AzureBackupRG_<VM location>_1。 例如,名稱的格式為 AzureBackupRG_westus2_1

      如果您已建立自訂資源群組,請選取該資源群組。 如果您找不到資源群組,請在入口網站中搜尋「還原點集合」。 尋找具有命名模式 AzureBackup_<VM name>_########### 的集合。

    2. 選取類型為「還原點集合」 且具有命名模式 AzureBackup_<VM name>_########### 的資源。

    3. 刪除此資源。 此作業只會刪除立即復原點,而不會刪除保存庫中備份的資料。

    4. 刪除作業完成之後,您就可以移動虛擬機器。

  3. 將 VM 移至目標資源群組。

  4. 重新設定備份。

指令碼

  1. 尋找包含備份的資源群組。 如果您使用預設的資源群組,則會有下列命名模式:AzureBackupRG_<VM location>_1。 例如,名稱的格式為 AzureBackupRG_westus2_1

    如果您已建立自訂資源群組,請尋找該資源群組。 如果您找不到資源群組,請使用下列命令,並提供虛擬機器的名稱。

    az resource list --resource-type Microsoft.Compute/restorePointCollections --query "[?starts_with(name, 'AzureBackup_<vm-name>')].resourceGroup"
    
  2. 如果您只移動一部虛擬機器,請取得該虛擬機器的還原點集合。

    RESTOREPOINTCOL=$(az resource list -g AzureBackupRG_<VM location>_1 --resource-type Microsoft.Compute/restorePointCollections --query "[?starts_with(name, 'AzureBackup_<VM name>')].id" --output tsv)
    

    刪除此資源。 此作業只會刪除立即復原點,而不會刪除保存庫中備份的資料。

    az resource delete --ids $RESTOREPOINTCOL
    
  3. 如果您要移動在此位置中具有備份的所有虛擬機器,請取得這些虛擬機器的還原點集合。

    RESTOREPOINTCOL=$(az resource list -g AzureBackupRG_<VM location>_1 --resource-type Microsoft.Compute/restorePointCollections)
    

    刪除每個資源。 此作業只會刪除立即復原點,而不會刪除保存庫中備份的資料。

    az resource delete --ids $RESTOREPOINTCOL
    

下一步