ext3

来自维基百科,自由的百科全书

第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日誌文件系統,常用於Linux操作系統。它是很多Linux發行版的默認文件系統史提芬·崔迪在1999年2月的內核郵件列表[2]中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合併到內核主線中[3]

事实速览 開發者, 全稱 ...
ext3
開發者史提芬·崔迪
全稱第三代擴展文件系統
發布2001年11月 (Linux 2.4.15)
分區標識0x83(MBR
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7(GPT
結構
目錄內容表,樹
文件分配位圖(空閒區域),表(元數據)
壞塊
限制
最大文件尺寸16GiB – 2TiB
最大文件數量可變[1]
最長文件名255字節
最大卷容量4TiB – 32TiB
文件名字符集除NULL和'/'外的所有字節
功能
日期記錄修改(mtime),屬性修改(ctime),訪問(atime)
日期範圍1901年12月14日-2038年1月18日
日期分辨率1秒
岔流
屬性No-atime, append-only, synchronous-write, no-dump, h-tree (directory), immutable, journal, secure-delete, top (directory), allow-undelete
文件系統權限Unix權限,ACLs和arbitrary security attributes(Linux 2.6 and later)
透明壓縮
透明加密否(塊設備級上提供)
操作系統支持LinuxBSDWindows(通過IFSExt2Fsd
关闭

優勢

雖然它的性能(速度)不如它的競爭對手,例如JFS2ReiserFSXFS,但它具有重要的優勢,那就是它允許在適當的時候從流行的ext2文件系統升級,而無需備份和恢復數據;除此之外,它還具有比ReiserFSXFS更低的的CPU使用率[1]頁面存檔備份,存於網際網路檔案館) 。

ext3文件系統增加的超越其前代的包括:

  • 日誌
  • 位目錄跨越多個塊提供基於樹的目錄索引
  • 在線系統增長

如果沒有這些,ext3文件系統也同時是個有效的ext2文件系統。這樣,經過良好測試的、成熟的文件系統工具來管理和修復ext2文件系統工具,可以無需大的變動,就應用於ext3文件系統。ext2和ext3文件系統共享相同的工具集,帶有fsck工具的e2fsprogs。這種緊密的聯繫也將兩種文件系統之間進行轉換(包括升級到ext3和降級為ext2)變得非常容易。

Linux實現的ext3文件系統,包括3個級別的日誌:

  • 日記:(慢,但風險小)元數據和文件內容都在提交到主文件系統前寫入。這樣將提高穩定性但性能上有所損失,因為所有的數據都要寫入2次。如果沒有在/etc/fstab中加上這個選項,修改中的檔案遇上kernel panic或突然斷電的時候就可能發生損毀的情況,當然,這還是得看軟體是怎麼寫入檔案的。
  • 順序:(中速,中等風險)順序和寫回類似,但在對應的元數據標記為提交前,強制寫入文件內容。這是很多Linux發行版默認的方式。
  • 回寫:(快,但風險最大;在某種感覺上和ext2相當)這邊會寫入日誌的只有metadata而已,檔案的內容並不會跟著寫入日誌裡面。這樣的作法讓整個效率變快了不少,不過也同樣造成了檔案寫入時不按順序的結果。舉例來說,檔案在附加變大的同時發生了crash的情況,就可能造成下次掛載時檔案後面就附加一堆垃圾數據的情況。

儘管ext3缺少一些當代文件系統的特點,像是動態的inode、樹狀的資料儲放結構等等,都是被視作ext3的缺點之一,不過在這些特點之外,ext3在文件系統回復上面就有了很好的表現。跟樹狀結構的文件系統相比,在ext3上面metadata是放在固定的位置,而且在寫入的同時會重複寫入的一些資料讓ext2/3在面臨資料損毀的情況下還有挽回的機會。

劣勢

功能

當初ext3的設計目標就是提供對於ext2的高度相容,很多磁盤上的結構和都和ext2很相似。也因為這樣,ext3缺乏很多最新設計中的功能,例如動態分配inode和可變塊大小(frags或tails)。

ext3文件系統在被掛載為寫入的時候,是不能進行fsck的。ext3檔案系統的傾倒作業在這個檔案系統還是掛載中的時候執行可能會造成資料的損壞。

ext3不支持在其他文件系統上已經支持(例如:JFS2ext4)的擴展

磁盤碎片

在文件系統級別上,沒有在線的ext3磁盤碎片整理工具。

離線的ext2磁盤碎片整理工具e2defrag,可以用於ext3文件系統,但前提是在使用前要將文件系統轉換回ext2。但依賴於功能位在文件系統中打開,e2defrag可能會毀滅數據;目前仍然不知道如何處理新的ext3功能。[4]

有一些用戶使用的磁盤碎片整理工具,例如Shake[2]頁面存檔備份,存於網際網路檔案館) 和defrag[3]頁面存檔備份,存於網際網路檔案館),這些工具通過複製文件來實現新分配的文件不存在碎片。但這只在文件系統相當空的情況下有效,並且該文件系統不經常出現碎片。目前沒有真正的用於ext3的磁盤碎片整理工具[4]頁面存檔備份,存於網際網路檔案館) 。

事實上,磁盤碎片整理完全是一種人們在單用戶單進程環境下(如DOS/早期Windows)工作時養成的舊習。

在多任務環境下,磁盤碎片的出現根本是不可避免的,而且碎片化的速度非常之快。操作系統的任務不是不負責任地給用戶提供一個整理工具,而是應該在系統設計的時候消除碎片化對性能的傷害。比如Linux塊設備操作都要經過一個I/O調度層,通過在調度層中使用帶有電梯算法的調度策略來消除碎片對性能的影響。

另外,如果將來固態硬盤普及乃至取代傳統硬盤,也會讓磁盤碎片的概念成為歷史。

反刪除

和ext2不同,ext3會在刪除文件時把文件的節點(inode)中的塊指標清除。這樣做可以在unclean載入文件系統後,重放日誌時,可以減少對文件系統的訪問。但也同樣也增加了文件在反刪除上面的困難。用戶唯一的補救是在硬盤中撈取數據,並且要知道文件的起始到結束的塊指標。儘管提供了比ext2在刪除文件上稍微高一些的安全性,卻也無可避免的帶來了不便之處。

壓縮

Ext3不支持透明壓縮(Ext2以非官方補丁支持)。

Ext4dev / Ext4

注釋和引用

參考

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.