Восстановление пула Storage Spaces Direct (S2D): Сбои дисков и метаданных
Симптомы сбоя кластерного пула S2D
В отказоустойчивом кластере Windows Server с технологией Storage Spaces Direct (S2D) виртуальный диск переходит в состояние Degraded (Деградирован), Incomplete или Detached. Кластерный том CSV переходит в режим только для чтения (Read-Only) или отваливается (>событие 5120). Виртуальные машины Hyper-V зависают в состоянии Paused-Critical.
Причины сбоя:
- Физический выход из строя одного или нескольких SSD/NVMe дисков пула.
- Сбой связи по сети RDMA (RoCE / iWARP) между узлами кластера (Storage Network failure).
- Преждевременное отключение питания узла до завершения синхронизации кэша (Dirty Shutdown).
- Зависание процесса автоматического восстановления (Repairing Task stuck at 0%).
Дерево решений: Замена диска и восстановление пула
Шаг 1: Проверка состояния виртуальных дисков и пула
# Проверка статуса работоспособности пула и виртуальных дисков S2D
Get-StoragePool S2D* | Select-Object FriendlyName, OperationalStatus, HealthStatus
Get-VirtualDisk | Select-Object FriendlyName, OperationalStatus, HealthStatus, FootprintOnPoolШаг 2: Поиск физического сбойного диска
# Поиск неисправных физических дисков в кластере
Get-PhysicalDisk | Where-Object {$_.OperationalStatus -ne "OK" -or $_.HealthStatus -ne "Healthy"} |
Select-Object DeviceId, FriendlyName, SerialNumber, CanPool, CannotPoolReason, OperationalStatusШаг 3: Процедура замены физического диска
- Включите индикаторную подсветку сбойного диска на сервере:
Enable-PhysicalDiskIndication -DeviceId НОМЕР_ДИСКА. - Физически замените диск в корзине сервера (Hot-Swap).
- Удалите старый диск из пула:
$Disk = Get-PhysicalDisk | Where-Object {$_.OperationalStatus -match "Lost"}; Remove-PhysicalDisk -PhysicalDisk $Disk -StoragePoolFriendlyName (Get-StoragePool S2D*).FriendlyName. - Добавьте новый диск в пул и запустите перестроение данных:
# Принудительный запуск восстановления и перебалансировки виртуального диска
Repair-VirtualDisk -FriendlyName "Имя_Виртуального_Диска"
# Мониторинг фонового процесса восстановления
Get-StorageJobТиповые ошибки администраторов
- Перезагрузка второго узла во время деградации диска: Если кластер S2D работает в 2-узловой конфигурации (Nested Resiliency или Two-Way Mirror), перезагрузка второго узла во время восстановления диска на первом приведет к полной потере кворума и разрушению данных пула!
Ошибки перестроения S2D требуют экспертных знаний архитектуры ReFS и RDMA. Передайте поддержку кластеров инженерам ITSTM: восстановим метаданные пула, оптимизируем RoCE/iWARP и гарантируем сохранность баз данных.
Частые вопросы (FAQ)
Почему задача Repair-VirtualDisk зависает на 0%?
Это происходит, если в пуле нет достаточного количества свободного неразмеченного места (Reserve Capacity) для перестроения недостающих копий блоков данных (Resiliency Data).
В чем разница между OperationalStatus 'Degraded' и 'Detached'?
'Degraded' означает, что данные доступны, но потеряна избыточность (зеркало). 'Detached' означает, что том смонтировать невозможно из-за потери большинства копий данных.
Как принудительно подключить диск со статусом Detached?
Используйте команду: Connect-VirtualDisk -FriendlyName 'ИмяДиска' (внимание: если повреждение метаданных серьезное, используйте утилиту RefsUtil).
Требуется ли перезагрузка сервера после замены диска в S2D?
Нет. Архитектура Storage Spaces Direct поддерживает полную горячую замену (Hot-Swap) накопителей без прерывания работы ВМ.