treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

記憶域スペースを勉強する

前回<記憶域スペースを使ってみる - treedown’s Report>記憶域スペースを使い始めてみたものの、必要最小限な情報だけ調べたので、もうちょっと勉強してみることにしました。

評価版のWindows Server2022を使って学んだ内容です。前回と重複する内容もありますしWindows Server専用の知識もありますが気にしないようにします。

記憶域スペースとは?

複数のディスクを束ねてストレージをプールすることで、信頼性や速度(あるいはその両方)の向上を実現するソフトウェア上の機能です。
OSの標準機能として提供されますので、記憶域を構成するために(RAIDカードのような)追加のハードウェアを購入する必要もありません。

以前Windowsでは類似する機能としてソフトウェアRAIDという機能が提供されていましたが、近年ソフトウェアRAIDの機能を利用するために必要なダイナミックディスクという機能が"非推奨"に分類されたため、実質的に記憶域スペースがこのソフトウェアRAIDの後継という位置づけになっています。

記憶域スペースで使うファイルシステム

記憶域スペースで使うファイルシステムは従来の「NTFS」の他に、新しい「ReFS」というファイルシステムを使うことができます。
ReFSは「Resilient File System」の略で、NTFSよりも大容量のパーティションを作成できたり、データの保護機能や一ファイルの容量制限がNTFSよりはるかに大きい、といった特長を持っていますが、その反面としてNTFSで利用可能なファイルシステムの機能と互換性がない、という特長があります。

これまでと同じように使いたい場合にはNTFSを選択することが無難ですが、以下の条件のいずれかが当てはまればReFSが必要になります。

  • パーティションの最大サイズが256TBを超える(ReFSの最大は256ZB"ゼタバイト")
  • クラスタサイズを512バイト-64Kバイト以外に指定したい(ReFSでは任意のクラスタサイズに指定可能)
  • 最大ファイルサイズが16TB以上のファイルを扱う(ReFSは16EB"エクサバイト"までサポート)
  • パーティション内の最大ファイル数が43億ファイルを超える(ReFSはこの428億倍程度を許容する)

うーん、いまの小規模システムでは需要はなさそうです。大規模システムのサーバ環境用ですね。

一方でNTFSとの下位互換がない機能は結構あります。(以下がサポートされない機能)

OSをインストールするパーティションはReFSフォーマット不可、またリムーバブルドライブをReFSフォーマットするのは不可、ファイルシステム上でのファイルの暗号化、ファイルシステム上でファイル単位での圧縮、ディスククォータ機能、ハードリンク(シンボリックリンクみたいなあれ)、ファイルのプロパティにある拡張属性の保持、データ重複除去やワークフォルダの機能使用不可

FATからFAT32、さらにexFATやNTFSがファイルシステムの主流になっていったように、そのうちNTFSからReFSに移行していくこともあるかと思いますが、現状ではハードウェアが追いついていないので、ReFSを本記事現在で(ホームユースに毛の生えた小規模環境なら)積極的に採用する動機になる機能はないように思えます。

記憶域スペースはRAIDじゃないのか?

RAIDと何が違うの?というのがまず真っ先に頭の中に出てきた疑問です。なんとなくの解釈ですが、記載してみようと思います。

RAIDは(ハードウェアRAIDなら)RAIDカード(RAIDボードともいう)なる部品がHDD以外に必要になります。HDDを複数束ねる点は両者同じでもRAIDカードがその束ねる役割を果たしているのでハードウェアとしてはHDD以外にRAIDカードへの投資が必要になります。
RAIDカードは安価で性能や信頼性もホドホドの製品もあれば、高価で性能や信頼性に富む製品もあります。

ソフトウェアRAIDは、このRAIDカードをソフトウェア側で代替してRAID機能を提供しています。WindowsなどのOSが提供するソフトウェアRAIDや、マザーボードに内蔵したファームウェアが提供するソフトウェアRAID(一見ハードウェアRAIDに見える)もあります。

Windowsが提供するソフトウェアRAIDは通常(初期設定)のベーシックディスクでなく、ダイナミックディスクを使用する必要がある、という決まりがあり、ダイナミックディスクに設定できないUSB接続(リムーバブルドライブ)のHDDには適用できないという制限があります。

これらRAIDと名のつく規格に沿ってディスクを構成する場合には、「同じディスクを必要台数用意する」とか、「指定するレベルによって冗長性が変化する」とか、「高速化するRAIDもあれば低速になるRAIDもある」といった縛りがあります。

記憶域スペースは、これらのRAIDの縛りより緩い条件で、冗長性を確保したり読み書きを高速化したりといったRAIDに似た性能向上を享受できるようになります。

ただし、Windowsでこれらの処理を実施することになります。ハードウェアRAIDがRAIDカードで代替する処理をOSが実行することでCPUの使用率が向上することになります。ただしソフトウェアRAIDでもこれは同様です。

RAIDにない記憶域スペースの機能=ライトバックキャッシュ

記憶域スペースで興味深い機能が「ライトバックキャッシュ」と呼ばれる機能です。
これは記憶域スペースに所属したHDDを高速化するために、同じ記憶域スペースにSSDを参加させることでSSDを書き込みキャッシュとして利用できるようにする、という機能です。HDDへの書き込みはキャッシュとなったSSDから非同期実行されるため、処理自体は高速に完了しHDDへの実際の書き込みはバックグラウンドで(見えないうちに)実行される、という処理が実行されるようです。(…ようです、というのは使ったことがないので、魅力的な機能だけどどれくらいの効果を発揮してくれるかは未知数、ということです。)

ホットスペアの割り当てが可能

Windows Serverの記憶域スペースではホットスペアの割り当てが可能です。(※たぶんWindows10の記憶域スペースではできない機能)


Windows Serverでは記憶域スペースを作成する処理は「記憶域プールの作成」⇒「記憶域プール上に仮想ディスクの作成」と2ステップで使えるパーティションが用意できます。
記憶域プールの新規作成で所属するHDDを指定する際に上図が表示され、それぞれのHDDの役割を決めることができます。(Windows10では簡素化されているようです。)

Windows10の回復性オプションと違う

Windows Serverの記憶域スペースでは、RAIDレベルともいうべき「回復性」のオプションが増えていました。
四台までの構成だと以下の図のように、

Windows10と同様のオプション「シンプル」「ミラー(双方向ミラー)」「パリティ」の三種類しか選択肢として出てこないのですが、必要なディスクの台数を満たした状態で、「Mirror」を選択すると、次の画面で、

「双方向ミラー」と「3方向ミラー」のいずれにするかが選択可能になります。

同じように「Parity」を選択すると、次の画面で

「デュアルパリティ」が選択できるようになります。

※デュアルパリティ:七台以上のディスクでRAID 6のようなダブルパリティ付きストライプセットを構成するような記憶域のオプション。3方向ミラーのように二台のディスク障害を許容できるようになるのですが、必要なディスク数が多いような…。

記憶域スペースには運用中のディスクの追加が可能

上記の動作確認をしているときに何度も実行したのですが、一度記憶域スペースを作成した状態でディスクを作成したとしても、途中で記憶域プールに物理ディスクを追加することは容易に実行できました。
(※データがない状態で実施していたから、もうちょっと何かしらのハードルはあると思うけど。)

この辺、最初に最大構成を準備して設定後の拡張が難しいRAIDより柔軟性がありそうな印象があります。

今後のWindowsでは、ソフトウェアRAIDでなく、記憶域スペース(記憶域プール)を覚えておこうと思います。(※ただし性能はハードウェアRAIDのほうが上)