误添加P40磁盘至Azure SQL虚拟机后Repair-VirtualDisk任务挂起求助
问题:Azure SQL虚拟机中Retired磁盘的Repair-VirtualDisk任务挂起
问题背景
- 误将P40磁盘添加至市场版Azure SQL服务器/虚拟机
- 已完成物理磁盘的Retired状态设置(截图:
) - 执行命令
Repair-VirtualDisk -Friendlyname "<你的虚拟磁盘名称>"后,修复任务持续处于挂起状态(截图:
)
排查与解决步骤
1. 先确认存储资源状态
执行以下PowerShell命令,检查存储池和虚拟磁盘的健康、运行状态:
Get-StoragePool | Select-Object FriendlyName, HealthStatus, OperationalStatus Get-VirtualDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus, ResiliencySettingName, NumberOfCopies
重点关注:虚拟磁盘是否处于Degraded状态、存储池的健康状态、副本数配置是否与剩余容量匹配。
2. 终止挂起的修复任务
先强制停止当前卡住的修复进程:
Get-StorageJob | Where-Object {$_.Operation -eq "Repair" -and $_.Status -eq "Suspended"} | Stop-StorageJob -Force
等待任务完全终止后,再重新尝试修复操作。
3. 检查存储池可用容量
修复虚拟磁盘需要足够的空闲容量来重建数据。执行命令查看容量情况:
Get-StoragePool | Select-Object FriendlyName, AvailableCapacity, AllocatedCapacity
如果可用容量小于虚拟磁盘已用容量的1/N(N为副本数,如镜像模式N=2),需先扩容存储池或释放冗余空间。
4. 适配Azure环境的特殊配置
- 统一磁盘缓存策略:在Azure门户中检查所有数据盘的缓存设置,确保P40磁盘与原有磁盘的缓存策略一致(Azure SQL虚拟机通常使用
Read-only或None)。 - 排查IOPS配额限制:修复过程中可能触发Azure磁盘IOPS阈值,可在虚拟机监控面板查看磁盘IO指标,确认是否存在瓶颈。
5. 手动移除Retired磁盘(备选方案)
若修复任务始终无法推进,可尝试直接移除Retired磁盘并重新平衡存储池:
- 提前备份虚拟磁盘数据(重要!)
- 执行移除命令:
Remove-PhysicalDisk -StoragePoolFriendlyName "<存储池名称>" -PhysicalDisks (Get-PhysicalDisk | Where-Object {$_.OperationalStatus -eq "Retired"})
- 重新平衡存储池:
Optimize-StoragePool -FriendlyName "<存储池名称>"
内容的提问来源于stack exchange,提问作者Reinard
相关产品推荐
相关产品推荐

