Files
windows_exporter/docs/runbooks/windowsstoragepoolunhealthy.md
T
Jan-Otto Kröpke d819362150 mixin: add alerts for the opt-in collectors
Every optional collector of the mixin now has alerts, generated only with
that collector enabled in _config.collectors: clock source, disk drive
status, page file usage, license status, scheduled task results, pending
updates, Hyper-V WMI and replication health, failover cluster nodes,
resources, groups and shared volumes, Storage Spaces pool and virtual disk
health, DHCP scope exhaustion and DNS zone transfer failures. The alerts
of the pagefile, diskdrive and license collectors join the memory, disk
and system groups; the other collectors get a group of their own.

New knobs: taskSelector, sharedVolumeSelector, pagefileUsageThreshold,
dhcpScopeFreeWarningThreshold, dhcpScopeFreeCriticalThreshold and
updatePendingDuration. The test configuration enables every optional
collector and tests/optional.test.yaml covers the new alerts.

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
2026-10-17 02:28:35 +00:00

2.1 KiB

title
title
WindowsStoragePoolUnhealthy

Meaning

The Storage Spaces pool pool reports a health status of warning or unhealthy for ten minutes. The critical alert fires for unhealthy, the warning for warning. The alert needs the storage_spaces collector and joins windows_storage_spaces_pool_info so the primordial pool, which only groups the disks that are not in a pool yet, does not raise it. The pool's operational status, exposed as windows_storage_spaces_pool_operational_status, tells why: degraded, read-only, or incomplete. On Storage Spaces Direct every node reports the clustered pool, so the alert fires once per node; the instance label names the reporter.

Impact

A pool in warning state has lost a physical disk or redundancy; the virtual disks on it still work but have no tolerance left for another failure, or cannot allocate more space. An unhealthy pool has lost more disks than its resiliency tolerates, so virtual disks on it are detached or read-only.

Diagnosis

  1. Inspect windows_storage_spaces_pool_health_status, windows_storage_spaces_pool_operational_status and windows_storage_spaces_virtual_disk_health_status for the pool and its virtual disks.

  2. On the host, find the failed disk:

    Get-StoragePool -FriendlyName '<pool>' | Select-Object FriendlyName, HealthStatus, OperationalStatus, IsReadOnly
    Get-StoragePool -FriendlyName '<pool>' | Get-PhysicalDisk | Select-Object FriendlyName, SerialNumber, HealthStatus, OperationalStatus, Usage
    Get-StoragePool -FriendlyName '<pool>' | Get-VirtualDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus
    Get-StorageJob
    
  3. Check the System log for disk and storage events, and whether a repair job is already running.

Mitigation

Replace the failed physical disk: retire it with Set-PhysicalDisk -Usage Retired, add the new disk with Add-PhysicalDisk, repair the virtual disks with Repair-VirtualDisk, and remove the old disk with Remove-PhysicalDisk. Add capacity when the pool is full. Confirm the health returns to healthy once the repair jobs finish.