ext4 文件系统新特性
?????? Ext4的名稱來源于4th extended filesystem,它是廣泛應用于Linux的Ext3文件系統的后繼。同Ext3類似,Ext4也是日志文件系統。而與Ext3僅僅是將日志功能加入到Ext2中不同,Ext4對Ext3做了很多深層次的改進,文件系統的數據結構也有變化。目前的Ext4文件系統設計更合理、性能有所提高、可靠性得到增強,還引入了一些新功能。
新特性
做為新一代文件系統,Ext4文件系統具有很多新特性:
新功能
?
?
?
?
?
?
?
大文件系統與大文件支持
?
Ext4文件系統最大支持1 exabyte(10006B=10003GB)的卷,最大文件可達16TB。
?
?
?
?
?
在線碎片整理(Online defragmentation)
?
?
(開發中)盡管ext4引入了很多避免碎片產生的技術,一個用了很長時間的文件系統總歸要產生一些碎片。Ext4將提供一個可以為單個文件及整個文件系統進行碎片整理的工具。雖然目前已經有不少在線整理磁盤的解決方法,但主流內核還未加入對他們的支持。
?
?
?
?
打破子文件夾數限制
?
?
ext3中一個文件夾的子文件夾數不能超過32000,在ext4中,這一限制被取消。
?
?
?
?
時間戳的改進
?
由于計算機總是越來越快,不過任務對時間精度的要求不斷提升,精確到“秒”的時間戳越來越顯得不夠用了。為此,Ext4引入了精確到“納秒”的時間戳。另外,ext4還在將秒的表示增加了2個比特,這就避免了“2038年問題”,使時間的表示范圍增加了約500年。ext4還引了對文件創建時間戳的支持。不過正如Theodore Ts'o所指出的,要使更多的程序支持這一特性,可能還需要修改諸如stat()之類的系統調用函數,而如glibc等依賴于它們的庫也需要做相應的更新。正因如此,“文件創建時間戳”走入用戶應用程序可能還需要一段時間。
?
?
?
?
?
無日志模式
?
?
有些特殊應用可能希望通過取消日志來提高性能,Ext4提供無日志模式以適應這些特殊需求(從2.6.29內核開始支持)。
?
性能提升
?
?
?
?
?
?
?
更快速的文件系統檢查
?
fsck檢查磁盤速度慢的一個重要原因是它在第一步要掃描所有的inode。ext4對未分配的inode做了適當標記,這讓fsck檢查磁盤時可以將它們整塊地忽略掉,大大加快了磁盤檢查的時間。
?
?
?
?
?
Extents
?
?
Ext2/3等老Linux文件系統使用間接塊映射模式(block mapping),文件的每一個塊都要被記錄下來,這使得對大文件的操作(如刪除)效率低下。Ext4引入Extents這一概念來代替ext2/3使用的傳統的塊映射(block mapping)方式。“extent”是一個大的連續的物理塊區域,它的引入加快了處理大文件的性能、減少了碎片。當塊大小為4KB時,ext4中的一個extent最大可以映射128MB的連續物理存儲空間。
?
?
?
?
持續預分配空間(Persistent pre-allocation)
?
?
ext4文件系統允許為文件預分配磁盤空間。目前多數文件系統實現這一功能的方法是在要分配的空間中添滿0。 在ext4中不再采用這一方法,而是用一個新的fallocate()內核系統調用來實現(支持ext4和XFS),且其分配的空間很可能是連續的。這一技術在流媒體、P2P等多種場合中都有廣泛應用。
?
?
?
?
延時分配(Delayed allocation)
?
?
該技術也稱為allocate-on-flush,可以提升文件系統的性能。只有數據將要被真正寫入磁盤時,文件系統才為其分配塊,這與其它文件系統在早期就分配好必要的塊是不同的。另外,由于ext4的這種做法可以根據真實的文件大小做塊分配決策,它還減少了碎片的產生。
?
?
?
?
多塊分配(Multiblock allocator)
?
?
Ext3文件系統為每次寫操作最多分配一個4K塊(block),在處理大文件時會導致性能的下降。Ext4在一次操作中可以分配多個塊,并盡力讓這些塊連續,這有助于減少磁盤碎片。當啟用了延時分配或使用O_DIRECT時這一功能即被啟用。
?
可靠性增強
?
?
?
?
?
?
?
日志校驗
?
?
日志通常用于在硬件故障發生后恢復數據,它是日志文件系統中最重要的部分之一,按照損壞的日志執行恢復操作可能導致嚴重的后果。所以Ext4為日志增加了校驗和以提升可靠性。這一特性還可以安全地避免寫日志進程的磁盤I/O等待時間,并略微提高了性能。
?
兼容性
?
?
?
?
?
?
?
前向兼容
?
?
ext4文件系統與ext3部分向前兼容。即只要不啟用extents(ext4的一項新特性),ext4文件系統就可以做為ext3文件系統掛載。
?
?
?
?
后向兼容
?
?
ext4后向兼容與ext3和ext2,即可以將ext3或ext2文件系統做為ext4分區掛載。由于此時可以使用ext4的一些新特性(如新的塊分配算法),這樣做時還可以稍稍提升性能。
?
轉載于:https://blog.51cto.com/michaelkang/951434
總結
以上是生活随笔為你收集整理的ext4 文件系统新特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 数据存储到什么地方?
- 下一篇: NSTableView使用笔记(一)