多奇 IT 部落格

記錄著多奇數位在工作中對資訊技術的心得筆記

這次技術文章的主題是藉由2015/3/24技術分享會上的PPT,寫成詳細文件,做一個學習的紀錄。

 

What is N‧T‧F‧S?

  • New Technology-最早是Windows NT預設的檔案系統,故命名為「NT」
  • File System(檔案系統)-定義電腦如何找到檔案的方式
    e.g. 我怎麼知道某個txt檔要讀取硬碟上的哪個位置?
    可以想像有一個「容器」,內部紀錄各檔案的名稱及存放位置,當電腦在存取檔案時即會先到這個容器搜尋。

接著要說明典型的檔案系統-FAT(File Allocation Table):

image

右上的Table就是FAT的核心,裡面會記錄各個檔案的起始位置,

例如:moo這個檔案的起始位置是5,我們在下面的對照表找到第5的位置,

這個位置會再紀錄檔案下一個存放的位置12,

接著到12位置又會指向下一個位置1,

最後在1的位置記錄著EOF(End of File),表示這是檔案的結尾。


所以檔案系統不外乎就是有一個參照表,指向我要的真實檔案。

NTFS的概念其實也是如此。

NTFS磁區包含四個部分:

image

主檔案表(Master File Table):是NTFS的核心。前16個檔是系統檔,定義了MFT本身紀錄了些什麼。

image

 

工作管理員->perfomance->Open Resource Monitor可以觀察目前這些檔佔用資源的狀況。

image

MFT Zone:存放於NTFS所預留的硬碟位置及空間(避免受到其他檔案資料干擾),名為MFT zone。

資料區域:user可自由使用的區域。

主資料表備份:MFT Mirror,當MFT損毀時可以讀取此處資料做復原。

(其中MFT+MFT Zone會佔磁區的12%;其他佔88%。)


※叢集(Cluster)概念:

磁碟可用空間中,紀錄一個檔案的最小單位

NTFS叢集大小的範圍在512 Bytes ~ 64 KBytes

(一般都會使用預設的4 KBytes)

下表是cluster size預設大小:

磁碟區大小

Windows NT 3.51

Windows NT 4.0

Windows 2000↑

7 MB – 512 MB

512 個位元組

4 KB

4 KB

512 MB – 1 GB

1 KB

4 KB

4 KB

1 GB – 2 GB

2 KB

4 KB

4 KB

2 GB – 2 TB

4 KB

4 KB

4 KB

2 TB – 16 TB

不支援 *

不支援 *

4 KB

16 TB – 32 TB

不支援 *

不支援 *

8 KB

32 TB – 64 TB

不支援 *

不支援 *

16 KB

64 TB – 128 TB

不支援 *

不支援 *

32 KB

128 TB – 256 TB

不支援 *

不支援 *

64 KB

> 256 TB

不支援

不支援

不支援

※叢集和IT人員有什麼關係?

當IT人員在格式化硬碟時,「配置單位大小」就是cluster size,這邊要設定多少比較好?

image

若硬碟存取的都是「大檔案」

  • 使用大叢集
  • 效能較好

e.g.若影片檔案大小約1G,使用4KB的叢集數量 > 使用64KB的叢集數量,

此時硬碟若使用4KB叢集,找檔案的次數會暴增,因此大檔案建議使用大叢集。

 

若硬碟存取的都是「小檔案」

  • 使用小叢集
  • 硬碟空間利用率較高

e.g. 若目前有一個txt檔為8KB,

此時硬碟若使用64KB叢集,每新增一個txt檔就會占用64KB的空間,相當浪費。

NTFS特性:

  • Transaction-based
    • 每新刪修一次檔案或資料夾,即會產生一個transaction
    • transaction的好處是可以重做(Redo)之前的動作
    • 當重做(Redo)時發生錯誤,系統會禁止你重做
  • File and folder permissions
    • 針對每個檔案或資料夾都可以做個別的權限控管
    • Basic permissions:
image
    • Advanced permissions:

image

※進階安全性設定可以針對每一個user/group做細部的權限設定。

 

image

※Auditing為稽核的意思,當啟用稽核功能,可以在事件檢視器內追蹤這個檔案或資料夾的每個動作。當其他人誤改誤刪了重要的檔案,就可以利用這個功能來揪出始作俑者!

 

image※可以查詢出目前user/group針對這個檔案或資料夾擁有的權限細項為何。

  • Disk quotas - 磁碟配額
    • 針對單一使用者限制磁碟的使用量。
    • 以檔案和資料夾的owner來計算量的總和。

image

※NTFS磁碟槽按右鍵->內容->配額,可開啟磁碟配額功能。

 

image

※可在Quota Entries(配額項目)  中查看目前各個使用者的磁碟空間使用狀況。

  • Reparse points (used to link files) -進入點
    • Hard Links
      • 透過MFT上的磁區來對應資料,所以不能跨磁區。
    • Soft Links
      • Shortcut
        • 一般常見的「捷徑」
      • Junctions
        • 主要提供目錄(folder)的連結,可跨磁區
        • 一般用在磁碟空間不足時,可將C:的資料夾搬到D:,並做junctions來連結
      • Symbolic Links
        • 和junctions是一樣的,差別在於可以連結檔案(file)還有連結網路上的資源

image

  • Sparse file support

image ※Sparse file中文翻作「疏鬆檔案」,當檔案被標示成「sparse」,NTFS就不會分配空間給「0」使用,檔案大小實際上會去掉0的部分。

  • Compression
    • 使用演算法壓縮檔案或資料夾、磁區:例如C:有60G只使用了10G,可以利用壓縮把磁碟空間騰出來
  • Encryption

image※NTFS可使用Encrypted File System(EFS)加密檔案系統功能

    • 檔案加密:plain text(明文)經過對稱式金鑰加密後變成加密檔,而系統也有擁有這把對稱金鑰,再加入使用者的公開金鑰就變成了$EFS,$EFS加上加密檔就變成了我的完整加密檔案。
    • 檔案解密:將$EFS與加密檔拆開,$EFS加上使用者的私密金鑰就成了一剛開始的對稱金鑰,擁有這把鑰匙就可以拿來解加密檔,成為明文。
      • 使用者感受不到加密前後差別
      • NTFS才可加密,把檔案移到FAT32時會解密
      • 系統檔、systemroot無法加密
      • FEK金鑰憑證必須妥善保存


 

  • Alternate data streams
    • 中文稱作「附加資料流」,當初微軟設計ADS出來其實是要當作metadata使用,但幾乎沒有任何的應用程式會使用到ADS
    • 人人都可以看到的檔案裡,附上一個或多個檔案
    • 被附加的檔案無法被看到,也不會改變原始大小
    • 一般的使用者很難察覺
    • 主要使用者:駭客!

NTFS優缺點

  • Pros:
    • 復原檔案
    • 安全性
    • 磁碟配額
    • 檔案位置應用
    • 疏鬆檔案
    • 壓縮檔案、磁碟空間
  • Cons:
    • 高空間消耗
    • 命名限制(特殊字元限制),且無法辨別大小寫
    • 磁碟區最小值大約是8MB
    • Windows支援的叢集數必須大於127個
    • 8MB/64KB=128
    • Windows Me/98/95無法存取NTFS磁區(通用性較差)

參考資料

留言與評論


本篇文章的留言功能已關閉!