Windows Azure の Virtual Machines (VMs) で仮想マシンのインスタンスは存在していないのですが、インスタンスで使用していたディスク (VHD) が削除できないという状態になってしまいました。
# VMs が使用できるようになった時に
仮想マシンは 0 になっており、インスタンスは存在していないのですが、接続先があるディスクとして認識がされています。
ストレージ BLOB から直接削除しようとしてもエラーとなってしまいます。
こんな時にどうすればよいのか思っていたのですが、ずっと調べずに放っておいたところ 「解決策、フォーラムに掲載されていますよ」と教えていただいたので試してみました。
フォーラムの該当の記事は以下のものになります。
Error deleting VHD: There is currently a lease on the blob and no lease ID was specified in the request
このような状態になった場合は、PowerShell から VHD のリースを解放してから削除する必要があるようです。
詳細な手順は上記の記事に書かれておりますので簡略な流れだけ記載すると、
- Windows Azure PowerShell を こちら からダウンロードしてインストール
- Windows Azure PowerShell から [Get-AzurePublishSettingsFile] を実行して、publishsetting をダウンロード
- スクリプト内で Microsoft.WindowsAzure.StorageClient を使用しているので、Winodws Azure SDK をインストール
- Windows Azure PowerShell を起動し、 ダウンロードした publishsetting を使用して記事に掲載されている BreakLease.ps1 を実行
# .BreakLease.ps1 -uri <リースを開放したい VHD の URL>
Microsoft.WindowsAzure.StorageClient を使用するために BreakLease.ps1 を実行する前には、Add-type を実行してアセンブリに対してパスを通しておく必要があります。
Import-AzurePublishSettingsfile $env:userprofiledownloads*.publishsettings |
リースの解放をした後であれば VHD のファイルを削除することができるようになります。
状態によっては [Please delete the disk first.] [Please delete the OS image first.] の後の break を # でコメント化しないといけないこともありそうですが。
また、Storage から VHD を削除できても、VMs のディスクとしては存在しない仮想マシンに割り当てられているディスクとして認識してしまった状態になり、ポータルや PowerShell から消せない状態になってしまうこともあるようです。
# VMs のプレビューが出た初期のほうの問題みたいですが。
このような場合は、八方ふさがりになってしまうため、フォーラムの以下の記事のように個別対応が必要となるようです。
VHD Deletion Issues (not the lease problem)
対応をしていただくと、どの仮想マシンにも割り当てられていないディスクというように修正をしていただけ、ポータルから削除をすることができるようになります。
[…] VMs で使っていた VHD が消せない場合の対処方法 at SE の雑記2 users […]
今週のトピックス | Windowsインフラ管理者への道
13 1月 17 at 22:52