无法删除Azure虚拟机及关联磁盘,报StorageFailure/LeaseIdMissing错误求助
尝试删除Azure虚拟机和关联磁盘时均失败,报错代码为StorageFailure/LeaseIdMissing,具体操作及错误信息如下:
删除磁盘的操作及报错
执行命令:
PS /home/azureuser> Remove-AzDisk -ResourceGroupName 'MyResourceGroupName' -DiskName 'MyDiskName' -Force
报错信息:
Remove-AzDisk: Long running operation failed with status 'Failed'. Additional Info:'Error accessing storage.'
ErrorCode: StorageFailure/LeaseIdMissing
ErrorMessage: Error accessing storage.
ErrorTarget:
StartTime: 2/17/2024 7:04:52 AM
EndTime: 2/17/2024 7:04:52 AM
OperationID: 5cab0100-eb6b-4589-9eb8-acd1bc68fc30
Status: Failed
删除虚拟机的操作及报错
执行命令:
PS /home/azureuser> Remove-AzVm -ResourceGroupName MyResourceGroupName -Name MyVirtualMachine -ForceDeletion $true
交互及报错信息:
Virtual machine removal operation
This cmdlet will remove the specified virtual machine. Do you want to continue?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
Remove-AzVM: Long running operation failed with status 'Failed'. Additional Info:'Error accessing storage. Target: '/subscriptions/dcfb3602-2c06-48a1-...........289b50f476c92b8c7d1479f74df'.'
ErrorCode: StorageFailure/LeaseIdMissing
ErrorMessage: Error accessing storage. Target: '/subscriptions/dcfb3602-2c06-48a1-b3fe-76cae848ca0a/resourceGroups/...................b8c7d1479f74df'.
ErrorTarget:
StartTime: 2/17/2024 7:08:37 AM
EndTime: 2/17/2024 7:09:38 AM
OperationID: b29e3d22-8290-403c-92da-6edca90f0cda
Status: Failed
解决步骤
1. 检查磁盘租约状态
先确认磁盘是否被租约锁定:
Get-AzDisk -ResourceGroupName 'MyResourceGroupName' -DiskName 'MyDiskName' | Select-Object Name, LeaseStatus, LeaseState
若LeaseStatus显示为Locked,说明磁盘被其他资源持有租约,需要先释放。
2. 强制释放磁盘租约
通过PowerShell解除磁盘锁定:
$disk = Get-AzDisk -ResourceGroupName 'MyResourceGroupName' -DiskName 'MyDiskName' $disk.LeaseStatus = 'Unlocked' $disk | Update-AzDisk
也可通过Azure门户操作:找到目标磁盘,进入概述页,点击「解除租约」按钮(若显示)。
3. 清理虚拟机关联资源
先删除虚拟机关联的附属资源,再尝试删除虚拟机:
- 删除网络接口:
Remove-AzNetworkInterface -ResourceGroupName 'MyResourceGroupName' -Name 'MyNicName' -Force
- 删除公共IP(若存在):
Remove-AzPublicIpAddress -ResourceGroupName 'MyResourceGroupName' -Name 'MyPublicIpName' -Force
4. 通过Resource Manager API强制删除
若常规命令无效,调用Azure资源管理器API强制删除:
# 替换[你的订阅ID]为实际订阅ID # 删除虚拟机 Invoke-AzRestMethod -Method Delete -Uri "https://management.azure.com/subscriptions/[你的订阅ID]/resourceGroups/MyResourceGroupName/providers/Microsoft.Compute/virtualMachines/MyVirtualMachine?api-version=2023-07-01&forceDeletion=true" # 删除磁盘 Invoke-AzRestMethod -Method Delete -Uri "https://management.azure.com/subscriptions/[你的订阅ID]/resourceGroups/MyResourceGroupName/providers/Microsoft.Compute/disks/MyDiskName?api-version=2023-07-01"
5. 验证存储账户权限
确保操作账户对磁盘所在存储账户拥有「存储账户参与者」或「所有者」权限,权限不足时添加对应权限后重试。
内容的提问来源于stack exchange,提问作者Ramon Faja

