Windows 8の新機能の1つであった記憶域プールですが、いろいろあって作り直しました。
今回作成する記憶域プールは以下の通りです。
※2個の記憶域プールを作成します。
記憶域プール
(FriendlyName) |
ローカルディスク | 外付けディスク |
---|---|---|
PhysicalDisk | PhysicalDisk1
PhysicalDisk2 PhysicalDisk3 PhysicalDisk4 |
PhysicalDisk6
PhysicalDisk7 PhysicalDisk8 PhysicalDisk9 |
記憶域スペース
(FriendlyName) |
データ用ディスク | 共有用ディスク |
PhysicalDisk | PhysicalDisk1
PhysicalDisk2 PhysicalDisk3 PhysicalDisk4 |
PhysicalDisk6
PhysicalDisk7 PhysicalDisk8 PhysicalDisk9 |
回復性
(ResiliencySettingName) |
パリティ | パリティ |
列数
(numberofcolumns) |
4 | 4 |
データコピー
(numberofdatacopies) |
1 | 1 |
サイズ | UseMaximumSize | UseMaximumSize |
ボリュームラベル | Data | ServerShared |
ドライブレター | D | G |
ファイルシステム | NTFS | NTFS |
ディスク情報 | Microsoft Storage Space Device
Disk Number 10 |
Microsoft Storage Space Device
Disk Number 12 |
内臓HDDと外付けHDDとで別々に記憶域プールを作成し、外付けHDD(5ドライブケース)を別PCへそのまま接続して利用することを想定しています。
以下、記憶域プール「ローカルディスク」の作成手順です。
準備
作業PCで記憶域プールに追加するディスクを接続した状態にします。
※ボリュームを作成した状態のディスクの場合、容量が同じサイズのディスク間では見分けがつかないなどで誤って使用中のディスクを初期化してしまう可能性があるので作業前にはボリュームを削除した状態にするのがお勧めです。
GUI画面で確認した例
記憶域管理画面で確認すると、ボリュームが作成されていないドライブは「未フォーマトドライブ」に、ボリュームが作成されたドライブは「フォーマット済みドライブ」に分類されて表示されます。
このとき、フォーマット済みドライブに分類されているドライブには、すでに使用しているドライブも含まれています。
たとえば、フォーマット済みドライブに分類されている「I-O DATA RHDM-U US…」(ディスク5)というドライブは、USBドライブですでにWindows8.1のバックアップイメージ保存用に利用しているドライブです。
このドライブは、未フォーマットドライブに分類されている「Hitachi HDP725050GL…」(ディスク1~4)と容量が全く同じため、PowerShellで表示すると区別がつかなくなります。
ミスをしないように記憶域プールに登録するドライブは慎重に確認してボリュームを削除した状態にしてから作業することをお勧めします。
作業手順
PowerShellを起動
PowerShellを管理者として実行します。
使用可能な物理ディスクの確認
次の例では、CanPoolがTrueの物理ディスクの一覧を表示しています。
PS C:Windowssystem32> Get-StoragePool -IsPrimordial $true | Get-PhysicalDisk | Where-Object CanPool -eq $True FriendlyName CanPool OperationalStatus HealthStatus Usage Size ------------ ------- ----------------- ------------ ----- ---- PhysicalDisk3 True OK Healthy Auto-Select 465 GB PhysicalDisk2 True OK Healthy Auto-Select 465 GB PhysicalDisk4 True OK Healthy Auto-Select 465 GB PhysicalDisk1 True OK Healthy Auto-Select 465 GB
※CanPoolがTrueのドライブは、GUI画面で未フォーマットドライブに分類されているドライブと同じはずです。
記憶域プールの作成
次の例では、新しい記憶域プール「ローカルディスク」を作成します。作成にはすべての使用可能な物理ディスク(CanPool=True)を使用しています。
PS C:Windowssystem32> New-StoragePool –FriendlyName "ローカルディスク" –StorageSubsystemFriendlyName “Storage Spaces*” –PhysicalDisks (Get-PhysicalDisk –CanPool $True) FriendlyName OperationalStatus HealthStatus IsPrimordial IsReadOnly ------------ ----------------- ------------ ------------ ---------- ローカルディスク OK Healthy False False
使用するディスクを1個ずつ指定する場合は以下のようになります。
PS C:Windowssystem32> New-StoragePool –FriendlyName "ローカルディスク" –StorageSubsystemFriendlyName “Storage Spaces*” –PhysicalDisks (Get-PhysicalDisk PhysicalDisk1, PhysicalDisk2, PhysicalDisk3, PhysicalDisk4)
仮想ディスクの作成
次の例では、「ローカルディスク」という記憶域プールに「データ用ディスク」というパリティ構成の仮想ディスクを作成します。このディスクは、記憶域プールの最大記憶域容量を使用します。プロビショニングタイプは固定です。
PS C:Windowssystem32> New-VirtualDisk –StoragePoolFriendlyName "ローカルディスク" –FriendlyName "データ用ディスク" –ProvisioningType fixed -ResiliencySettingName parity –UseMaximumSize FriendlyName ResiliencySettingNa OperationalStatus HealthStatus IsManualAttach Size me ------------ ------------------- ----------------- ------------ -------------- ---- データ用ディスク Parity OK Healthy False 1.36 TB
仮想ディスクの確認
以下の例では、仮想ディスクのフレンドリー名、回復性、列数、コピー数とサイズを表示しています。
PS C:Windowssystem32> get-virtualdisk | ft friendlyname,resiliencysettingname,numberofcolumns,numberofdatacopies,@{expression={$_.size/1TB};Label=”Size(TB)”} friendlyname resiliencysettingname numberofcolumns numberofdatacopies Size(TB) ------------ --------------------- --------------- ------------------ -------- データ用ディスク Parity 4 1 1.359375
ボリュームの作成
次の例は、仮想ディスク「データ用ディスク」 のディスクを初期化し、ドライブ文字Dを割り当てたパーティションを作成し、既定の NTFS ファイル システムを使用してボリュームをフォーマットします。
PS C:Windowssystem32> Get-VirtualDisk –FriendlyName "データ用ディスク" | Get-Disk | Initialize-Disk –Passthru | New-Partition -DriveLetter D –UseMaximumSize | Format-Volume 確認 この操作を実行しますか? Warning, all data on the volume will be lost! [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y DriveLetter FileSystemLabel FileSystem DriveType HealthStatus SizeRemaining Size ----------- --------------- ---------- --------- ------------ ------------- ---- D NTFS Fixed Healthy 1.36 TB 1.36 TB
※自動でドライブレターを割り振るには「-DriveLetter D」の箇所を「–AssignDriveLetter」に変更します。
※Windows8.1では回復性で双方向ミラーの場合のみreFSファイルシステムを使用可能です。
ボリュームラベルの変更
次の例は、ドライブレターDのボリュームラベルを「Data」に設定します。
PS C:Windowssystem32> Set-Volume -DriveLetter D -NewFileSystemLabel "Data"
以上で記憶域プールで構成したドライブを使用可能になります。
今回は2つの記憶域プールを作成しますので、上記手順を2回実施しました。
完成した状態は以下の通りです。
PCから外付けHDDケースを外した場合
回復性のエラーなどもでず、期待通りうまくいきました。
感想
そもそも記憶域プールは1つの大きなストレージBOXを作るものなので、私の用途では記憶域プールの中に仮想ディスクを2個つくると悲惨な結果になるのは当然でした。
最初から今回のように記憶域プールを2つ作成しておけばよかっただけです。
Windows8とWindows8.1とでは少し仕様も変更されているようで、Windows8では3までしか設定されなかった列数は指定しなくてもディスクの数になっていました。
記憶域プールの容量に対して仮想ディスクで実際に使用可能なディスクサイズが不明であったため、–UseMaximumSizeを使用して作成しました。
シンプロビショニングタイプの場合は可変なのであまり気にすることはないのかもしれません。
プロビショニングタイプを固定にすると記憶域管理画面で使用率がほぼ100%に表示されるのは仕様なのかは不明です。
今回はシングルパリティ構成なので3台以上のドライブが必要になります。また、1台までのドライブの故障に対しては修復可能です。
パリティを書き込むための分、ミラーよりもディスクアクセスは遅くなると思いますが、利用可能サイズは大きくなります。
このあたりの選択は用途次第だと思います。