Заміна несправного диска в Storage Spaces Direct на Windows Server 2016

У минулій статті ми розповідали про нову технологію організації розподіленого зберігання, що з'явилася в 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

Примітка. Можливість ідентифікації дисків за допомогою підсвічування з'явилася в Windows Server 2016, при цьому на стороні фізичного сервера потрібна підтримка протоколу моніторингу та управління підсистемою зберігання SES (SCSI Enclosure Storage).

Тепер йде в серверну кімнату і знаходимо проблемний диск за допомогою включеної раніше підсвічування.

Виконуємо заміну несправного диска на новий.

Тепер підсвічування можна відключити:

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 хвилин). Після цього можна ще раз перевірити статус пулу.