あと半年でオンプレサーバーのお守りもおしまいだー!と思っていたら、ディスクの調子が悪くなってしまいました。
2日の早朝、前任者が仕込んでいたCrystalDiskInfoからいくつかメールが届いてた。健康状態が「注意」になって、代替処理済セクタの数が増え始めたと。
だるいなー。ファイルサーバー、遠隔地にあるからディスク交換すぐに出来ないんだよなー。
そんなこと言ってるうちにまたエラーメッセージが。。。しょうがないな。とりあえずディスクを切り離すか。

まずは状況の確認だ
前任者からは「RAID 5みたいな状態だから」という、説明にもなっていない説明だけ受けていたので、ダメなディスク交換したら勝手にリビルド始まるんだろ?くらいに思っていたのだけれど、そもそもWindowsのRAIDディスクの交換方法を知らない。
サーバーマネージャーの記憶プールを確認すると、Western DigitalとSeagateそれぞれふたつづつ、合計4つのディスクで構成されているっぽい。Windows Serverは特に警告とか出してないな。

PowerShellを管理者権限で動かして情報をとってみると、Get-PhysicalDiskでもHealthyになってる。
PS C:\Users\Administrator> get-physicaldisk
FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage Size
------------ ------------ ------- ----------------- ------------ ----- ----
ADATA SX7000NP 2H1720016308 _00000001. False OK Healthy Auto-Select 119.24 GB
WDC WD30EFRX-68EUZN0 WD-WCC4N1LEPATT False OK Healthy Auto-Select 2.73 TB
ST3000VN007-2AH16M ZGY654BR False OK Healthy Auto-Select 2.73 TB
ST3000VN007-2AH16M ZDH86FDT False OK Healthy Auto-Select 2.73 TB
WDC WD30EFRX-68EUZN0 WD-WCC4N5LC8KNU False OK Healthy Auto-Select 2.73 TB
Code language: PowerShell (powershell)
Get-StorageReliabilityCounterでS.M.A.R.T.情報をあたってみよう。
PS C:\Users\Administrator> get-physicaldisk -serialnumber "WD-WCC4N1LEPATT" | get-storagereliabilitycounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
0 0 0 46837
PS C:\Users\Administrator> get-physicaldisk -serialnumber "ZGY654BR" | get-storagereliabilitycounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
1 0 0 7871
PS C:\Users\Administrator> get-physicaldisk -serialnumber "ZDH86FDT" | get-storagereliabilitycounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
3 0 0 24829
PS C:\Users\Administrator> get-physicaldisk -serialnumber "WD-WCC4N5LC8KNU" | get-storagereliabilitycounter
DeviceId Temperature ReadErrorsUncorrected Wear PowerOnHours
-------- ----------- --------------------- ---- ------------
2 0 0 46835
Code language: PowerShell (powershell)
全然情報が取れないけど、稼働時間が5.3年なのはわかった。もうひとつもまもなく来そうだ。
ディスクを外そう
物理的な交換はそのうちやるとして、一旦障害ディスクを記憶プールから切り離そう。
まずはSet-PhysicalDiskで使用中止に設定。Get-PhysicalDiskでRetiredにセットされていることを確認する。
PS C:\Users\Administrator> get-physicaldisk -serialnumber "WD-WCC4N5LC8KNU" | set-physicaldisk -usage retired
PS C:\Users\Administrator> get-physicaldisk -serialnumber "WD-WCC4N5LC8KNU"
FriendlyName SerialNumber CanPool OperationalStatus HealthStatus Usage Size
------------ ------------ ------- ----------------- ------------ ----- ----
WDC WD30EFRX-68EUZN0 WD-WCC4N5LC8KNU False OK Healthy Retired 2.73 TB
Code language: PowerShell (powershell)
念のためGet-StoragePoolで記憶プール名を確認後、RemovePhysicalDiskで取り外すぞー!
PS C:\Users\Administrator> get-storagepool
FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly
------------ ----------------- ------------ ------------ ----------
Main Storage OK Healthy False False
Primordial OK Healthy True False
PS C:\Users\Administrator> $removedisk = get-physicaldisk -serialnumber "WD-WCC4N5LC8KNU"
PS C:\Users\Administrator> remove-physicaldisk -physicaldisks $removedisk -storagepoolfriendlyname "Main Storage"
確認
この操作を実行しますか?
Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool: "Main Storage".
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
remove-physicaldisk : Not enough available capacity
Extended information:
The storage pool does not have sufficient capacity to relocate data from the specified physical disks.
Recommended Actions:
- Add more physical disks to the storage pool.
- Free capacity by deleting unneeded virtual disks.
Activity ID: {d2438828-87e6-41c8-97ca-d04a4536be30}
発生場所 行:1 文字:1
+ remove-physicaldisk -physicaldisks $removedisk -storagepoolfriendlyna ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimException
+ FullyQualifiedErrorId : StorageWMI 40000,Remove-PhysicalDisk
Code language: PowerShell (powershell)
はい、ダメー。容量が足りないんだって。
というわけで現地へ行って、新しいディスク足してから障害ディスクを取り外すことにします。