归档 Azure VM 的最佳方式?

问题描述 投票:0回答:2

我想要存档 Azure VM。它目前已被解除分配,因此我们不会产生计算费用,但我们仍然需要为存储付费,即使它不在线。我们希望将存储移动到 BLOB 存储,因为它更便宜,因为我们不想丢失数据,但也不想支付额外费用让它闲置。

我尝试创建一个映像,然后删除了虚拟机实例,但保持磁盘完好无损,没有引用它们。

归档虚拟机的最佳方式是什么?

azure azure-virtual-machine
2个回答
2
投票

如果您的磁盘已被管理,您可以采取以下步骤。 现在,Azure 可以让您轻松更改您的托管磁盘类型。

步骤:转到Azure门户>停止(解除分配)您的VM>转到您的磁盘>帐户类型>选择标准(HDD)>单击保存

然后你的磁盘就更新成功了!

删除虚拟机后,您还可以使用磁盘从磁盘创建虚拟机。此外,您还可以为磁盘生成 URI,以将其复制到另一个存储帐户或将其导出。 如果您的磁盘不受管理,您无法将磁盘从高级版直接转换为标准版。您需要创建一个新的存储帐户(或使用现有的存储帐户)并将包含磁盘的 blob 从高级帐户复制到标准帐户。最好的方法是您可以使用 Azcopy 来执行此操作。


0
投票

这来得很晚,但我只是在解决这个问题。该解决方案目前由 Azure 自己记录,尽管搜索起来非常困难:

使用 Azure CLI 将托管磁盘导出/复制到存储帐户

以防链接将来失效,以下是此页面的关键信息:

此脚本将托管磁盘的基础 VHD 导出到相同或不同区域的存储帐户。它首先生成托管磁盘的 SAS URI,然后使用它将 VHD 复制到存储帐户。

启动 Azure Cloud Shell

登录 Azure

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

运行脚本

#Provide the subscription Id where managed disk is created
subscriptionId="<subscriptionId>"

#Provide the name of your resource group where managed disk is created
resourceGroupName=myResourceGroupName

#Provide the managed disk name 
diskName=myDiskName

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600

#Provide storage account name where you want to copy the underlying VHD file of the managed disk. 
storageAccountName=mystorageaccountname

#Name of the storage container where the downloaded VHD will be stored
storageContainerName=mystoragecontainername

#Provide the key of the storage account where you want to copy the VHD 
storageAccountKey=mystorageaccountkey

#Provide the name of the destination VHD file to which the VHD of the managed disk will be copied.
destinationVHDFileName=myvhdfilename.vhd

az account set --subscription $subscriptionId

sas=$(az disk grant-access --resource-group $resourceGroupName --name $diskName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)

az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas

清理资源

az group delete --name myResourceGroupName
© www.soinside.com 2019 - 2024. All rights reserved.