如何删除包含租用Blob的Azure存储帐户?


155

我正在使用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 Storage Explorer上删除Blob本身(30GB VHD),出现以下错误:

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

因此,我的评估是,此Blob是由先前已删除的虚拟机租用的,除非获得此租约ID,否则我将无法删除它。

问题是:如何删除该Blob,并因此删除存储帐户?

Answers:


332

解决方案的关键是该消息,指示容器具有活动的磁盘工件,并建议将其从存储库中删除。

从blob存储库中删除磁盘映像的过程是:

之后,可以删除存储帐户。

笔记:

  • 即使您已经删除了所有虚拟机,并且显示为0,该方法仍然适用。在“磁盘”选项卡下仍然会出现伪像。
  • 磁盘是从已删除的VM异步分离的,删除VM可能​​需要几分钟,此字段才能清除。

另请参阅:无法删除VHD,“当前Blob上存在租约……”


重要说明:删除按钮不适用于IE9。我无法通过IE来执行此操作,但是使用Chrome浏览器就没有问题。
保罗·基斯特

@PaulKeister在Firefox 17.0.1上也是错误的。我不得不尝试几次。
贾斯汀·斯基尔斯

除了@DavideIcardi的评论:在MSDN论坛上的该线程上,还解释了Blob租约是异步释放的,此操作最多可以持续2个小时。
edymtt

1
我必须转到旧门户>存储>从列表中选择存储帐户>单击顶部的“容器”选项卡>单击vhds>选择要删除的Blob。现在,您可以删除存储帐户。
chdev77 '16

1
同上@ chdev77。我还必须去旧的门户网站才能显示磁盘。哇,真令人讨厌!
harristrader

16

不幸的是,费尔南多的答案对我不起作用,因为存储是“孤立的”,因为在删除存储之前我先删除了它的虚拟机。我找不到从门户网站执行此操作的方法,因此我安装了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>


2
有完全相同的问题。我有一堆孤立的磁盘和映像,您无法在门户中删除它们。如果我四个月前才找到答案!
詹姆斯·威尔逊

12

不幸的是,有一种情况是删除了VM,但“磁盘”显示该VM附加到Blob(30GB VHD),排除了删除。另外,在使用Azure Storage Explorer的情况下,您会发现一个无法删除的orfan但租用的VHD blob,并且在Preview Portal上没有引用。


3
他的回答在所有情况下都不正确。我目前在“虚拟机->磁盘”部分列出了三(3)个“磁盘”,这些磁盘无法删除(因此无法删除Blob)。我不知道如何摆脱它们,因为我知道的当前唯一方法是使用门户。 kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
杰森(Jason)

如@Jason所指出的,如果您已经删除了相应的虚拟机,那么您将无法删除该磁盘。根据我的经验,这似乎只是一个时间问题。尝试等待几分钟,您应该可以将其删除。
Davide Icardi

4
我已经等待了3个月...我应该继续等待计时问题吗?
达威西

您可以在“浏览”(在新门户中)下找到VHD磁盘映像
Stan Bashtavenko

8

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

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


1
我认为你们中的许多人都有RTFM,而不是问题。这些是孤立的租用锁定vhd ...我有同样的问题,在Azure上我什么都没有,但是有两个VHD,并且在租用和锁定时它们不会删除(这是一个错误,因为没有东西可以租借给他们)
达威西


5

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

使用电源外壳命令

get-azurevmimage | Where-Object -Property类别-in -Value“用户”

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

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }

您也可以从经典Azure管理门户上的“图像”选项卡(在“虚拟机”部分中)删除图像。
Wagner Bertolini Junior

4

正如FM所说的;在某些情况下,删除虚拟机时,即使虚拟机已删除,磁盘仍显示为已附加到虚拟机。

对我来说,发生这种情况是因为我设定了支出限额。当达到支出限额时,您的服务将被禁用。您创建的所有VPN网关和VM将被删除。然后最重要的是,附加到已删除的VM的磁盘仍然认为它们已附加:(

我找到了一个博客该博客解释了该问题并显示了如何使用Powershell进行解决。

希望这对其他用户有所帮助。


1
大!您的链接将我带到他几天后制作的工具,该工具可让您“释放”您的vhd:biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/…–
Yannick Smits

0

有时我们会通过新门户网站删除azure存储帐户,但无法删除它并出现此错误:“无法删除存储帐户'jason1disks796'。错误:由于正在使用该存储帐户,因此无法删除该存储帐户。

我们可以使用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

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


0

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

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

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

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


0

对于那些依赖GUI来管理Azure而又不知道要使用PowerShell或执行其他解决方案的用户,现在可以通过在尝试删除存储时选中“删除未附加的映像”来删除保留的存储帐户。

它将自动删除存储,无需太多麻烦。


我刚刚完成了此操作,但忘记了该复选框的确切用语。
Vylix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.