Windows や MS-DOS など Microsoft社製の OS でハードディスクなどのファイルを管理するシステムとして FAT や NTFS があります。
一般的には Windows9X や MS-DOS では FAT が、WindowsNT,2000,Xp では NTFS が利用されています。
FAT とは ( File Allocation Table ) の略でマイクロソフト社が開発したファイルシステムです。
本来 FAT とは管理領域そのものを指すのですが、今ではこの管理領域を用いたファイルシステム全体をを FAT と呼んでいます。
FAT は MS-DOS の管理システムとして採用され、その後広く利用されるようになりました。
FAT では、ディスクを クラスタ と呼ばれる 論理単位 に分割し、データのサイズに応じてこのクラスタを 1個 ないし 複数個
割り当てることでファイルを構成します。
このとき、あるファイルを構成しているのはどのクラスタか、またクラスタの使用/未使用といった情報を FAT と呼ばれる管理領域 に
記録して管理します。ゆえにディスクサイズが大きくなると通常はそれに従ってクラスタ数も増えるので必要な FAT領域 も大きくなります。
この時 1クラスタのサイズを大きくすることで総クラスタ数を増やすことなく、より大きなサイズのディスク管理が可能となります。
しかしディスクはクラスタ単位で管理されていますので、わずか 1byteのファイルでも 1クラスタが消費されてしまいます。
従ってクラスタサイズをあまり大きくすると効率的なディスクの利用ができなくなってしまいます。
※ 1つのファイルを構成するクラスタは連続している必要はありません。しかし 1つのファイルを構成するクラスタがディスク中に
分散してしまうとファイルへのアクセスに不具合が生じる ファイルの断片化 という現象が生じます。
FAT は初期の MS-DOS に採用されて以来、使用される OS に沿って進化してきました。
初期の MS-DOS で使われた FAT12 はディスクを 2の12乗( =4,096 )個のクラスタに分割し、32Mbytes までのディスクが管理できます。
MS-DOS 3.x 以降で使われた FAT16 はディスクを 2の16乗( =65,536 )個のクラスタに分割し、2Gbytes までのディスクが管理できます。
Win95のOSR2 以降で使われている FAT32 はディスクを 2の32乗( =約43億 )個のクラスタに分割し、2Tbytes までのディスクが管理できます。
※ フロッピーディスクではファイルシステムとして現在でも FAT12 が使用されています。
NTFS とは ( NT File System ) の略で、マイクロソフト社が WindowsNT系の OS のために開発したファイルシステムです。
NTFS は WindowsNT だけでなく、その後継である Windows2000や WindowsXp の標準ファイルシステムとして採用されており
上述した FAT と比較して信頼性や機能性、安定性が向上しています。
◇ NTFS の主な特徴 ◇
● 大容量化のサポート
NTFS では 1ボリューム当たりの最大値はパフォーマンスの関係上 2Tbytes までが推奨されています。
また 1ファイル当たりの最大値はボリュームの最大値まで利用可能になりました。
理論的には 1ボリューム当たりの最大値は 16エクサ(10の18乗)bytes まで設定が可能です。
ちなみに FAT32 では 1ファイル当たりの最大値は 2Gbytes です。
● ジャーナリングファイルシステム
ファイルの作成・更新中に突然の電源遮断などの障害が発生した場合には、ファイルシステムへ行なった処理のログ
( トランザクションログ )に基づいてその処理を元に戻し、ファイルシステムに不整合が起こらないようにしています。
勘違いが多いようですがジャーナリング機能は、作成・更新中のデータが失われるのを防ぐのではなく
あくまでもファイルシステムの不整合が起こらないようにするのが目的です。
● B+ツリー構造による検索の高速化
FAT では 1つのディレクトリにファイルエントリが集中するとそれに比例してアクセス時間が増加します。
しかし NTFS ではファイル管理に B+ツリー構造を使用しているので大量のファイルが存在しても検索やアクセスが高速です。
● セキュリティの向上
NTFS では、各ファイルやディレクトリごとに ACL( Access Control List ) によるアクセス権の設定や監視の設定ができます。
● ディスククォータ機能による最大使用量の設定
NTFS ではファイルやディレクトリにそれぞれ所有者が設定できます。
この機能を利用して Windows2000 の NTFS では各ユーザごとのディスクの使用量の上限を設定し、
設定されたサイズ以上の利用を制限することができます。
● 圧縮機能
ファイルやフォルダ、ボリューム全体の内容を圧縮して、ディスクの容量を見かけ上増やすことができます。
また圧縮は個々のファイルやフォルダごとに設定できるので、ユーザーや目的に応じて適用することができます。
● 暗号化機能
NTFS ではファイルやフォルダを暗号化することができます。
また Windows2000 の NTFS の EFS(暗号化ファイルシステム) ではファイルの内容が記録されているディスク上の
物理セクタのデータ自体を暗号化することでディスクの物理的なデータを読み出すことができたとしても、元のファイルの内容を
取り出せないようになっています。
ただしこの暗号化機能はファイルの圧縮機能と併用することはできずどちらか一方しか選択できません。
● 再解析ポイント機能
Windows2000 の NTFS で採用された再解析ポイントは、NTFS の新しいファイル システム オブジェクトです。
再解析ポイントは、ユーザー制御データが含まれた定義可能属性に基づいています。
再解析ポイントは、NTFS ディレクトリ接続、リモート記憶域、およびその他の機能を実装するために使用します。
● ボリュームマウントポイント
ボリュームマウントポイントは Windows2000 の NTFS で採用されました。
ボリュームマウントポイントでは、新しいドライブ文字のルートではなく、既存のフォルダにボリュームをマウントできます。
空の NTFS ディレクトリ用のボリュームマウントポイントを指定することで、管理者はドライブ文字を追加することなく、新しい
ボリュームを名前空間に接合することができます。ボリュームマウントポイントは、デバイスが追加されたり、マシンから
取り外されたりした場合など、システムの変更が発生した場合でも、信頼性があります。
● スパースファイルのサポート
スパースファイルのサポートは Windows2000 の NTFS で採用されました。
スパースファイルとは、大量のデータを含まない巨大なファイルです。
スパースファイル機能を使用すると、ファイル内の 0以外のデータが書き込まれた部分のみにドライブの領域が割り当てられます。
このためアプリケーションは、ファイルシステムが渡す、大量の 0 のストリームの処理を行わなくて済みます。
また、スパースデータを含み巨大なサイズになる可能性のあるファイルも、効果的な方法でコピーまたは移動することができます。
◇ NTFS の弱点・欠点 ◇
NTFS は NT系OS のために開発されたものである為、Windows9X系・Macintosh・UNIX系からの NTFS ファイルシステムへの
アクセスは著しい制限を受けます。つまり通常の方法では NTFS 以外のファイルシステムで起動している OS からは NTFS 上の
ファイルは見えないということになります。
このことは NTFS 上で動作している Windows が起動しなくなったときに容易にデータの退避ができないということであり Windows
以外に NTFS 上のファイルへのアクセス手段を持たないと最悪の場合データを失う恐れがあります。