マスター ファイル テーブル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

マスターファイルテーブル(Master File Table・MFT)とは、NT File System(NTFS)において、ファイルシステム上に存在するすべてのファイルのエントリを管理するファイルである。MFTには$Mftというファイル名が割り当てられMFT自身もMFT上にエントリが存在する。

メタファイル[編集]

B+木でファイル名とファイル実体への関連付けが行われている。この他、$LogFileトランザクションジャーナルファイルによる、ファイルアクセストランザクションの管理、$Bitmapによるファイルロケーションのビットマップの管理、$BadClusファイルによる不良クラスタマップ等があり、さらにNTFSのバージョンによってはその他の機能を実装した各種ファイルがある(共通の特徴としてメタファイルは全て最初の1文字が$ではじまる。しかし、完全ファイル名がメタファイル実体と結びつけられている為、ユーザーが$で始まるファイルを作成しても良く、そのファイルはメタファイルとは認識されない)。

ファイルシステムの構造[編集]

またトランザクションジャーナルはファイルシステムの一貫性を保証し、不意の障害が発生した場合(突然のシステムダウンや稼動時の欠陥クラスタ発見等)ファイルシステム全体の破綻を招かないよう、常にファイルシステムへの操作が$MFTと$LogFileあるいはその両方に存在し、信頼性を確実なものにしている。ファイルシステムへの操作は$LogFileに次々と書き加えられていくが、$MFTと$LogFileはファイルシステム上に固定的に存在する領域としてカーネルのntfs.sysドライバから管理されている為、ファイルシステムの構造から独立しており、重要なトランザクションのアクセスはファイルシステムの論理層をバイパスしてハードディスクに直接書き込まれ、定期的に$LogFileから$MFTに転記が行われる。

MFTの断片化はパフォーマンスの悪化に繋がるためNTFSは連続した領域をMFT専用として予約している。この領域のことをMFT領域と呼び、アクセスプライオリティ上ユーザーファイルがMFT領域に書き込まれないようになっている。しかし、この規則は絶対的ではなく、ファイルシステム容量が不足してくるとMFT領域にもユーザーファイルを保存する様になる。

MFT領域としてラベルされる領域のサイズはWindowsのバージョンによって異なる。WindowsXP以前まではファイルシステムの12.5%が予約されていたが、WindowsVistaからは200MBをMFT領域として扱う。

後継ファイルシステム[編集]

後継ファイルシステムとして、Microsoft SQL Serverに採用されている論理層を搭載したWinFSの開発が行われていた。このファイルシステムはWindowsVistaから搭載が見込まれていたが、計画は頓挫。現在のところ、Windowsにおける最良のファイルシステムはMFTベースのNTFSである。WindowsXPまではオペレーティングシステムの収納先にFAT32ファイルシステムを選択する事ができたが、WindowsVistaからは標準ではオペレーティングシステムはNTFSにしかインストールできなくなった(あらかじめFAT32やexFATでフォーマットした領域にインストールは可能であるが、マスターファイルテーブルに依存するオペレーティングシステムの保護機能とセキュリティが無効になる)。