記憶域スペース(記憶域プール)の物理HDDを交換する方法は記憶域スペースで記憶域プールから物理HDDを取り外す場合の対処方法に記載していますが、改めて紹介します。
以下では、
- 物理HDDが故障した場合
- HDDは正常だが、HDDを入れ替えたい場合
についてそれぞれ記載します。なお、以下は自宅サーバーユーザー向けに、コントロールパネルから記憶域の管理が利用出来る Windows 8 または Windows Server 2012 Essentials を例に記載します。
以下の内容も含む、記憶域プールの考え方や管理のベストプラクティスについては、「Windows Server 2012 R2 記憶域スペースのアーキテクチャと設計・管理のベストプラクティス」ホワイトペーパーを執筆しましたでも記載しています。
回復性タイプ「シンプル」では物理ディスクの交換はできない
以降に記載する内容は、回復性のタイプが「シンプル」の場合は利用出来ません。
なぜならば、記憶域スペースの修復は、故障したあるいは交換したい物理ディスクに保存されていたデータを、他の物理ディスクに保存されているコピー(回復性のタイプが「ミラー」の場合)あるいはパリティおよび残りのストライプ(回復性のタイプが「パリティ」の場合)から、新しい物理ディスクにコピー(復元)するというプロセスを実施するためです。
回復性のタイプがシンプルの場合は、他の物理ディスクの中に、故障したあるいは交換したい物理ディスクに保存されていたデータのコピーあるいはパリティ情報は保存されていませんので、ディスクの交換は出来ません。
「シンプル」ディスクは消えてもよいデータ向け
記憶域スペースでは、「シンプル」を利用するのは、ディスク障害時に消えてもかまわないデータ向けとされています。それだけではなく、物理ディスクの交換もできなくなりますので、回復性タイプを設定する際にはよく理解した上で選択する必要があります。仮想ディスク作成時には、記憶域スペースに関する理解を深める(列数とディスク使用の関係)やWindows Server 2012 R2 のデュアルパリティは、ストライプあたり3つのパリティストライプが存在も参照しながら、領域の使用効率と耐障害性を天秤にかけ、回復性を選択してください。
記憶域プールのHDDを交換する方法
(1)物理HDDが故障した場合
物理HDDが故障してOSが認識しない場合、以下のように記憶域プールの状態が「警告」となり、故障しているHDDにも「警告」が表示されます。
この場合はまず、交換先の新しいHDDをコンピューターに接続してから、コントロールパネル>記憶域の管理>[設定の変更]を押下後、記憶域プールに[ドライブの追加]を実行します。以下は、物理HDD 3台から構成したパリティ型の記憶域スペースに対して操作を実行する例ですが、他の復元性タイプでも同様の操作となります。
新しいHDDが記憶域プールに追加されると、記憶域の修復が自動実行されます。
記憶域の修復が完了すると、記憶域の状態は[OK]に遷移します。
あとは、壊れた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 [対象ディスクのフレンドリーネーム]
で実行出来ます。
OS再インストールやサーバー入替時に、記憶域プール全体を別のサーバーで認識させるには
OSを再インストールした場合や、サーバーハードウェアを新しいハードウェアに入れ替え、それまで利用していた記憶域プールのデータを新しい環境で認識させたい場合があるでしょう。
そういう場合は、記憶域スペースを管理するPowerShellのCmdletでも記載していますが、記憶域プールを構成するすべての物理ディスクを新しい環境に接続したうえで、以下のコマンドレットを利用します。
Get-StoragePool | Where-Object {$_.IsReadonly –eq $True } | Set-StoragePool –IsReadonly $False Get-VirtualDisk | Where-Object {$_.IsManualAttach –eq $True} | Set-VirtualDisk –IsManualAttach $False
サーバーOSでは、別の環境で構築された記憶域プールが別のOS環境に初めて接続された場合、記憶域プールは読取専用モードで認識され、記憶域スペースはデタッチされた状態となります。記憶域スペースを利用可能にするには、上記の2つのコマンドを実行して、記憶域プールの読取専用属性を解除し、記憶域スペースの手動アタッチ属性も解除する必要があります。
PowerShellからこのコマンドを実行せずにGUIから記憶域プールをアタッチしても、次回のOS再起動後には再びデタッチ状態となります。
なお、これはあくまで新しい接続先がサーバーOSの場合で、新しい接続先がクライアントOSの場合には、この設定は必要ありません。