Common Log File System ( CLFS ) は、カーネル モードとユーザー モードの両方のアプリケーションからアクセスでき、高パフォーマンスのトランザクションログを作成できる汎用ログ サブシステムです。Windows Server 2003 R2で導入され、それ以降のWindowsオペレーティング システムに組み込まれました。CLFS は、データ ログとイベント ログの両方に使用できます。CLFS は、トランザクションをコミットする前にトランザクション状態の変更を保存するため、 TxFとTxRによって使用されます。CLFS から作成されたバイナリ ログ ファイルは、統合された Windows ツールでは表示できません。
概要
CLFS の役割は、他のトランザクション ログ システムと同様に、何らかのアクションに必要な一連の手順を記録し、将来、その手順を正確に再生してトランザクションをセカンダリ ストレージにコミットするか、必要に応じて元に戻すことです。CLFS は、まずログ レコードをメモリ内バッファにマーシャリングし、次にセカンダリ ストレージ( CLFS 用語では安定したメディア) 上のログ ファイルに書き込んで永続的に保存します。データが安定したメディアにフラッシュされるタイミングは組み込みポリシーによって制御されますが、CLFS クライアント アプリケーションはそれをオーバーライドしてフラッシュを強制できます。CLFS では、カスタマイズ可能なログ形式、定義されたポリシーに従ったログの拡張と切り捨て、および複数のクライアント アプリケーションによる同時使用が可能です。CLFS は、ファイル システム上の任意の場所にログ ファイルを格納できます。[1]
CLFS はデバイス ドライバー インターフェイス(DDI)を定義し、これを介して物理ストレージ システム固有のドライバーが CLFS API に接続されます。CLFS ドライバーはARIES回復アルゴリズムを実装します。他のアルゴリズムはカスタム ドライバーを使用してサポートできます。[1]
CLFS は、専用ログと多重ログの両方をサポートしています。専用ログにはログ レコードの 1 つのストリームが含まれますが、多重ログには複数のストリーム (各ストリームは異なるアプリケーション用) が含まれます。多重ログには複数のストリームが含まれますが、ログは 1 回のバッチで順番にストリームにフラッシュされます。CLFS は、ログが実際に生成される前に、ログ レコードのセットに事前にスペースを割り当てることができるため、ストレージ スペース不足が原因で操作が失敗することはありません。[1]
CLFS ストリームのログ レコードは、まずシステム メモリのバッファー内のログ I/O ブロックに配置されます。ブロックは定期的に安定したストレージ デバイスにフラッシュされます。ストレージ デバイスでは、ログにはコンテナーのセットが含まれます。コンテナーは連続的に割り当てられ、それぞれに複数のログ I/O ブロックが含まれます。新しいログ レコードは、現在のセットに追加されます。各レコードは、増加する 32 ビットのシーケンス番号であるログ シーケンス番号(LSN) によって識別されます。LSN とその他のメタデータは、レコード ヘッダーに格納されます。LSN は、コンテナーの識別子、レコードへのオフセット、およびレコードの識別子をエンコードします。この情報は、その後ログ レコードにアクセスするために使用されます。ただし、コンテナー識別子は論理識別子であるため、物理コンテナーにマップする必要があります。マッピングは CLFS 自体によって行われます。[2]
参考文献
- ^ abc 「共通ログ ファイル システムの概要」。MSDN。2018年 1 月 8 日閲覧。
- ^ 「CLFS 安定ストレージ」。MSDN。2018年 1 月 8 日閲覧。
外部リンク
- 共通ログ ファイル システム (Windows SDK)
- 共通ログ ファイル システム (Windows ドライバー キット)
- Vista の共通ログ ファイル システムによる高速かつ柔軟なログ記録
