全3901文字

 Windowsの内部構造を詳細に解き明かす定番書籍「インサイドWindows」。1992年の初版発行以来(初版の訳書は1993年発行)、Windowsに接するすべてのITエンジニアのバイブルとして永く読み継がれてきました。最新刊の第7版は、2017年5月に上の原書が発行され(訳書の発行は2018年5月、山内和朗訳)、約4年の歳月を経て2021年10月に下の原書が発行されました(訳書の発行は2022年9月、山内訳)。

 第7版完結を機に、「インサイドWindows」の読みどころを、上(第1章~第7章)と下(第8章~第12章)から抜粋してお届けします。今回は第11章(下)からの抜粋で、新しいファイルシステム「Resilient File System(ReFS)」について学びましょう。(日経BOOKSユニット第2編集部)

第11章 キャッシュとファイルシステム

 キャッシュマネージャーは、一連のカーネルモード関数とシステムスレッドであり、メモリマネージャーと連携してWindowsのファイルシステムドライバー(ローカルとネットワークの両方)のすべてに対してデータキャッシュを提供します。この章では、キャッシュマネージャーがどのように機能するのか、その鍵となる内部のデータ構造体と関数を含めて説明します。

 また、システムの初期化時にどのようにサイズ設定されるのか、オペレーティングシステムの他の要素とどのようにやり取りするのか、およびパフォーマンスカウンターを介してそのアクティビティをどのように監視できるのかを説明します。さらに、ファイルキャッシュとDAX(直接アクセス)ボリュームに影響を与えるWindowsのCreateFile関数の5つのフラグについても説明します。ファイルキャッシュとDAXボリュームは、特定のI/Oの種類に対してキャッシュマネージャーをバイパスするメモリマップディスク(メモリにマップされたディスク)です。

 キャッシュマネージャーによって公開されるサービスは、すべてのWindowsファイルシステムドライバーによって使用されます。これらのドライバーは、サービスと厳密に連携して、ディスクI/Oを可能な限り高速に管理できるようにします。

 この章では、Windowsでサポートされているさまざまなファイルシステムについて説明します。特に、NTFSとReFS(最もよく使用される2つのファイルシステム)を詳細に分析します。また、メモリマネージャーやキャッシュマネージャーなどの他のシステムコンポーネントとのやり取りを含む、内部アーキテクチャと基本動作について説明します。

11.16 Resilient File System(ReFS)

 Windows Server 2012 R2(*1)のリリースでは、新しい高度なファイルシステムである「Resilient File System(ReFS)」が導入されました。このファイルシステムは、「記憶域スペース(Storage Spaces)」と呼ばれる新しい記憶域アーキテクチャの一部であり、他の機能の中でも、ソリッドステートドライブ(SSD)と従来の回転式ディスクで構成される階層型仮想ボリュームの作成を可能にします(記憶域スペースと階層型記憶域の概要については、この章で後述します)。

(*1)訳注:記憶域スペースとReFSは、Windows Server 2012で初めて実装されましたが(ReFSバージョン1.1、ベータ版という位置付け)、Minstoreの改良や、階層型記憶域を含む多くのサポートはWindows Server 2012 R2(ReFSバージョン1.2)以降で行われています。本書の内容はWindows Server 2012 R2以降のReFSに基づいています。

 ReFSは、「新たに書き込み(write-to-new)」方式のファイルシステムであり、ファイルシステムのメタデータがその場で更新されることはなく、更新されたメタデータが新しい場所に書き込まれ、以前のメタデータが削除済みとマークされます。この特性は重要であり、データの整合性を提供する機能の1つになっています。

 ReFSはもともと、次のことを目標としていました。

  1. 自己復旧、オンラインボリュームチェックと修復(ファイルシステムの破損を理由とした利用不可を限りなくゼロに近づける)、およびライトスルーのサポート(ライトスルーについては、この章で説明します)
  2. すべてのユーザーデータ(ハードウェアおよびソフトウェア)に対するデータの整合性
  3. 効率的かつ高速なファイルスナップショット(ブロックの複製)
  4. 非常に大きなボリューム(エクサバイトのサイズ)とファイルのサポート
  5. データとメタデータの自動階層化、SMR(シングル磁気記録方式)および将来のソリッドステートドライブ(SSD)のサポート