リースされた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を削除して、結果としてストレージアカウントを削除する方法を教えてください。

回答:


332

ソリューションの鍵は、コンテナにアクティブなディスクアーティファクトがあるというメッセージと、それをリポジトリから削除するためのアドバイスです。

BLOBリポジトリからディスクイメージを削除する手順は次のとおりです。

  • Windows Azure管理ポータルに移動します
  • [仮想マシン]をクリックします。
  • ディスクをクリックします。
  • ディスクをクリックします。
  • [ディスクの削除]をクリックします。

その後、ストレージアカウントを削除できます。

ノート:

  • これは、すべての仮想マシンをすでに削除していて、0と表示されている場合にも当てはまります。ディスクタブの下にまだアーティファクトがあります。
  • ディスクは削除されたVMから非同期で切り離されます。VMが削除されてからこのフィールドがクリアされるまで数分かかる場合があります。

参照:VHDを削除できない、「現在BLOBにリースがあります...」


重要な注意点の1つ:削除ボタンはIE9では正しく機能しません。IEではこれを追跡できませんでしたが、Chromeでは問題はありませんでした。
Paul Keister

@PaulKeister Firefox 17.0.1でもバグがあります。私は数回試さなければなりませんでした。
Justin Skiles、

@DavideIcardiのコメントに加えて、MSDNフォーラムのこのスレッドでは、BLOBリースが非同期に解放され、この操作は最大2時間続くことが説明されています。
edymtt 2013年

1
古いポータル>ストレージ>リストからストレージアカウントを選択>上部の[コンテナー]タブをクリック> [vhds]をクリック>削除するblobを選択する必要がありました。これで、ストレージアカウントを削除できます。
chdev77 2016年

1
同上@ chdev77。また、ディスクが表示されるように、古いポータルにアクセスする必要がありました。うわー、地獄のように迷惑だった!
Harristrader 2016年

16

残念ながら、私はストレージを削除する前にVMを削除したため、ストレージは「孤立」していたため、フェルナンドの答えは私にとってうまくいきませんでした。ポータルからそれを行う方法が見つからなかったため、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
まったく同じ問題があった。孤立したディスクとイメージがたくさんありましたが、ポータルでは削除できません。私が4か月前にこの答えを見つけたとしたら!
James Wilson、

12

残念ながら、VMが削除された場合がありますが、ディスクには、削除を除外してBLOB(30GB VHD)に接続されたVMが表示されます。また、Azure Storage Explorerを使用する場合、orfanが削除できないリースのVHD blobを見つけ、プレビューポータルに参照がない場合もあります。


3
彼の答えはすべての状況で正しくありません。現在、「仮想マシン->ディスク」セクションにリストされている3つの「ディスク」があり、それらを削除することはできません(そのため、blobは削除できません)。現在私が知っている唯一の方法はポータルを使用することなので、それらを取り除く方法はわかりません。 kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason

@Jasonによってすでに指摘されているように、対応する仮想マシンをすでに削除している場合でも、ディスクを削除できないことがあります。私の経験では、ちょうどタイミングの問題のようです。数分待つと、削除できるはずです。
Davide Icardi 2013年

4
3か月待ちましたが、タイミングの問題を待ち続けるべきですか?
Dawesi

VHDディスクイメージは、(新しいポータルの)[参照]の下にあります
Stan Bashtavenko

8

仮想マシンに移動し、ディスクをクリックします。ディスクにマークを付け、下部にあるディスクの削除を選択します。対応するvhdを保持するか削除するかを選択できます。

ストレージ経由で削除するのではなく、まず仮想マシン経由でディスクを削除することが重要です。


1
あなたの多くはRTFMを持っていると思いますが、問題はありません。これらは孤立したリースされたロックされたvhdです...同じ問題があります。Azureには何もありませんが、2つのVHDがあり、リースされてロックされているため削除されません(これはバグであり、リースするものがないためです)。
Dawesi、2015年


5

私の場合、vmimagesが原因でストレージを削除できませんでした。

Power Shellコマンドを使用する

get-azurevmimage | Where-Object -Property Category -in -Value "user"

削除するには、すべての画像を一覧表示するALL YOUイメージは次のスクリプトを使用します。

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

クラシックAzure管理ポータルの[イメージ]タブ(仮想マシンセクション内)からイメージを削除することもできます。
Wagner Bertolini Junior

4

FMはすでに述べているように; VMを削除しても、VMが削除されていても、ディスクがVMに接続されていると表示されるシナリオがあります。

私にとってこれは、支出制限を設定していたために起こりました。支出制限に達すると、サービスが無効になります。作成したVPNゲートウェイとVMは削除されます。次に、削除されたVMに接続されているディスクを追加するために、それらはまだ接続されていると考えます:(

このブログを見つけました問題を説明し、Powershellを使用して解決する方法を示すを。

これが他のユーザーの役に立つことを願っています。


1
すごい!:あなたのリンクは、彼があなたのVHD「unlease」にあなたを可能に数日後に作られたことをツールに私をもたらしたbiztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/...
ヤニック・スミッツ

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に関連付けられたディスクとそのストレージアカウントを、隣接する垂直ペインですべて1つのページにさまざまなアイコン画像で明確に簡単に識別できます。


0

Azureの管理にGUIを使用していて、PowerShellを使用したり、その他の答えを考えたりしていない人のために、ストレージを削除しようとするときに[アタッチされていないイメージを削除する]チェックボックスをオンにすることで、スタックストレージアカウントを削除できるようになりました。

面倒な作業をすることなく、ストレージを自動的に削除します。


たった今これを行いましたが、チェックボックスの正確な表現を忘れてしまいました。
Vylix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.