PowerShell可高效监控Storage Spaces健康状态:用Get-StoragePool查HealthStatus/OperationalStatus,Get-PhysicalDisk定位故障磁盘,Get-VirtualDisk分析容量与冗余,结合脚本定时巡检并邮件告警。
powershell 是 windows 存储池(storage spaces)健康监控的高效工具,无需第三方软件即可实时获取池状态、虚拟磁盘健康度、物理磁盘故障预警等关键信息。
检查存储池整体状态
使用 Get-StoragePool 可快速列出所有存储池及其健康状况。重点关注 HealthStatus(正常/警告/异常)和 OperationalStatus(正常/降级/已停用)字段:
-
健康池示例输出:
HealthStatus = Healthy且OperationalStatus = OK -
异常信号:若
HealthStatus = Unhealthy或OperationalStatus = Degraded,需立即排查底层磁盘或虚拟磁盘 - 建议定期运行:
Get-StoragePool | Where-Object {$_.HealthStatus -ne 'Healthy' -or $_.OperationalStatus -ne 'OK'}
定位故障物理磁盘
存储池异常往往源于物理磁盘失效。通过 Get-PhysicalDisk 结合健康筛选可精准识别问题设备:
- 运行
Get-PhysicalDisk | Where-Object {$_.HealthStatus -ne 'Healthy'}查看异常磁盘 - 关注 Usage 字段:若为
Retired,说明系统已自动将其隔离;若为Unknown或Failed,需人工介入 - 结合
Get-PhysicalDisk | Select FriendlyName, HealthStatus, OperationalStatus, Usage, Size输出完整信息便于记录
监控虚拟磁盘可用容量与状态
虚拟磁盘(Virtual Disk)是实际承载数据的逻辑单元,其 ResiliencySettingName(如 Mirror、Parity)、Size 和 AllocatedSize 直接影响业务连续性:
- 用
Get-VirtualDisk | Select FriendlyName, HealthStatus, OperationalStatus, ResiliencySettingName, Size, AllocatedSize获取概览 - 计算剩余可用空间:
(Size - AllocatedSize),当剩余低于 10% 建议扩容或清理 - 若
HealthStatus = Warning且OperationalStatus = OK,常见于写入缓存满或重建中,需结合事件日志进一步分析
自动化健康检查与告警
将检查逻辑封装为脚本,配合任务计划程序实现定时巡检和邮件通知:
- 脚本核心逻辑:依次调用
Get-StoragePool、Get-PhysicalDisk、Get-VirtualDisk并判断关键字段 - 发现异常时,用
Send-MailMessage发送摘要(注意提前配置 SMTP 凭据或使用本地 Exchange) - 推荐每日凌晨执行,并将结果导出为 CSV:
| Export-Csv -Path "C:\logs\StorageHealth_$(Get-Date -Format 'yyyyMMdd').csv" -NoTypeInformation
不复杂但容易忽略的是事件日志中的 Microsoft-Windows-Storage-StorPort 和 Microsoft-Windows-StorageSpaces-Driver 来源事件,它们常早于 PowerShell 状态变更提供硬件级预警。

















