В прошлой статье мы рассказывали о новой технологии организации распределенного хранения, появившейся в Windows Server 2016 – Storage Spaces Direct (S2D). S2D позволяет организовать на локальных дисках серверов кластера отказоустойчивое распределенное виртуальное хранилище данных (см. статью). В этой статье мы разберемся, как обнаружить и заменить вышедший из строя физический диск в кластере S2D.
Напомню, в S2D можно организовать диск в хранилище типа Mirror (напоминает RAID 1): в конфигурации с 2 дисками (не рекомендовано) такое хранилище может пережить выход из строя любого диска, если дисков в пуле более 3 – без последствий одновременно из строя могут выйти 2 любых диска. Второй тип массива – Parity (похож на RAID 5). В конфигурации из трех дисков массив может без последствий «потерять» один диск, при семи дисках – одновременно из строя могу выйти до 2 дисков.
Проверить состояние подсистемы хранения кластера S2D можно с помощью команды:
Get-StorageSubSystem *Cluster* | Get-StorageJob
Неисправность одного из дисков пула хранения в GUI можно обнаружить в консоли Failover Cluster Manager (Storage ->Storage Pool). Как вы видите, один из дисков физических пула находится в состоянии Unhealthy.
Информацию о состоянии дисков пула можно получить с помощью PowerShell:
Get-StoragePool *S2D* | Get-PhysicalDisk
Сохраним объект проблемного диска в переменную, например так:
$Disk = Get-PhysicalDisk |? OperationalStatus -Notlike ok
Запретим дальнейшие попытки записи на данный диск:
Set-PhysicalDisk -InputObject $Disk -Usage Retired
Попробуем исключить данный неисправный диск из пула хранения.:
Get-StoragePool *S2D* | Remove-PhysicalDisk –PhysicalDisk $Disk
Скорее всего появится предупреждение, что данное устройство не отвечает.
Чтобы было проще идентифицировать диск в серверной стойке, включим LED подсветку диска:
Get-PhysicalDisk |? OperationalStatus -Notlike OK | Enable-PhysicalDiskIdentification
Теперь идет в серверную комнату и находим проблемный диск с помощью включенной ранее подсветки.
Выполняем замену неисправного диска на новый.
Теперь подсветку можно отключить:
Get-PhysicalDisk |? OperationalStatus -like OK | Disable-PhysicalDiskIdentification
Проверим, определила ли ОС новый диск:
$Disk = Get-PhysicalDisk | ? CanPool –eq True
Добавим новый диск в пул:
Get-StoragePool *S2D* | Add-PhysicalDisk –PhysicalDisks $Disk –Verbose
На этом все, S2D автоматически запустит процедуру перераспределения данных между дисками (в Windows Server 2012 Storage Spaces необходимо было запускать команду Repair-VirtualDisk вручную). Длительность синхронизации данных зависит от емкости диска и нагрузки на пул (в моем стенде заняло около 30 минут). После этого можно еще раз проверить статус пула.
что будет если тупо вытащить умерший винт и заменить его новым ?
С2Д сам «розрулит» ситуацию ??
В теории да — но на реальных задачах и серверах нужно сначала все это протестировать.
Использую сейчас в полутестовой конфигурации S2D в котором 2 SSD и 2 HDD, в режиме Tiering Mirror.
Все никак не дойдут руки протестировать отказ одного из диском и возможное восстановление хранилища.
Пока точно знаю что при включенном ярусном хранении данные между ярусами размазываются блочно, соответсвенно имея на руках только один из дисков ничего не восстановишь) Нужно как минимум одну сторону зеркала иметь живую.
Но этот вариант тоже не тестировал. Можно ли будет считать данные с одной половинки зеркала, если просто их вставить в другой комп, или в любом случае сначала нужно будет ребилд пула сделать?
Вообще, разобравшись с деталями работы, вывод в итоге такой что хардварные рейды нахер не нужны, когда есть S2D
При малом количестве дисков (3) в теории на дисках будет полноя копия (если другие виртульаные тома на на данных дисках не хранятся). Но в большой конфигурации, размазываение данных по дискам будет идти не в зеркальном режиме, а по другой логиге. Вот кстати довольно подробный материал о том, что происходит в S2D на уровне блоков _https://blogs.technet.microsoft.com/filecab/2016/11/21/deep-dive-pool-in-spaces-direct/
Тестировал Storage Spaces Direct на обычном ПК. Просто отключал sata кабель. Программный рейд сам все восстановил WinServ2016. Спасибо мелкософту за данную фичу.
Прямо на горячую вырубал?)
Прямо на горячую вырубал?) Или на выключенном ПК
Некропост, но все же. Хочу предупредить об опасности при включении S2D, а может кто подскажет рабочий вариант. Итак, было 14 дисков — 4 ssd, 10 hdd — из них 2 объеденены в пул средствами storage spaces (не S2D). В пуле создан вирт. диск на котором работали ВМ. В диспетчере серверов виделся том, который был создан в этом вирт. диске, т.е. области на дисках Storage Spaces были размечены. При включении S2D оба физических диска были переведены под S2D, что привело к отвалу вирт. диска на Storage Spaces и потере вирт. машин. Что я сделал не так?
Ну как бы вы сами виноваты, если отдали диски из storage spaces в s2d.
Понадеялся на документацию по S2D, в которой указано, что только неразмеченные диски будут отданы в S2D.
P.S. На чужих ошибках учиться долго, а на своих дорого.