X

記憶域スペースで記憶域プールから物理HDDを取り外す場合の対処方法

記憶域スペースを管理するPowerShellのCmdletで記憶域スペースで記憶域プールから物理HDDを取り外す cmdlet を紹介していますが、「記憶域プールからHDDを取り外す方法が書かれているところがない」といった声を耳にするので、改めて手順をまとめてみました。また、TechNetなどのドキュメントで記載されている cmdlet がそのままだと動作しない場合もあったので、改めて修正を行っています。

以下では、

  1. 物理HDDが故障した場合
  2. 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更新が?記憶域スペースはコンシューマーでも実用の域にを参照してください。

ださっち: