NTファイルシステム


NTFSは1993年にWindowsNTから採用され、WindowsNTや2000で使われるセキュリティやファイルサイズなどを強化したファイルシステムです。
WinNTの流れをくむWindows XP 以降では、Windows98やMeで用いられたFAT32ファイルシステムも使えますが、標準のファイルシステムはNTFSとなります。

NTFSはMS-DOSとの互換性を気にすることなく新規に開発されただけあって、読み書き速度やディスク利用効率に優れています。ユーザーごとのファイルへのアクセス許可やディスク使用量制限も可能でマルチユーザー環境でも使えます。
また、FAT32ではHDDの空き容量にかかわらず、1ファイル最大4GBまでしか記録できませんが、NTFSでは2TBまで対応しています。

NTFS

ディスクドライブ クラスタサイズ
512MB 迄
1024MB 迄
2048MB 迄
4096MB 迄
8192MB 迄
16384MB 迄
32768MB 迄
32768MB 以上
512 バイト
1KB
2KB
4KB
8KB
16KB
32KB
64KB

ただし、NT3.51 以降では NTFS の標準クラスターサイズは 4KB が上限になります。また、FAT から NTFS Convert した場合、 クラスターサイズは 512 バイトになります。(XP および .NET Server 以降の Convert.exe では、任意のクラスターサイズで Convert 可能です。 )

NTFSでは、ディスク中に含まれるすべてのファイルやフォルダごとに固定長の管理レコードを作成し、これを集中的に管理することで、 ファイル・システムの柔軟性と機能性、信頼性を向上させい ます。この管理レコード群はMFT(MasterFile Table)と呼ばれ、MFTの概要は次の図のようになります。

MFTの構成
MFT(Master File Table)は、ファイルやディレクトリごとに1つないし複数が対応する固定サイズ(通常は1Kbytes)のレコードからなります。このレコードの内部には、ファイル名やタイムスタンプに加え、ファイルの属性が記録されます。特徴的なのは、図の上側のレコードに示すようにファイルのデータ自体も属性の一部として捉え、サイズの小さなもの(通常は750bytes程度かそれ以下)については、MFT中のレコードに直接データを記録することです。MFTレコード内に収まりきらないサイズのファイルについては、図の下側のレコードに示すようにMFT外部のクラスタにこれを書き込み、そのクラスタへのインデックスをMFTレコードに記録しておきます。

このようにMFTは、固定長のレコードからなるテーブルで、NTFSボリューム中に存在するファイルやディレクトリごとに1つ複数のエントリが対応します。レコード・サイズは最小で1Kbytes、最大で4Kbytesですが、通常は1Kbytesになります。新しいファイルやフォルダが作成されると、MFT内のレコードが1つ割り当てられ ます。

MFTには、ファイル名やファイルのタイムスタンプ(作成日時/更新日時/アクセス日時)、アクセス権などの基本情報に加え、ファイルのデータ自身(ファイル本体)も属性の一部として捉え ます。これがNTFSの大きな特徴の1となります。
つまり他の属性データのサイズにもよるが、通常は約750bytes程度までの小さなファイルなら、MFTレコード内に記録されてしまい、この場合、ファイル名などに関する情報と、データ自体を同じ場所から読み出すことが可能なので、ファイル・アクセスは極めて高速にな ます。

NTFSにもWindowsのバージョンごとに違いがあります。Windows NT 4.0のNTFS 1.2とWindows 2000/XP以降のNTFS 3.xは互換性が無く、 Windows NT 4.0上からWindows 2000/XP以降で作成したNTFSボリュームにアクセスするには、Service Pack 4以上を適用する必要があります。 また、2000以降で自身以前のバージョンのNTFSにアクセスするとその時点で自身のバージョンに変換します。

マイクロソフトはNTFS発表当初フラグメンテーションは発生しにくいと主張していたが、FAT32よりは低いもののフラグメンテーションは発生します。 フラグメンテーションの量はアロケーションユニットサイズに反比例し、最も小さなアロケーションユニットサイズ512バイトで最も顕著になります。 Diskeeper CorporationがNTFS用のデフラグメンテーションソフトウエアDiskeeperを開発し、NTFSでもフラグメンテーションが起きる事を公開し、 FATの時と同様にWindowsにはアクセサリとしてDiskeeperのサブセットである「ディスクデフラグ」が標準搭載されています。