iT邦幫忙

DAY 15
6

檔案系統的設計與效能系列 第 15

檔案系統的設計與效能 - NTFS

NTFS(Windows NT file system)是支援Journaling與Attributes功能的64 bit檔案系統。
NTFS(Windows NT file system)是支援JournalingAttributes功能的64 bit檔案系統。NTFS的主要資料結構是MFT(Master File Table),而MFT他本身就是以檔案的方式來紀錄,所以可以很容易的增加,使得NTFS更有彈性。每個MFT的欄位都指向檔案以及存取這個檔案所有資訊。NTFS的i-node紀錄的是檔案的所有Attributes,而且是以檔案的形式來紀錄,所以如果某些Attributes太多而無法儲存在單一 i-node時,可以輕易的以新增檔案的方式來增加Attributes。

NTFS 的Metadata包括了所有檔案必要資訊的欄位,像是MFT、Attributes、根目錄、Bitmap、開機資料、損壞的區塊資料等等。這些 Metadata也是以檔案的形式來紀錄,所以一樣具備成長的彈性。NTFS的目錄設計採用的是B+Tree資料結構,將檔案名稱依據字母的順序排列,以增加搜尋時的速度。

NTFS 也有Journaling的設計,他採用write-ahead logging的技術來進行。其邏輯是:在真正寫入檔案的的block到buffer之前,先將要進行的變更動作寫入到log中,當寫入動作完成,NTFS會再寫入一個checkpoint紀錄,代表這個寫入動作成功沒有問題。Journaling更動的時機包括:檔案的建立、刪除、更名、以及更新檔案資訊時。

NTFS也提供資料壓縮的技術,可以減低空間的消耗。壓縮的方式有兩類,一是針對大範圍都是0的資料,會直接忽略掉這些block而不需要真正寫入0;另一種是將16個檔案block劃分為1個chunk,再針對這個chunk來壓縮。

系列文章


上一篇
檔案系統的設計與效能 - FAT
下一篇
檔案系統的設計與效能 - FFS/UFS
系列文
檔案系統的設計與效能32

尚未有邦友留言

立即登入留言