將 Azure VM 的數據磁碟從高級儲存帳戶遷移到標準
我有一個 Ubuntu 虛擬機,在高級儲存帳戶上安裝了一個單獨的數據磁碟。數據磁碟非常大,因此花費的成本超出了我的預期。我已嘗試根據此處的說明複製 VHD ,但操作立即完成,並且根據 Powershell 生成的 VHD 大小為 0 或 -1(但是 Azure 門戶顯示了正確的大小)。無論如何,我分離了高級磁碟並將標準磁碟安裝在它的位置。這很糟糕,導致初始錯誤消息 -512 字節的磁碟大小無效,隨後的錯誤消息為
無法將現有磁碟“datadrive”附加/分離到虛擬機“myservername”。錯誤:保存帶有 URI 的 blob 的儲存容器上已有租約
其中“附加/分離”取決於我正在執行的操作。我嘗試刪除新的標準儲存帳戶並從頭開始該過程,但仍然沒有運氣。最終,我重新附加了高級帳戶上的現有磁碟,並且能夠再次成功啟動機器,但嘗試遷移到標準儲存帳戶卻是一個悲慘的失敗。
是否可以將數據磁碟從高級儲存帳戶遷移到標準儲存帳戶?如果是這樣,步驟是什麼?
Noor 回答說不支持從高級版遷移到標準版,我不得不採取不同的更高級別的路線。最終我不得不創建並附加一個新磁碟,將現有磁碟的文件複製到新磁碟,然後刪除+刪除原始磁碟。以下是步驟:
- 在標準儲存帳戶上創建一個新磁碟並將其附加到 VM。這是目標磁碟。
- 格式化新磁碟並將其掛載到 VM
- 停止所有可以修改源磁碟(即高級儲存帳戶上的原始磁碟)上文件的程序。在我的情況下,只有 Postgres 正在使用這個磁碟,
sudo pkill -u postgres
這個技巧也是如此。- 使用 . 將所有文件從源磁碟複製到目標磁碟
cp -a /source/. /destination/
。- 解除安裝源驅動器並刪除其 fstab 條目。
- 解除安裝目標驅動器並將其安裝點從 /destination 更改為 /source
- 使用更新的掛載點重新掛載目標驅動器,啟動相應的服務並進行測試。
- 一旦您對一切正常感到滿意,您就可以從高級儲存帳戶中刪除 vhd。
可以在此處和此處找到有關從 Azure Linux VM 添加和刪除磁碟的其他幫助。雖然一個連結用於資源管理器,另一個用於經典資源模型,但您可以通過 Azure 門戶處理創建和刪除 vhd,Linux 命令仍然代表任一模型。
無法從 Premium 降級到 Standard。
從 P30/P20 縮小到更小的尺寸也不可用。
高級磁碟只能附加到支持高級儲存的 VM。
您唯一的解決方案是創建另一個具有標準儲存的虛擬機並通過網路複製您的文件,如果您有數據庫或集群等數據,那就真的很痛苦。
如果您擁有 P30 高級儲存磁碟的真正原因是因為那些 ARM 模板喜歡為 1 MB 數據庫這樣愚蠢的東西創建 1000 GB 磁碟,那麼請嘗試在部署模板之前對其進行修改。