記憶域スペースを管理するPowerShellのCmdletで記憶域スペースで記憶域プールから物理HDDを取り外す cmdlet を紹介していますが、「記憶域プールからHDDを取り外す方法が書かれているところがない」といった声を耳にするので、改めて手順をまとめてみました。また、TechNetなどのドキュメントで記載されている cmdlet がそのままだと動作しない場合もあったので、改めて修正を行っています。
以下では、
- 物理HDDが故障した場合
- HDDは正常だが、HDDを入れ替えたい場合
についてそれぞれ記載します。なお、以下はコントロールパネルから記憶域の管理が利用出来る Windows 8 または Windows Server 2012 Essentials を例に記載します。
ただし、以下に記載する内容は、回復性のタイプが「シンプル」の場合は利用出来ません。なぜならば、記憶域スペースの修復は、故障したあるいは交換したい物理ディスクに保存されていたデータを、他の物理ディスクに保存されているコピー(回復性のタイプが「ミラー」の場合)あるいはパリティおよび残りのストライプ(回復性のタイプが「パリティ」の場合)から、新しい物理ディスクにコピー(復元)するというプロセスを実施するためです。回復性のタイプがシンプルの場合は、他の物理ディスクの中に、故障したあるいは交換したい物理ディスクに保存されていたデータのコピーあるいはパリティ情報は保存されていませんので、ディスクの交換は出来ません。
(1)物理HDDが故障した場合
物理HDDが故障してOSが認識しない場合、以下のように記憶域プールの状態が「警告」となり、故障しているHDDにも「警告」が表示されます。
この場合はまず、交換先の新しいHDDをコンピューターに接続してから、コントロールパネル>記憶域の管理>[設定の変更]を押下後、記憶域プールに[ドライブの追加]を実行します。以下は、物理HDD 3台から構成したパリティ型の記憶域スペースに対して操作を実行する例ですが、他の復元性タイプでも同様の操作となります。
新しいHDDが記憶域プールに追加されると、記憶域の修復が自動実行されます。
記憶域の修復が完了すると、記憶域の状態は[OK]に遷移します。
記憶域が切断されている(PowerShellで確認すると、Operational Statusが”Detached”の状態)と、自動修復が行われず記憶域の状態が[OK]に遷移しない場合があります。この場合、PowerShellを管理者権限で起動し、以下のコマンドレットを実行して接続した上で、再度記憶域の修復を行います。
Get-VirtualDisk | Where-Object -Filter { $_.OperationalStatus -eq "Detached"} | Connect-VirtualDisk
あとは、壊れたHDDを取り外すため、取り外し対象のHDDの[削除]を押下します。
削除が完了すると、以下のように記憶域と全てのHDDの状態が[OK]となります。
(2)HDDは正常だが、他のHDDと入れ替えたい場合
この場合は、コントロールパネルのGUIだけでは操作が完結しません。 WHS V1のDrive Extender と大きく異なるのがこの点で、コントロールパネルからは使用中のHDDを取り外すという操作が考慮されていません。
(1)同様、物理HDD 3台から構成したパリティ型の記憶域スペースに対して操作を実行する例をとって説明します。
まず、記憶域に対して交換先となる物理HDDを追加します。
操作が完了すると、以下のように1台追加されて合計4台の物理HDDが認識されます。
次に、cmdlet で扱う際にわかりやすくするため、予め取り外し対象の物理HDDの名前を変更しておきます。ここではシンプルに [disk1] としました。
名前の変更が完了しました。以下の画面で表示されている [disk1] を記憶域から取り外します。
ここからは PowerShell での操作となります。記憶域スペースを管理するPowerShellのCmdletで[記憶域スペースで記憶域プールから物理HDDを取り外す cmdlet] に記載されているcmdletを順に実行します。
(a) まず、取り外し対象の物理HDDの属性を Retired に変更します。
Set-PhysicalDisk –FriendlyName disk1 –Usage Retired
(b) 次に、物理ディスクが属していた全ての記憶域に対して、記憶域の修復を実行します。
Get-PhysicalDisk –FriendlyName disk1 | Get-VirtualDisk | Repair-VirtualDisk
(c) 修復ジョブが完了したか、以下のコマンドで確認します。実行中のジョブがある場合は、表示されるので、表示がなくまるまで待ちます(コントロールパネルの記憶域の状態が[OK]に変るまで待ちます)。
get-storagejob
(d) 修復が完了したら、以下のコマンドを実行して物理HDDを削除します。なお、コマンド内の[記憶域プール]は取り外ししたい対象の記憶域のフレンドリーネームを入力します。
記憶域プールのフレンドリーネームは、予め以下のコマンドで確認しておきます。
Get-StoragePool
コマンド結果に表示される[Primordial]はシステムが管理するものですので、除外してください。最初から、以下のコマンドを入力するのもよいでしょう。
Get-StoragePool | Where-Object{$_.IsPrimordial –ne “True”}
記憶域の名前が確認できたら、以下のようにコマンドを実行して、HDDを削除します。
$PDToRemove = Get-PhysicalDisk -Friendlyname “disk1″ Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName “記憶域プール”
なお、コントロールパネルが利用出来る場合は、実は(a)のコマンドで物理HDDの属性を [Retired] にさえ変えてしまえば、(b)以降はGUIから実行することも出来ます。
[Retired]になった物理HDDはコントロールパネルでは以下のように[廃棄]と表示されますので、[削除]を押下して取り外しします。
取り外した物理HDDを他のPCで利用する場合
物理HDDには記憶域プールの管理情報が書込まれているため、記憶域プールが利用出来るOSに接続しても、ディスクの管理からドライブレターを割り当てることが出来ません。
その場合は、記憶域の管理から対象のHDDの[リセット]を実行します。
同様の操作は PowerShell では
Reset-PhysicalDisk –FriendlyName [対象ディスクのフレンドリーネーム]
で実行出来ます。
Windows 10ではGUIから操作が可能
Windows 10ではアップデートによりGUIから取り外し操作が可能になりました。詳細はWindows 10 の記憶域スペース/記憶域プールに、次のリリースでGUI更新が?記憶域スペースはコンシューマーでも実用の域にを参照してください。