СЕРВИСНЫЕ УСЛУГИ
СТУДИЯ В ЛИПЕЦКЕ

Советы · Windows · 7 минут

Дисковое пространство Storage Spaces деградировало: как разобраться с состоянием пула

Как проверить деградировавший Storage Spaces: физические диски, пул, виртуальное пространство, избыточность, задания ремонта и условия замены накопителя.
Microsoft: модель Storage Spaces — физические накопители объединяются в пул, из которого создаются виртуальные диски. Это схема объектов, а не состояние конкретного компьютера.

Microsoft: модель Storage Spaces — физические накопители объединяются в пул, из которого создаются виртуальные диски. Это схема объектов, а не состояние конкретного компьютера.
© Microsoft. Used with permission from Microsoft. · источник и условия использования · CC BY 4.0

Не создавайте новый пул поверх обнаруженных старых дисков

После отключения внешнего корпуса или отказа накопителя пространство стало деградировавшим. Первое действие — сохранить доступные данные и выяснить, какие объекты действительно потеряны. Инициализация дисков и создание нового пула могут уничтожить возможность вернуться к прежнему состоянию.

Здесь рассматривается локальный Storage Spaces на обычном компьютере с Windows 11, а не Storage Spaces Direct в серверном кластере. Общие названия объектов похожи, но автоматическое восстановление и административные действия различаются. [1], [2]

Пул, виртуальный диск и файловый том — разные уровни. Сообщение об одном из них нельзя автоматически трактовать как физическую неисправность всех накопителей.

Уровни Storage Spaces
  1. Физические дискиКонкретные устройства и соединения
  2. ПулОбщий управляемый запас хранения
  3. Виртуальный дискПространство с выбранной избыточностью
  4. ТомФайловая система и пользовательские файлы

Схема редакции «Мы из 90х».

Сохраните конфигурацию и проверьте доступность данных

Если том читается, скопируйте самые важные данные на независимый носитель. Избыточность внутри пула не заменяет резервную копию: она не защищает от любого удаления, повреждения или второго отказа во время восстановления.

Запишите состав накопителей, их модели, серийные номера и подключение. Два одновременно пропавших USB-диска могут иметь общую проблему питания или корпуса, а не две независимые поломки.

Не сбрасывайте состояние накопителей и не удаляйте метаданные, чтобы убрать предупреждение. Если данные недоступны, а допустимое число отказов неизвестно, сначала сохраните сведения и исходное состояние, затем определите способ восстановления.

Реальные накопители разных форматов. При работе с пулом нужно сопоставить каждое устройство с его идентификатором; буква виртуального тома этого не заменяет.
Реальные накопители разных форматов. При работе с пулом нужно сопоставить каждое устройство с его идентификатором; буква виртуального тома этого не заменяет.User5515 · источник и условия использования · CC0 1.0

Прочитайте состояние всех трёх объектов

Откройте Windows PowerShell с повышенными правами и получите обзор:

Windows PowerShell

Get-StoragePool -IsPrimordial $false |
  Select-Object FriendlyName, UniqueId, HealthStatus,
    OperationalStatus, IsReadOnly, Size, AllocatedSize

Get-VirtualDisk |
  Select-Object FriendlyName, UniqueId, ResiliencySettingName,
    HealthStatus, OperationalStatus, Size, FootprintOnPool

Get-PhysicalDisk |
  Select-Object FriendlyName, SerialNumber, UniqueId,
    HealthStatus, OperationalStatus, CanPool, Size

Сохраните вывод полностью. Имена FriendlyName могут повторяться, поэтому для изменений нужны проверенные UniqueId и привязка к физическим устройствам. Назначение команд описано Microsoft. [3], [4], [5]

Size виртуального диска не равен свободной физической ёмкости пула. При избыточности и динамическом выделении простое сложение букв дисков не показывает, достаточно ли места для восстановления.

Свяжите устройства с конкретным пулом

Если обнаружено несколько пулов, общий список физических дисков недостаточен. Сначала выберите один объект по полному UniqueId и запросите связанные устройства и виртуальные диски:

Windows PowerShell: чтение связей

$inspectPool = @(Get-StoragePool -IsPrimordial $false |
  Where-Object UniqueId -eq 'POOL_UNIQUE_ID')
if ($inspectPool.Count -ne 1) {
  throw 'Нужен ровно один подтверждённый пул'
}

Get-PhysicalDisk -StoragePool $inspectPool[0] |
  Format-List FriendlyName, SerialNumber, UniqueId, Usage,
    HealthStatus, OperationalStatus

Get-VirtualDisk -StoragePool $inspectPool[0] |
  Format-List FriendlyName, UniqueId, ResiliencySettingName,
    HealthStatus, OperationalStatus

Не подставляйте имя из первой строки глобального списка. Сохраните принадлежность старого диска и идентификаторы затронутых пространств до изменений. Ассоциации поддерживаются командами хранения Microsoft. [3], [4], [5]

Установите, какая избыточность действительно была создана

Посмотрите ResiliencySettingName и конфигурацию пространства. Simple не содержит предусмотренной защиты от отказа устройства. У зеркала и чётности есть свои требования к числу доступных дисков и размещению данных.

Не угадывайте тип по количеству устройств: два диска в корпусе не обязательно являются зеркалом. У одного пула могут быть несколько виртуальных дисков с разными настройками.

Если потеряно больше данных, чем позволяют восстановить сохранившиеся копии или чётность, команда Repair не создаст утраченные блоки из ничего. Возврат отсутствовавшего исправного диска и восстановление из независимой копии — разные возможные пути. Типы пространств и их возможности описаны Microsoft. [1], [2]

Что означает состояние для проверки
НаблюдениеЧто выяснить
Потеряна связь с устройствомПитание, корпус, порт и наличие того же диска
Виртуальный диск деградировалКакая избыточность и какие участники доступны
Пул только для чтенияПочему включено ограничение и хватает ли участников
Simple и отказ носителяЕсть ли независимая копия нужных данных

Учебная таблица редакции.

Верните отсутствующее соединение до замены диска

Проверьте штатное подключение, питание и принадлежность устройств. При безопасном возвращении того же исправного накопителя часть проблемы может исчезнуть без создания нового пула. Не заменяйте отсутствующий диск пустым только на основании пустого окна одного инструмента.

Внешний корпус должен показывать отдельные пригодные физические устройства. Некоторые USB-мосты скрывают их идентичность или представляют их как неподходящие для Storage Spaces. Возможность открыть диск в Проводнике не равна CanPool. [1]

Если состояние пула ReadOnly, сначала выясните причину. Принудительное снятие флага без возвращения необходимых устройств не восстанавливает отсутствующие копии.

Подготовьте замену и проверьте её идентификатор

Если отказ подтверждён и конфигурация сохраняет возможность ремонта, подготовьте совместимый пустой диск достаточного размера и подходящий запас пула. Сохраните всё нужное с накопителя, который станет заменой: добавление в пул меняет его назначение.

Пример выбора по заранее записанным идентификаторам:

Windows PowerShell: чтение и проверки

$targetPool = @(Get-StoragePool -IsPrimordial $false |
  Where-Object UniqueId -eq 'POOL_UNIQUE_ID')

$newPhysical = @(Get-PhysicalDisk |
  Where-Object UniqueId -eq 'NEW_DISK_UNIQUE_ID')

if ($targetPool.Count -ne 1) {
  throw 'Нужен ровно один подтверждённый пул'
}
if ($newPhysical.Count -ne 1 -or -not $newPhysical[0].CanPool) {
  throw 'Замена не определена однозначно или не пригодна для пула'
}

$targetPool[0] | Format-List FriendlyName, UniqueId, IsReadOnly
$newPhysical[0] | Format-List FriendlyName, SerialNumber, UniqueId, Size

Строки с UNIQUE_ID нужно заменить реальными значениями. До этого пример остановится с ошибкой. После проверки пригодной замены добавление выполняют отдельно:

Windows PowerShell: изменение пула

Add-PhysicalDisk -StoragePool $targetPool[0] -PhysicalDisks $newPhysical[0]

Это не команда первоначальной диагностики. Нужны подтверждённый пул, правильное пустое устройство и понятная схема восстановления. Сам по себе CanPool не заменяет проверку, что выбран именно предназначенный для замены диск. [6]

Восстановите избыточность и наблюдайте за заданием

Если прежний неисправный диск ещё представлен в пуле и его требуется вывести из использования, статус Retired задаётся только для точно установленного старого объекта по поддерживаемому плану. Не применяйте его ко всем дискам с Warning.

После добавления проверенной замены и только если вывод старого участника действительно предусмотрен планом, пример выбора Retired ограничивается дисками подтверждённого пула:

Windows PowerShell: изменение подтверждённого старого участника

$oldPhysical = @(Get-PhysicalDisk -StoragePool $targetPool[0] |
  Where-Object UniqueId -eq 'OLD_DISK_UNIQUE_ID')
if ($oldPhysical.Count -ne 1) {
  throw 'Старый участник пула не определён однозначно'
}
$oldPhysical[0] |
  Format-List FriendlyName, SerialNumber, UniqueId, Usage
Set-PhysicalDisk -InputObject $oldPhysical[0] -Usage Retired

Здесь $targetPool — ранее выбранный и проверенный пул. Если старый объект недоступен или операция завершилась ошибкой, не продолжайте наугад. Retired меняет назначение диска и не означает, что перенос данных уже закончен. [10]

Для подтверждённого виртуального диска локального пространства ремонт может запускаться через:

Windows PowerShell: сначала замените идентификатор

Repair-VirtualDisk -UniqueId 'VIRTUAL_DISK_UNIQUE_ID'
Get-StorageJob

Repair-VirtualDisk зависит от возможностей поставщика хранения. Для локального Storage Spaces его применение отличается от автоматических сценариев Storage Spaces Direct. [2], [7], [8]

Наблюдайте ход, ошибки и состояние объектов после завершения. Отсутствие строки в Get-StorageJob не доказывает успех: задание могло закончиться отказом. Недостаток места, неподходящая раскладка и нехватка участников могут препятствовать ремонту даже при заметной общей свободной ёмкости.

Проверка ремонта
  1. Участники доступныВернулись нужные устройства или добавлена замена
  2. Ремонт выполненПроверены сообщения и задания
  3. Избыточность возвращенаОценены затронутые виртуальные диски
  4. Данные провереныВажные файлы читаются, копия сохранена

Схема редакции «Мы из 90х».

Удаляйте старое устройство только после подготовки

Для штатного удаления доступного диска в интерфейсе управления Storage Spaces Microsoft предусматривает Prepare for removal, ожидание Ready to remove и затем удаление. Данные должны быть перемещены на другие устройства с сохранением требуемой защиты. Если места не хватает, может потребоваться дополнительный диск. [1]

На этапе подтверждённого отказа и замены порядок зависит от состояния старого объекта. Перед окончательным удалением проверьте все затронутые виртуальные диски, завершение работ и документацию операции Remove-PhysicalDisk. [9]

Не используйте Reset-PhysicalDisk как универсальный способ «пересканировать»: сброс может стирать данные и метаданные. И не выдёргивайте ещё нужный участник только потому, что один том уже открылся.

Проверьте результат на уровне пула и файлов

Снова сохраните вывод Get-StoragePool, Get-VirtualDisk и Get-PhysicalDisk. Сравните не только цвет значка, но и состав, состояния, доступную ёмкость и ожидаемую избыточность.

Откройте важные файлы с тома и проверьте независимую резервную копию. Если ошибка связи возвращается, продолжайте диагностику корпуса, питания и тракта хранения: замена диска не исправляет неисправный общий кабель.

Для обращения за помощью подготовьте модель конфигурации, идентификаторы, исходные и текущие состояния, сообщения заданий и список выполненных изменений. Деградация с доступными данными и потеря всех пригодных копий требуют разных решений.

Made on
Tilda