Короткий ответ
CSV — NTFS/ReFS том, смонтированный в C:\ClusterStorage\Volume1 на всех узлах, с координатором. Недоступность — это не «диск C: хоста», это clustered disk. Снимите Get-ClusterSharedVolume, Get-ClusterSharedVolumeState, события 5120/5142 до любых Offline/Maintenance.
Симптомы и как отличить
Типичная картина:
- Explorer на
HV01не открываетC:\ClusterStorage\Volume1; - в Cluster Manager CSV в Redirected Access или Offline;
- VM на этом томе Failed, остальные на Volume2 живы;
- Event ID 5120 (том недоступен на узле), 5142 (больше не accessible).
Отличия:
| Что видно | Куда |
|---|---|
| Нет кворума кластера | quorum |
| Том жив, не едет одна VM | перенос между узлами |
| Медленно, но Online | нагрузка диска |
| Одна VM, путь локальный | старт VM |
Возможные причины
- Потеря пути к LUN (iSCSI/FC/SAS): кабель,zoning, MPIO.
- Координатор CSV завис, сеть кластера между узлами мертва.
- Файловая система грязная после жёсткого сбоя, CSV в maintenance.
- Нет кворума — диски не Online.
- Антивирус/filter driver ломает csvfs.
- Заполнился том — симптомы «не пишется», не всегда «недоступен».
Диагностика
На каждом узле, который ещё слушается:
Get-ClusterNode | Format-Table Name, State, DrainStatus
Get-ClusterQuorum | Format-List
Get-ClusterSharedVolume | Format-Table Name, State, OwnerNode, FriendlyVolumeName
Get-ClusterSharedVolumeState | Format-Table Name, Node, StateInfo, VolumeName, VolumeFriendlyName
Get-ClusterResource | Where-Object ResourceType -eq 'Physical Disk' | Format-Table Name, State, OwnerNodeСобытия:
Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 5120,5142,1069,1135; StartTime = (Get-Date).AddHours(-6) } |
Format-Table TimeCreated, Id, MachineName, Message -WrapПуть к диску:
Get-Disk | Format-Table Number, FriendlyName, OperationalStatus, HealthStatus, BusType, IsOffline, IsReadOnly
Get-StorageReliabilityCounter -ErrorAction SilentlyContinue | Format-Table
mpclaim -s -d # если установлен MPIO; иначе смотрите iSCSI initiator
Get-IscsiSession -ErrorAction SilentlyContinueСеть кластера (CSV может ходить по cluster network):
Get-ClusterNetwork | Format-Table Name, State, Role, Address
Test-NetConnection -ComputerName 'HV02.contoso.example' -Port 3343Не запускайте chkdsk из Explorer на живом CSV с Running VM.
Решение
Сценарий A. Один узел не видит Volume1, остальные живы
- Не Offline диска кластера.
- На больном
HV01: iSCSI reconnect, FC login, драйвер HBA, MPIO. - Пересканируйте диски (
Update-HostStorageCache). Если LUN вернулся — CSV часто сам выходит из ошибки. - Можно Move CSV coordinator на здоровый узел если том Online в кластере:
Move-ClusterSharedVolume -Name 'Cluster Disk 1' -Node 'HV02'Имя ресурса возьмите из Get-ClusterSharedVolume, не выдумывайте.
Сценарий B. Redirected Access на узле
Чините сеть между узлом и координатором / к СХД. Длительный redirected убивает производительность. Не reboot всех узлов сразу: катящийся, по одному, с проверкой Get-ClusterSharedVolumeState.
Сценарий C. Том Offline на всём кластере
Проверьте кворум и физический диск. Если LUN виден в Get-Disk как Offline:
Get-Disk -Number 4 | Format-ListOnline диска через кластер (Start-ClusterResource), не только Set-Disk -IsOffline $false в обход, если диск уже clustered — иначе split ownership.
Сценарий D. Подозрение на NTFS dirty
Окно простоя: штатно остановите VM на томе или Live Migration на другой CSV. Затем maintenance CSV по документации Failover Cluster / Repair-ClusterSharedVolume (если применимо к вашей версии и состоянию) либо chkdsk в поддерживаемом режиме CSV. Не chkdsk на томе с пишущими VM.
Пока том в Redirected, VM могут оставаться Running с ужасной latency — это не повод Offline диска. Снимите Get-ClusterSharedVolumeState на каждом узле: Direct на координаторе и Redirected на остальных иногда нормальны коротко, Redirected на всех — нет.
Не путайте недоступный C:\ClusterStorage\Volume1 с забитым томом: Get-Volume с SizeRemaining 0 даёт ошибки записи, Explorer «не открывается» похоже. Тогда рост VHDX, не Offline.
Сценарий E. Filter driver
Исключения антивируса для CSV согласно Microsoft. Временное отключение третьестороннего агента в окно — диагностика, не постоянный режим.
Как проверить, что проблема устранена
Get-ClusterSharedVolume | Format-Table Name, State, OwnerNode
Get-ClusterSharedVolumeState | Format-Table Node, StateInfo, VolumeFriendlyName
Get-ChildItem 'C:\ClusterStorage\Volume1'
Get-VM | Where-Object Path -like 'C:\ClusterStorage\Volume1*' | Format-Table Name, StateState Online, StateInfo Direct (или краткий redirected только на одном узле во время обслуживания). Каталоги VM читаются на всех узлах. VM-APP01 Running. Нет свежих 5142.
Проверка записи: создание тестового файла в служебном каталоге CSV и удаление — не в папке дисков VM.
Если не помогло
- Кворум No: сначала quorum-статья, CSV сам не оживёт.
- LUN invisible на всех: SAN/zoning, не Hyper-V.
- После «починки» NTFS гостей raw: вы чинили не тот слой; restore VM.
- Один узел вечно redirected: NIC CSV, SMB, драйвер.
Профилактика
- Два пути MPIO к СХД.
- Выделенная сеть CSV/cluster.
- Мониторинг 5120/5142 и Redirected.
- Исключения csvfs в AV.
- Не заполнять CSV до нуля (reserve).
- Health хоста до патча СХД.
FAQ
Чем CSV отличается от общего диска без CSV?
CSV позволяет многим узлам NTFS одновременно для VM. Без CSV классический диск Online только на владельце. Hyper-V HA на общих VHDX живёт на CSV (или SMB 3).
Можно ли держать CSV на локальном RAID одного сервера?
Это не отказоустойчивость площадки. Второй узел диск не увидит. CSV подразумевает общее хранилище или S2D/SMB.
Redirected — срочно reboot координатора?
Нет. Найдите почему Direct пропал. Reboot координатора перекинет роль, но не починит мёртвый iSCSI.
chkdsk /f на C:\ClusterStorage\Volume1 с живыми VM?
Нет. Это том с пишущими VHDX.
Move-ClusterSharedVolume безопасен?
Перенос координатора штатный. Делайте при живом томе, не вместо ремонта СХД.
Volume1 исчез из C:\ClusterStorage после reboot узла?
Кластер не смонтировал CSV на этом узле (диск/кворум/фильтр). Не создавайте папку Volume1 руками.