Диск в пуле умер. Зеркало или контроль чётности удержали данные, работа не остановилась, но запас прочности исчерпан: ещё один отказ, и информация пропадёт. Сбойный накопитель надо менять, и тут многие совершают роковую ошибку - просто выдёргивают мёртвый диск и втыкают новый, надеясь, что система разберётся сама. Иногда так и происходит, но чаще такой наскок оставляет пул в подвешенном состоянии, с зависшим сбойным диском, который не удаляется, и новым, который не включается в работу. Правильная замена идёт строго по порядку, и каждый шаг важен. Встроенные средства Windows проводят через всю процедуру так, что данные остаются в целости, а защита восстанавливается полностью.
Замена диска в пуле - это не физическая операция, а логическая последовательность. Сначала сбойный диск выводят из работы программно, чтобы система перестала на него полагаться. Потом восстанавливают данные на оставшихся дисках. Затем добавляют новый накопитель и перераспределяют на него информацию. И только в конце убирают старый диск из пула. Нарушение этого порядка - главная причина проблем при замене. Задача - пройти все шаги в верной последовательности, не торопясь и проверяя результат каждого.
Обнаружение и точная идентификация сбойного диска
Первый шаг - найти проблемный диск и точно его опознать, чтобы случайно не тронуть исправный. Просмотр физических дисков с фильтром по здоровью сразу показывает виновника. Команда оболочки PowerShell отбирает все нездоровые диски:
Get-PhysicalDisk | Where-Object HealthStatus -ne "Healthy"
Команда выводит только диски, чьё здоровье отличается от нормального. Сбойный накопитель покажет состояние с предупреждением или ошибкой и рабочее состояние с потерей связи. Чтобы точно опознать диск физически, выводят его отличительные приметы: серийный номер, версию прошивки, номер слота. Расширенный просмотр нездоровых дисков с приметами делается так:
Get-PhysicalDisk | Where-Object HealthStatus -ne "Healthy" | Format-List FriendlyName, SerialNumber, FirmwareVersion, Size
Здесь по сбойному диску видны серийный номер и прочие приметы, по которым его находят среди прочих в корпусе. Точная идентификация критична: ошибка на этом шаге означает, что под замену пойдёт исправный диск, а сбойный останется на месте. Серийный номер - самая надёжная примета, его сверяют с наклейкой на физическом накопителе перед тем, как что-либо трогать руками. Полезно вести и собственный учёт: записать серийные номера всех дисков пула вместе с их слотами заранее, пока всё работает. Тогда при отказе не придётся гадать, какой накопитель в каком отсеке, достаточно сверить серийный номер сбойного диска со своей записью и сразу идти к нужному слоту.
Вывод сбойного диска из работы пометкой на изъятие
Прежде чем что-то менять физически, сбойный диск выводят из работы программно. Это запрещает системе записывать на него данные и помечает его как подлежащий удалению. Пометка на изъятие делается командой установки назначения:
$сбойный = Get-PhysicalDisk | Where-Object HealthStatus -ne "Healthy"
Set-PhysicalDisk -InputObject $сбойный -Usage Retired
Первая строка находит сбойный диск, вторая помечает его на изъятие. После этого система перестаёт полагаться на этот накопитель и готовит его к удалению. Проверяют, что пометка применилась, повторным просмотром диска: его назначение должно смениться на изъятый. Этот шаг важен потому, что он логически отделяет сбойный диск от пула ещё до физических действий. Система начинает считать данные на этом диске недоступными и готовится перенести их защищённые копии на другие накопители. Без пометки на изъятие дальнейшие операции могут зависнуть, ожидая ответа от мёртвого диска, который никогда не придёт.
Восстановление данных на оставшихся исправных дисках
После пометки сбойного диска запускают восстановление виртуальных дисков, чтобы система пересоздала недостающие копии данных на уцелевших накопителях. Запуск восстановления для виртуального диска делается командой:
Get-StoragePool -FriendlyName "ПулДанных" | Get-VirtualDisk | Repair-VirtualDisk
Команда находит все виртуальные диски пула и запускает их восстановление. Система заново раскладывает копии данных по исправным дискам, возвращая полноту защиты. Восстановление идёт в фоне и может занять много времени: для полностью заполненного диска большой ёмкости оно растягивается на многие часы. Следить за ходом помогает просмотр текущих задач хранилища:
Get-StorageJob
Команда показывает все идущие операции с процентом выполнения. Дождаться завершения восстановления обязательно перед следующим шагом, потому что удаление диска до окончания восстановления оставит данные без полной защиты. Терпение здесь не прихоть, а необходимость: пока восстановление не закончено, система ещё досоздаёт копии, и любое вмешательство в этот момент рискует нарушить целостность. Полезно запускать восстановление как фоновое задание, чтобы не блокировать оболочку на долгие часы, для чего к команде добавляют соответствующий ключ фонового выполнения. Тогда восстановление идёт само по себе, а администратор продолжает работать в той же оболочке, время от времени проверяя ход задания просмотром текущих операций хранилища. Скорость восстановления зависит от объёма данных, типа дисков и нагрузки на пул: на быстрых дисках с малым объёмом данных оно займёт минуты, а на заполненных механических накопителях большой ёмкости растянется на полдня и дольше. Поэтому замену планируют с запасом времени, не рассчитывая, что всё закончится за пять минут.
Добавление нового диска и удаление старого из пула
Когда восстановление завершено, в систему устанавливают новый диск и добавляют его в пул на замену выбывшему. Сначала проверяют, что новый диск виден как пригодный, потом добавляют его. Добавление нового диска делается так:
$новый = Get-PhysicalDisk -CanPool $True
Add-PhysicalDisk -StoragePoolFriendlyName "ПулДанных" -PhysicalDisks $новый
Первая строка находит новый пригодный диск, вторая добавляет его в пул. Теперь, когда замена на месте и данные восстановлены, старый помеченный диск можно убрать из пула окончательно. Удаление изъятого диска делается командой:
$изъятый = Get-PhysicalDisk | Where-Object Usage -eq "Retired"
Remove-PhysicalDisk -PhysicalDisks $изъятый -StoragePoolFriendlyName "ПулДанных"
Первая строка находит помеченный на изъятие диск, вторая удаляет его из пула. После удаления сбойный диск перестаёт числиться в пуле, и его можно физически извлечь из корпуса. Важно соблюдать порядок: новый диск добавляют до удаления старого, иначе при удалении может не хватить ёмкости для размещения восстановленных данных, и система откажется убирать диск. Этот нюанс - частая причина кругового тупика, когда старый диск не удаляется, требуя сначала добавить новый.
Физическая идентификация диска через подсветку слота
Опознать сбойный диск по серийному номеру в системе - половина дела. Вторая половина - найти его руками среди десятка одинаковых накопителей в корпусе или стойке, не выдернув по ошибке соседний рабочий. В корпусах, поддерживающих управление подсветкой, этот поиск облегчает встроенная функция: система зажигает индикатор на слоте нужного диска. Включение подсветки сбойного диска делается командой:
Get-PhysicalDisk | Where-Object OperationalStatus -ne "OK" | Enable-PhysicalDiskIdentification
Команда зажигает индикатор на слотах всех дисков с ненормальным рабочим состоянием. Теперь в серверной достаточно найти накопитель с горящим индикатором и заменить именно его, без риска перепутать. После замены подсветку гасят обратной командой отключения идентификации. Эта функция работает только в корпусах с поддержкой соответствующего протокола управления отсеками, на простом домашнем оборудовании её может не быть, и тогда полагаются на серийный номер. Где подсветка доступна, она резко снижает риск человеческой ошибки при физической замене, превращая поиск нужного диска из нервного занятия в простой взгляд на горящий индикатор. Особенно это ценно в больших массивах, где десятки одинаковых дисков стоят плотными рядами и перепутать соседние проще простого.
Учёт горячего резерва при автоматической замене
Если в пуле заранее настроен горячий резерв, процедура замены упрощается: система сама подхватывает резервный диск при отказе рабочего, не дожидаясь действий человека. В этом случае к моменту, когда администратор замечает проблему, восстановление на резервный диск уже может идти или даже завершиться. Проверить, есть ли в пуле резервные диски и в каком они состоянии, помогает просмотр с фильтром по назначению:
Get-PhysicalDisk | Where-Object Usage -eq "HotSpare"
Команда показывает все диски, выделенные под горячий резерв. Если такой диск есть, при отказе рабочего система автоматически вводит его в строй, и роль администратора сводится к последующей замене уже выбывшего накопителя и назначению нового диска резервом взамен израсходованного. Это превращает срочную замену в спокойную: данные защищены сразу, без гонки со временем. Без резерва же каждый отказ - это окно повышенного риска, пока человек не заменит диск вручную. Поэтому в ответственных хранилищах горячий резерв настраивают заранее, ведь он берёт на себя самую критичную по времени часть работы, выигрывая драгоценные часы, в течение которых пул иначе оставался бы без полной защиты в ожидании ручного вмешательства.
Проверка восстановленной защиты и итоги
После замены убеждаются, что пул вернулся в полностью здоровое состояние. Просмотр виртуальных дисков показывает их восстановленное здоровье. Команда выводит состояние каждого тома:
Get-VirtualDisk | Select FriendlyName, HealthStatus, OperationalStatus
Здоровое состояние и нормальная работа по всем виртуальным дискам подтверждают, что замена удалась и защита полностью восстановлена. Заодно проверяют, что новый диск числится здоровым и работает в составе пула, через просмотр физических дисков. Если все диски здоровы, а виртуальные тома в норме, процедура завершена успешно, и пул снова готов пережить отказ любого накопителя.
Замена сбойного диска в пуле подчиняется строгой логике, нарушать которую опасно. Сначала опознают и точно идентифицируют сбойный диск, чтобы не тронуть исправный. Потом помечают его на изъятие, отделяя от пула логически. Затем запускают восстановление и дожидаются его полного завершения. После добавляют новый диск и только потом удаляют старый. В конце проверяют восстановленное здоровье. Соблюдение этого порядка превращает гибель диска из катастрофы в плановую процедуру обслуживания. Данные при этом не теряются ни на минуту, потому что защита удерживает их на уцелевших копиях, пока идёт замена.
Стоит держать в уме и пределы этой защиты. Двустороннее зеркало и одинарный контроль чётности переживают отказ лишь одного диска, поэтому менять сбойный накопитель надо без промедления, пока не отказал следующий. Если второй диск умрёт до завершения замены первого, данные пропадут безвозвратно, и никакое восстановление их не вернёт. Отсюда простое правило: чем раньше замечен и заменён сбойный диск, тем меньше окно уязвимости. Регулярный контроль здоровья пула и быстрая реакция на первый же отказ - вот что отличает надёжно работающее хранилище от мины замедленного действия, где первый отказ остался незамеченным, а второй стал фатальным.
Освоив эту последовательность, администратор встречает отказ диска без паники: он знает точные шаги, проходит их спокойно и возвращает хранилище в полную боевую готовность, а пользователи зачастую даже не догадываются, что один из дисков под ними недавно умер и был заменён на ходу.