歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux下ext4和ext3的比較

Linux下ext4和ext3的比較

日期:2017/3/1 13:53:04   编辑:關於Linux
Linux下ext4和ext3的比較 Linuxkernel自2.6.28開始正式支持新的文件系統Ext4。 Ext4是Ext3的改進版,修改了Ext3中部分重要的數據結構,而不僅僅像Ext3對Ext2那樣,只是增加了一個日志功能而已。 Ext4可以提供更佳的性能和可靠性,還有更為豐富的功能: 1、與Ext3兼容。 執行若干條命令,就能從Ext3在線遷移到Ext4,而無須重新格式化磁盤或重新安裝系統。 原有Ext3數據結構照樣保留,Ext4作用於新數據,當然,整個文件系統因此也就獲得了xt4所支持的更大容量。 2、更大的文件系統和更大的文件。 較之Ext3目前所支持的最大16TB文件系統和最大2TB文件, Ext4分別支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系統,以及16TB的文件。 3、無限數量的子目錄。 Ext3目前只支持32,000個子目錄,而Ext4支持無限數量的子目錄。 4、Extents。 A、xt3采用間接塊映射,當操作大文件時,效率極其低下。 比如一個100MB大小的文件,在Ext3中要建立25,600個數據塊(每個數據塊大小為4KB)的映射表。 B、Ext4引入了現代文件系統中流行的extents概念,每個extent為一組連續的數據塊, 上述文件則表示為“該文件數據保存在接下來的25,600個數據塊中”,提高了不少效率。 5、多塊分配。 當寫入數據到Ext3文件系統中時,Ext3的數據塊分配器每次只能分配一個4KB的塊,寫一個100MB文件就要調用25,600次數據塊分配器, 而Ext4的多塊分配器“multiblockallocator”(mballoc)支持一次調用分配多個數據塊。 6、延遲分配。 Ext3的數據塊分配策略是盡快分配,而Ext4和其它現代文件操作系統的策略是盡可能地延遲分配,直到文件在cache中寫完才開始分配數據塊並寫入磁盤, 這樣就能優化整個文件的數據塊分配,與前兩種特性搭配起來可以顯著提升性能。 7、快速fsck。 以前執行fsck第一步就會很慢,因為它要檢查所有的inode,現在Ext4給每個組的inode表中都添加了一份未使用inode的列表, 今後fsckExt4文件系統就可以跳過它們而只去檢查那些在用的inode了。 8、日志校驗。 日志是最常用的部分,也極易導致磁盤硬件故障,而從損壞的日志中恢復數據會導致更多的數據損壞。 Ext4的日志校驗功能可以很方便地判斷日志數據是否損壞,而且它將Ext3的兩階段日志機制合並成一個階段,在增加安全性的同時提高了性能。 9、“無日志”(NoJournaling)模式。 日志總歸有一些開銷,Ext4允許關閉日志,以便某些有特殊需求的用戶可以借此提升性能。 10、在線碎片整理。 盡管延遲分配、多塊分配和extents能有效減少文件系統碎片,但碎片還是不可避免會產生。 Ext4支持在線碎片整理,並將提供e4defrag工具進行個別文件或整個文件系統的碎片整理。 11、inode相關特性。 Ext4支持更大的inode,較之Ext3默認的inode大小128字節,Ext4為了在inode中容納更多的擴展屬性(如納秒時間戳或inode版本), 默認inode大小為256字節。Ext4還支持快速擴展屬性(fastextended attributes)和inode保留(inodesreservation)。 12、持久預分配(Persistentpreallocation)。 P2P軟件為了保證下載文件有足夠的空間存放,常常會預先創建一個與所下載文件大小相同的空文件,以免未來的數小時或數天之內磁盤空間不足導致下載失敗。 Ext4在文件系統層面實現了持久預分配並提供相應的API(libc中的posix_fallocate()),比應用軟件自己實現更有效率。 13、默認啟用barrier。 磁盤上配有內部緩存,以便重新調整批量數據的寫操作順序,優化寫入性能,因此文件系統必須在日志數據寫入磁盤之後才能寫commit記錄, 若commit記錄寫入在先,而日志有可能損壞,那麼就會影響數據完整性。 Ext4默認啟用barrier,只有當barrier之前的數據全部寫入磁盤,才能寫barrier之後的數據。(可通過"mount-o barrier=0" 命令禁用該特性。)
Copyright © Linux教程網 All Rights Reserved