Windows11で記憶域プールに再挑戦
始めに
ファイルサーバーをWindows 11 Pro 25H2 に移行したことにより、ストレージ構成を記憶域プールとReFSとSATA SSDを使って、高速且つ安全に運用する事にしました。
SATA SSDはストレージとして使うよりも記憶域プールでジャーナルで使う事により、ライトバックキャッシュとしてHDDへの書き込みのバッファにすることで、ファイルの書き込み速度を向上できることは分かっていました。ただ、かつて挑戦したときはWindowsクライアントOSでの構成の仕方が分かりづらかった事もあって断念していました。AIの普及により手順の確認が容易になったことで、改めて記憶域プールにジャーナルとして組み込むことにしました。
HDDは3TBが2台、4TBが2台ですが、これを一つのプールに入れて、ミラーで構成することで連続した一つのドライブとして利用できます。
さらにReFS(開発者ドライブ)を使うことにより、ビット欠損を防ぐことが可能になり、安全性の高いバックアップとなります。
また、メインPC(AI画像生成)、サブPC1(AI画像拡大)と計算力が分散しているので、それらの作業をファイルサーバーで仲介し、共有フォルダをネットワークドライブを割り当てた方がストレージ資産の統合と管理コストの削減が図れます。
ただしメインPC上のデータを正、ファイルサーバー上のバックアップデータを副として管理します。
ハードウェア構成
| Item | Discrption |
|---|---|
| OS | Windows11 Pro 25H2 |
| CPU | AMD Ryzen 7 3700X |
| M/B | ASUS ROG STRIX X570-F GAMING (AMD X570) |
| RAM | G.SKILL F4-3600C18D-16GTZN 16GB x2 (DDR4-3600CL18 8GB*4) |
| GPU | GigabyteGV-N1050OC-4GL (GeForce GTX 1050Ti 4GB) |
| NVMe | WD BLACK SN750 250GB (WDS250G3X0C-EC) |
| SATA SSD | WD BLUE 1TB |
| SATA SSD | WD BLUE 1TB |
| HDD | 東芝 3.5" HDD 4TB(CMR) (MN08ADA400E /JP) |
| HDD | 東芝 3.5" HDD 4TB(CMR) (MN08ADA400E /JP) |
| HDD | 東芝 3.5" HDD 3TB (DT01ACA300) |
| HDD | 東芝 3.5" HDD 3TB (DT01ACA300) |
| NIC2 | RealTek PCIe 2.5GbE |
記憶域プールの構築
以下の作業を「ターミナル(管理者)」(PowerShell)で行います。
全ディスクを変数に格納
まず、プールに含める全てのディスク(HDD 4本、SSD 2本)を一括で取得します。
$allDisks = Get-PhysicalDisk -CanPool $trueストレージプールの作成
New-StoragePool -FriendlyName "ArchiveMaster" ` -StorageSubsystemFriendlyName "Windows Storage*" ` -PhysicalDisks $allDisksSSD 2本を「Journal(キャッシュ用)」に指定
これにより、Windowsは2本のSSDをペアとして扱い、キャッシュ自体のミラーリング(冗長化)を自動で行います。
Get-StoragePool -FriendlyName "ArchiveMaster" | Get-PhysicalDisk | Where-Object { $_.MediaType -eq "SSD" } | Set-PhysicalDisk -Usage Journal仮想ディスクの作成(ミラー + 128GBキャッシュ)
ここで -NumberOfColumns 2 を指定するのがミソです。3TB×2と4TB×2の合計4本のHDDを「2列のミラー」として効率よく配置します。
New-VirtualDisk -StoragePoolFriendlyName "ArchiveMaster" ` -FriendlyName "Archive_Volume" ` -ResiliencySettingName Mirror ` -NumberOfDataCopies 2 ` -NumberOfColumns 2 ` -ProvisioningType Fixed ` -WriteCacheSize 128GB ` -UseMaximumSize開発者ドライブの設定
「設定」→「システム」→「ストレージ」→「ストレージの詳細設定」→「ディスクとボリューム」に進み、追加された「記憶域プール」を選択し、「GPT」に設定します。次に開発者ドライブを作成します。
ReFSの「整合性」を有効にする
# Dドライブ(または割り当てた文字)の整合性ストリームを有効化 Set-FileIntegrity D: -Enable $True
終わりに
記憶域プールにジャーナルを設定する場合には、SATA SSDが2台必要になります。これはかなり古い資料で見た覚えがあるのですが、SATA SSDも記憶域プールの安全性を考慮してミラーリングを必須として設計していたはずです。エンタープライズ向けに記憶域プールが設計されているため、書き込み量が多くSSDの消耗が早くなることを考慮していたと思います。
連続した大量書き込みではキャッシュをすぐに使い切り、結局はHDDの素の速度が記憶域の速度に一番影響がありますが、キャッシュに収まるような書き込みにはジャーナルがよく利きます。