Files
windows_exporter/docs/runbooks/windowsstoragevirtualdiskunhealthy.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

1.9 KiB

title
title
WindowsStorageVirtualDiskUnhealthy

Meaning

The Storage Spaces virtual disk virtual_disk 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. A virtual disk is in warning state when it is degraded or incomplete and still accessible, and unhealthy when it is detached or has lost data. On Storage Spaces Direct every node reports the clustered virtual disks, so the alert fires once per node; the instance label names the reporter.

Impact

A degraded virtual disk still serves data but has no redundancy left; a further disk failure loses the data. A detached virtual disk takes its volumes offline, and everything stored on them is unavailable.

Diagnosis

  1. Inspect windows_storage_spaces_virtual_disk_health_status and windows_storage_spaces_pool_health_status to see whether the pool is affected too; WindowsStoragePoolUnhealthy then names the pool.

  2. On the host, read the virtual disk, its footprint and the repair jobs:

    Get-VirtualDisk -FriendlyName '<disk>' | Select-Object FriendlyName, HealthStatus, OperationalStatus, ResiliencySettingName, DetachedReason
    Get-VirtualDisk -FriendlyName '<disk>' | Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus
    Get-StorageJob
    
  3. Check for a failed physical disk, a pool that ran out of space for allocation, or a disk that was detached by a policy after an error.

Mitigation

Replace the failed physical disk as in WindowsStoragePoolUnhealthy and repair the virtual disk with Repair-VirtualDisk. Attach a detached disk with Connect-VirtualDisk once the cause is fixed. Confirm the health returns to healthy once the repair jobs finish.