158

我在玩 Windows Azure 持久虚拟机。最后,我删除了虚拟机(成功)并尝试删除关联的存储帐户。

删除存储帐户的请求失败。

在预览门户 (manage.windowsazure.com) 上,当我删除存储帐户时出现此错误:

Failed to delete Storage account 'portalvhdscwtwycpsxxxxx'

Details:

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

在以前的门户网站 (windows.azure.com) 上,我收到此错误:

Submit Failed

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

尝试在 Azure 存储资源管理器上删除 blob 本身(30GB VHD)我收到此错误:

There is currently a lease on the blob and no lease ID was specified in the request.

所以我的评估是这个 blob 是租用的(由以前的,现在删除的虚拟机租用),除非我能得到这个租用 ID,否则我不能删除它。

问题是:如何删除此 blob 以及存储帐户?

4

10 回答 10

334
于 2012-06-10T13:17:14.653 回答
17

不幸的是,费尔南多的回答对我不起作用,因为存储是“孤立的”,因为我在删除存储之前删除了它的虚拟机。我找不到从门户网站执行此操作的方法,因此我安装了azure-cli,并在身份验证后运行以下命令:

azure storage account delete <my-account>

这失败了,并且错误消息包含罪魁祸首的名称,例如:

error: Storage account <my-account> has some active image(s) and/or disk(s), e.g. <my-image>. Ensure these image(s) and/or disk(s) are removed before deleting this storage

然后我删除了有问题的图像

azure vm disk delete <my-image>

并再次尝试删除存储,这次成功。

azure storage account delete <my-account>

于 2015-12-14T13:34:46.133 回答
12

不幸的是,在某些情况下,VM 已被删除,但 Disks 显示附加到 blob(30GB VHD)的 VM 排除了删除。此外,在使用 Azure 存储资源管理器的情况下,您会发现无法删除的 orfan 但已租用的 VHD blob,并且预览门户上没有参考。

于 2012-06-11T01:19:43.970 回答
8

转到虚拟机,然后单击光盘。标记光盘并选择底部的删除光盘。您现在可以选择是否要保留或删除相应的 vhd。

重要的是首先通过虚拟机删除磁盘而不是通过存储删除。

于 2012-11-29T07:50:45.203 回答
5

您可以使用Iaas Management Studio:中断租约,删除 blob,然后删除孤立的图像。

于 2013-12-08T12:46:39.380 回答
5

就我而言,由于 vmimages 无法删除存储。

使用 power shell 命令

获取azurevmimage | Where-Object -Property Category -in -Value "user"

列出所有图像要删除所有您的图像,请使用以下脚本:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
于 2014-11-17T19:01:33.040 回答
4
于 2013-01-14T13:13:56.150 回答
0

在删除您的存储帐户之前进行检查;您创建的每个存储帐户都必须有关联的虚拟机、磁盘和映像。转到 Azure 门户

在左侧窗格中选择虚拟机选项卡单击实例映像和磁盘

请注意,单个虚拟机的附加磁盘显示在磁盘区域。在删除虚拟机之前,首先删除关联的磁盘,然后删除具有磁盘的虚拟机。然后最后删除存储帐户。如果与您要删除的帐户相关联,还请注意同一左侧窗格中的网络。

在新更新的 Azure 门户中,许多上述配置页面都已更改。您可以在“所有资源”窗格中看到图像和磁盘选项。在较新版本的 Azure 门户中,您可以在其相邻的垂直窗格中轻松识别 VM 及其关联的磁盘及其存储帐户,所有这些都在一个页面中具有不同的图标图像。

于 2016-02-09T06:25:12.557 回答
0

有时我们通过新门户删除 azure 存储帐户,但我们无法删除它并收到此错误:“无法删除存储帐户'jason1disks796'。错误:无法删除存储帐户,因为其工件正在使用中。“</p>

我们可以使用 PowerShell 列出存储帐户(ARM 模块)的所有 VHD blob:

PS > Login-AzureRmAccount
PS > $RGName = "jason1"
PS > $SAName = "jason1disks796"
PS > $ConName = "vhds"
PS > $TempObj = New-Object -TypeName PSCustomObject
PS > $TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
PS > $TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
PS > $Keylist = Get-AzureRmStorageAccountKey -ResourceGroupName $RGName -StorageAccountName $SAName
PS > $Key = $Keylist[0].Value
PS > $Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
PS > Get-AzureStorageContainer -Context $ctx
CloudBlobContainer : Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer
Permission         : Microsoft.WindowsAzure.Storage.Blob.BlobContainerPermissions
PublicAccess       : Off
LastModified       : 1/19/2017 1:27:21 AM +00:00
ContinuationToken  :
Context            : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
Name               : vhds
PS > $List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
PS > $List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }

BlobName              LeaseState
--------              ----------
SQL20170119092405.vhd     Leased

PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureRmStorageAccount -ResourceGroupName $RGname -Name $SAName

如果您的存储帐户在ASM 模块中,您可以使用此脚本删除存储帐户:

Add-AzureAccount
$SAName = "jason1161"
$ConName = "vhds"
$TempObj = New-Object -TypeName PSCustomObject
$TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
$TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
$Keylist = Get-AzureStorageKey -StorageAccountName $SAName
$Key = $Keylist.primary
$Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
$List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
$List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }
PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureStorageAccount -Name $SAName

另外还有一种情况,当我们使用portal删除存储账户时,这个存储账户中没有容器或者blob(一个空的存储账户,我们无法通过PowerShell或者portal找到这个存储账户中的blob或者container) ,以及错误消息“无法删除存储帐户 'jason1disks796'。错误:无法删除存储帐户,因为其工件正在使用中”。在这种情况下,我们可以创建一个新 VM 并将存储帐户指定给有问题的存储帐户,然后再次将其删除。

于 2017-01-19T08:51:15.383 回答
0

对于那些依赖 GUI 管理 Azure 并且不知道使用 PowerShell 或执行其他答案的人,您现在可以在尝试删除存储时通过选中“删除未附加的图像”来删除卡住的存储帐户。

它会自动删除存储而没有太多麻烦。

于 2019-05-07T02:00:55.070 回答