仮想マシン削除後に VHD ファイルや、ストレージ アカウントが削除できない事象について
こんにちは、Azure チームの高木です。本記事では、仮想マシンに紐づいたリソースを削除する際によく発生しうる事象についてご案内いたします。ボリュームが多いため、以下に目次をご用意いたしました。必要な部分からお目通しいただけますと幸いです。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
目次
- はじめに
- 原因
- 対処策
- 予防策
- 補足:Power Shell からの対処方法
- 補足:RBAC 権限しかない場合の対処方法
はじめに
Azure をご利用いただく中で、不要な仮想マシンを削除した場合には、それに関連したファイルもあわせて削除されます。その際に、
「VHD ファイルを削除できない!」「ストレージ アカウントを削除できない!」
といった事象に遭遇することがあるかもしれません。部屋の掃除に伴い、意外とたくさん出てくる不要なゴミ達を片付け、ホッとしたのも束の間、後日玄関前に「このゴミは捨てられません。」と返還されてしまった時のような、あの何ともやり場のない怒りと悲しみが交差した混沌とした気持ちになってしまうのと同じくらいストレスが溜まる事象です。これはつらい状況かと思います。まるでゴールのない深い迷路に迷い込み、心細い旅路が望んでも無いのに勝手に始まってしまったかのような、そんな状況です。非常にはた迷惑な話です。
ですがご安心ください!! もし、この事象が発生した場合には、本記事でご案内差し上げる方法で、約 9 割は解決するはずです。
つきましては、対象のリソース (VHD ファイル、ストレージ アカウント) が削除できない事象について、その原因や対処方法について以下に順を追ってご紹介しますので、ぜひ今後のご参考としていただけると幸いです。なお、残りの 1 割に該当し、何をどうしても削除ができないという場合には、本記事でご紹介している事象とは別の要因かと思われます。その際には、お手数ですが、当サポート窓口までお問い合わせください。
ご参考までに、エラーメッセージとしては、以下のようなものが発生します。
エラーメッセージ例 1:
次の仮想マシンのディスクでこのコンテナーの BLOB を現在使用しているため、このコンテナーは削除できません: ******
エラーメッセージ例 2:
BLOB ‘****.vhd’ は仮想マシンのディスク ‘****’ として使用中のため、削除できません。
エラーメッセージ例 3:
There is currently a lease on the blob and no lease ID was specified in the request. RequestId:**** Time:2013-08-01T01:01:10.0000000Z
エラーメッセージ例 4:
ストレージ アカウント portalvhd*** には、アクティブなイメージやディスク アーティファクトが含まれている 1 個のコンテナーがあります。このストレージ アカウントを削除する前に、これらのアーティファクトをイメージ リポジトリから削除してください。
原因
本事象はクラシック仮想マシンをご利用の際に発生する場合があります。そもそもなぜ、こんなことが起きてしまうのか、、、? 理由は簡単です。
それは、クラシック仮想マシンを形成する VHD ファイルに紐づいたディスクおよびイメージの情報が紐づいたままとなっているためです。そのため、VHD ファイルが独立した状態となっていないことで、削除ができない状況にあるのです。要するに使用中のファイルは削除できないといった、そんなイメージです。
前提として Azure では、仮想マシンを削除した後もディスクを再利用することができるように、VHD ファイルならびにその関連づけ情報が残ります。ARM 仮想マシンの場合には、仮想マシンの紐づけられた VHD ファイルのみが残存するため、特に問題なく削除を実施することができます。これに対し、クラシック仮想マシンをご利用の場合には、仮想マシンに紐づいた VHD ファイルとあわせて当該 VHD ファイルに紐づいたディスク、及びイメージの情報が残存いたします。このディスクとイメージの情報が残存したままですと、いきなり VHD ファイルを削除しようとしても、「まだ先に削除しないといけない情報が残ってますよ!」といった形でエラーとなり、VHD ファイルおよびそのファイルを格納しているストレージ アカウントが削除できないわけです。
こんなエラーが私たちを苦しめてくれるのです。。
対処策
では、どうすれば良いのか?簡単です。
消しましょう。
現実の世界では、消し去りたい記憶や事実は、なかなか消去が難しいですが、ここは仮想世界。なんといっても仮想マシンでございます。簡単に消し去ることができるのです。バシッと消去し、清々しい気分で次の環境に備えて参りましょう。
VHD ファイルに紐づいていることにより、我々の大切なお客さまを「リソース削除ができない!」という暗闇に陥れてくれやがりました憎き「ディスク」および存在する場合には「イメージ」ともども、「削除」と言う名の正義の鉄槌でしっかりと成敗していきましょう。
成敗・・もとい削除方法は至って簡単です。以下のその手順をご案内いたします。
ディスクおよびイメージファイルの削除手順
- 旧管理ポータル <https://manage.windowsazure.com> にアクセスします。
- ポータル左メニューより、[仮想マシン] をクリックします。
- [仮想マシン] セクション上部 [ディスク] [イメージ] をそれぞれクリックします。
- 残存ディスクおよびイメージが確認できる場合には、それぞれ選択し、下部メニューより、[削除] をクリックします。
手順は以上です。上記手順実施後、対象の VHD ファイルおよびストレージアカウントを削除してみてください。今度は、しっかりと削除が成功するはずでございます。
参考
発生するエラーメッセージやクラシックポータルでの対処方法については下記にも記載がありますので必要に応じてご参照ください。
- 仮想マシンを作成後にストレージアカウントが削除できない問題について
https://blogs.msdn.microsoft.com/dsazurejp/2012/10/11/windows-azure-11/
予防策
本事象は、クラシックの仮想マシンに紐づいたディスクを残存させたまま、仮想マシンだけを削除した場合に発生いたします。このディスクは、仮想マシン削除時にあわせて削除することが可能です。 そのため、もし今後対象の仮想マシンに紐づいたディスクを使用する予定がないのであれば、仮想マシン削除時にあわせて削除いただけますと事前の予防策としていただけます。 クラシック仮想マシンの削除は、旧、新ポータルどちらからでも実施可能です。 つきましては、以下にクラシック ポータル、新ポータルそれぞれからクラシック仮想マシン を削除する際に、あわせてディスク情報を削除する手順についてご案内いたします。
クラシック ポータルから仮想マシンを削除する際の設定について
- クラシック ポータル (https://manage.windowsazure.com) にアクセスします。
- ポータル左メニューより、[仮想マシン] をクリックします。
- 対象の仮想マシンを選択し、画面下部 [削除] をクリックします。
- [削除] ボタンからポップアップされたメニューより、[接続されたディスクの削除] をクリックします。
新ポータルからクラシック仮想マシンを削除する際の設定について
- ポータル (https://portal.azure.com) にアクセスします。
- 画面左部のナビゲーション バーより、[仮想マシン (クラシック)] をクリックします。
- 対象の仮想マシンを選択し、画面上部 [削除] をクリックします。
- 「仮想マシンを削除しますか?」画面の [ディスク] 項目にチェックを入れます。
- 画面下部 [削除] をクリックすることにより、ディスクも含めた仮想マシン削除となります。
補足:Power Shell からの対処方法
不要ディスクおよび不要イメージは、Power Shell から削除いただくことも可能です。以下に Power Shell コマンドによる削除方法もご案内いたしますのでご参照ください。
事前準備 (Azure PowerShell のインストール)
Azure PowerShell がインストールされていない場合には、以下よりダウンロードして、インストールをお願いいたします。また、初回実行時には [Add-AzureAccount] を実行し、Azure サブスクリプションに紐づくアカウントでのログインをお願いいたします。
PowerShell コマンド
以下のコマンドを実行することにより、ディスクの削除を実施いたします。
# 残存ディスクの削除方法
Remove-AzureDisk -DiskName "当該ディスク ネーム"
# 残存 VM イメージの削除方法
Remove-AzureVMImage -VMImage "当該 VM イメージ"
なお、上記記載のイメージおよびディスクを確認する方法につきましては、 Power Shell から以下のコマンドを実施することにより一覧を出力し、 情報を取得いただけます。
# 残存ディスクの確認方法
Get-AzureDisk
# 残存 VM イメージの確認方法
Get-AzureVMImage
(補足) なお、以下のコマンドにより、現在使用していないディスクの一覧を出力いただけます。
Get-AzureDisk | where {$_.AttachedTo -eq $null}
※ プレミアム ストレージをご利用の場合:
プレミアム ストレージをご利用いただいてる場合には、ポータルに対象のディスクが表示されない場合や、表示されても削除等の操作が出来ない場合がございます。その場合には、大変お手数をおかけしますが、Power Shell コマンドにて対象のディスクを削除いただけますようお願いいたします。
補足:RBAC 権限しかない場合の対処方法
RBAC (Role Based Account Control: ユーザーに付与する権限を制御できる機能) をご利用いただいているお客様からのお問い合わせをいただくことが最近増えております。RBAC の機能は、新ポータルのみでご利用できる機能で、新ポータルへのアクセス権のみ設定が可能です。そのため、RBAC で付与された権限では、クラシック ポータルへのアクセス権が付与されていない状況で、本事象が発生することがあります。そのため、ディスク削除実施はご認識いただいているものの、クラシック ポータルでの操作ができないため、「ディスクが削除できない」というお問い合わせをいただく場合がございます。
大変申し訳ございませんが、現時点ではディスクの削除についてはクラシック ポータルへのアクセス権が必要な場合があります。例えば、残存しているディスクが OS ディスクだけの場合には、新ポータルからでも削除が可能です。しかしながら、データディスクをご利用いただいている場合には、このデータディスクを新ポータルから閲覧することができないため、結果としてクラシックポータルから操作をしていただく必要があるのです。
なお、Power Shell から操作するにしても、「Add-AzureAccount」のコマンドは、クラシック ポータルへのログインコマンドとなりますため、やはりクラシック ポータルへのアクセス権が必要となります。
対応策
では、どうすれば良いのか ―――― こちらはお手数をおかけし申し訳ありませんが、クラシック ポータルへのアクセス権を一時的に削除する方へ付与し削除していただくか、クラシックポータルへのアクセス権をお持ちの管理者側で削除を実施する必要があります。
OS ディスクのみご利用の場合
なお、先に申し上げましたとおり、OS ディスクのみご利用いただいていた場合には、新ポータルから操作が可能でございますので、以下に手順をご案内いたします。
- ポータル (https://portal.azure.com) にアクセスします。
- 画面左部のナビゲーション バーより、[その他のサービス] をクリックします。
- [OS ディスク (クラシック)] をクリックします。
- 対象のディスクを選択し、削除を実行いたします。
以上で、本記事は終了となります。最後までお読みいただきありがとうございました。 本事象に関連した内容で、お気づきの点や記事更新のご要望などありましたら、お気兼ねなくお申し付けくださいますと幸いです。
それでは、皆さま良い Azure ライフを!!