NTFS 如何為其主要檔案資料表保留空間 (MFT)
本文說明 NTFS 如何為其主要檔案數據表 (MFT) 保留空間。
原始 KB 編號: 174619
摘要
NTFS 檔案系統的核心包含名為主要檔案數據表 (MFT) 的檔案。 NTFS 磁碟區上每個檔案的 MFT 中至少有一個專案,包括 MFT 本身。
因為重組NTFS磁碟區的公用程式無法移動MFT專案,而且因為MFT過多的分散可能會影響效能,所以NTFS會保留MFT的空間,以盡可能保持MFT的連續性。
在 Windows 中,重組公用程式會重組 MFT。
重組公用程式
MFT 上的重組作業會將 MFT 檔案合併為 1,並防止它儲存在磁碟上未循序的多個位置。 在此作業類別中,MFT 檔案會比較循序。 不過,正是 MFT 檔案在重組作業之前的大小。
如果磁碟區曾經有許多已刪除的檔案,MFT 可能會太大。 已刪除的檔案會導致 MFT 中的內部漏洞。 這些漏洞是檔案未使用的重要區域。 無法回收這個空間。 在即時NTFS磁碟區上,這至少是正確的。
其他相關資訊
NTFS 會使用 MFT 專案來定義其對應的檔案。 檔案的所有相關信息,包括其大小、時間和日期戳記、許可權和數據內容都會儲存在 MFT 專案或 MFT 外部的空間中,但 MFT 專案所描述。
(MFT 外部的目錄專案也包含一些有關檔案的備援資訊。但是,全面討論NTFS上的所有結構已超出本文的範圍。
當檔案新增至NTFS磁碟區時,MFT 中會新增更多專案,因此MFT會增加大小。 從 NTFS 磁碟區中刪除檔案時,其 MFT 專案會標示為可用且可重複使用,但 MFT 不會壓縮。 因此,這些專案所使用的空間不會從磁碟回收。
由於 MFT 對 NTFS 的重要性,以及此檔案高度分散時對效能的可能影響,NTFS 會特別努力讓此檔案保持連續。 NTFS 會保留 12.5% 的磁碟區,以供 MFT 獨佔使用,除非剩餘的磁碟區已用到為止。 因此,除非先配置所有其他空間,否則不會從這個 MFT 區域配置檔案和目錄的空間。
注意
您可以變更 NtfsMFTZoneReservation 登錄機碼,以增加 Windows 中的磁碟區。 如需 MFT 的詳細資訊,請參閱維護 Windows 2000 尖峰效能透過重組的磁碟重組程式一節中的重要元素。
視平均檔案大小和其他變數而定,保留的 MFT 區域或磁碟上未保留的空間可能會用到另一個磁碟,因為磁碟會填滿容量。
具有少量相對大型檔案的磁碟區會先耗盡未保留的空間,而大量相對較小的檔案磁碟區會先耗盡 MFT 區域空間。 不論是哪一種情況,當某個區域或其他區域已滿時,MFT 的片段就會開始發生。 如果未保留的空間已滿,則使用者檔案和目錄的空間會開始從 MFT 區域配置,與 MFT 競爭以進行配置。 如果 MFT 區域已滿,則會從磁碟的其餘部分配置新的 MFT 項目空間,再次與其他檔案競爭。
新的登錄參數可以增加NTFS為其主要檔案數據表保留的磁碟區百分比。 NtfsMftZoneReservation 是REG_DWORD值,可接受介於 1 到 4 之間的值,其中 1 對應到最小 MFT 區域大小,4 對應到最大值。 如果未指定參數或提供無效的值,則NTFS會針對此參數使用預設值1。 對應至每個設定的確切比率會取消記載,因為它們不是標準化的,而且未來版本可能會變更。 若要知道哪些設定最適合您的環境,可能需要試驗不同的值。
若要判斷 Windows 電腦上的 MFT 目前大小,請在 NTFS 磁碟區上輸入 dir /a $mft
命令。
若要判斷 Windows 電腦上的 MFT 目前大小,請使用磁碟重組器來分析 NTFS 磁碟驅動器,然後按兩下 [ 檢視報表]。 這會顯示磁碟驅動器統計數據,包括目前的MFT大小和片段數目。
磁碟重組器會針對所謂的系統檔案和NTFS格式化磁碟區顯示綠色,這隻是MFT的組合,pagefile.sys(如果此磁碟區上有一個),以及所謂的「MFT區域」或 MFT 擴充保留空間。 重組報告只會顯示頁面檔與 MFT 的相關信息;它不會提及 MFT 區域,因為它不會影響磁碟使用率或容量。
MFT 區域不會從用於使用者數據檔的可用(可用)磁碟驅動器空間中減去,而只是最後使用的空間。 例如,當 MFT 需要增加大小時,您會先從 MFT 區域取得新的檔案和目錄,進而減少 MFT 片段並優化 MFT 效能。
預設 MFT 區域會在掛接磁碟區時,由Ntfs.sys計算和保留,並且以磁碟區大小為基礎。 您可以透過下列記錄的登錄專案來增加 MFT 區域,但無法使預設 MFT 區域小於Ntfs.sys所計算的內容。 增加 MFT 區域不會以使用者可用於資料檔的任何方式減少磁碟空間。
注意
dir 命令傳回的結果可能不是目前的。 dir 命令所報告的大小可能會反映快取的數據,以反映系統在有序關機後啟動時 MFT 的大小。
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為增加保護起見,請先備份登錄,再進行修改。 然後,如果發生問題,您就可以還原登錄。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
若要新增此值,請執行下列步驟:
執行註冊表編輯器 (Regedt32.exe),然後移至下列子機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
從 [ 編輯] 功能表中,按兩下 [ 新增值]。
在對話框中輸入下列資訊:
- 數值名稱: NtfsMftZoneReservation
- 數據類型:REG_DWORD
- 資料:(有效範圍為 1-4)
結束註冊表編輯器,然後重新啟動計算機。
注意
這是運行時間參數,不會影響磁碟區的實際格式。 相反地,它會影響NTFS在指定系統上配置空間的方式。 因此,若要完全有效,參數必須在磁碟區格式化並在整個磁碟區的生命週期內生效。 如果登錄參數向下調整或移除,MFT 區域將會相應減少,但這不會影響已配置及使用的 MFT 空間。