轉換傳統儲存體帳戶到 ARM 儲存體

  • 95
  • 0
  • 2021-03-21

微軟 Azure 會逐漸不支援傳統部屬模型的資源,因此在實務上會需要將傳統的儲存體轉換為 ARM 部屬模型的儲存體,本文即是介紹如何透過 PowerShell 來轉換儲存體帳戶部屬類型。

前言

微軟 Azure 會逐漸不支援傳統部屬模型的資源,因此在實務上會需要將傳統的儲存體轉換為 ARM 部屬模型的儲存體,本文即是介紹如何透過 PowerShell 來轉換儲存體帳戶部屬類型。

實做

登入 Azure 帳號

Login-AzureRmAccount

列出帳號底下訂閱

Get-AzureRMSubscription | Sort SubscriptionName

選擇轉移後放 ARM 儲存體的訂閱

這邊選擇的是之後 ARM 儲存體存放的訂閱,並非是傳統儲存體的訂閱

因為我帳號底下管理的多組訂閱,這邊選擇了前面圖片顯示的訂閱,選擇時候可以用名稱或是訂閱編號來選擇

訂閱名稱

$subscr="<subscription name>"
Get-AzureRmSubscription –SubscriptionName $subscr | Select-AzureRmSubscription

訂閱編號

$sourceSubscriptionId = "<Subscription Id>"
Select-AzureRmSubscription -SubscriptionId $sourceSubscriptionId

確認選擇完的是包含傳統儲存體的訂閱

註冊搬遷提供者

註冊為一次性,每次進行搬遷轉換前都會需要註冊
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

確認註冊狀態是 Registered ,有時候需要一點時間,可以執行下列語法確認狀態

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

新增傳統儲存體 Azure 帳號

Add-AzureAccount

就算是同一個訂閱也要進行此步驟,若新增完之後訂閱不一樣,請參考前面選擇訂閱的語法選擇正確的訂閱

到此為止已準備好兩個(或是同一個)訂閱分別是未來放 ARM 儲存體和傳統儲存體的訂閱。

預備儲存體

$storageAccountName = "<Storage Account Name>"
Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName

這邊會需要一點時間等語法執行完畢,確認出現以下畫面才是成功準備好儲存體

這時後會建立一個新的資源群組(會是原本資源組名加上 -Migrated 後綴),裡面有一個預備好的 ARM 儲存體帳戶

這時後會發現會有兩個同樣名稱的儲存體帳戶

提交或中止搬移

請確實檢查新建立的 ARM 儲存體帳戶裡面的容器和檔案是否正確和完整,否則提交之後傳統儲存體會被刪除,檔案也會被刪除。

提交

Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName

取消

Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName

這邊不管是提交或是取消都會需要一點時間等待,請耐心等待。

成功之後就完成轉換和搬遷的操作了。

傳統儲存體會在完成後備刪除,有時候會需要一點時間,可以多等一下,不需要手動去刪除

另外提醒的一點是轉移所建立的儲存體帳戶預設的複寫會是 RA-GRS ,這是會花比較多錢的複寫方式,如果不需要這樣等級的複寫方式記得要去調整。

結論

在某些情境或是客戶的考量有可能會希望還是使用傳統儲存體,但是微軟針對傳統部屬的資源會逐漸的不支援,比較新的功能也會只有在 ARM 部屬的資源上,所以可以的話還是會建議逐漸將資源轉換為 ARM 類型,避免微軟完全不支援傳統部屬資源的時候措手不及。

另外在某些情境底下可能訂閱(CSP 訂閱)只支援 ARM 模型,這時候需要進行搬遷的時候就會需要轉換才可以將資源搬遷到該類型訂閱。

參考資料

  1. Azure Resource Manager vs. 傳統部署
  2. 平台支援的從傳統移轉至 Azure Resource Manager 的技術深入探討
  3. 使用 Azure PowerShell 將 IaaS 資源從傳統移轉至 Azure Resource Manager
  4. Migrate Azure Storage Account from Classic to Azure Resource Manager (ARM)