文件系統:Ext3和Ext4


一.ext3和ext4的區別:
1.與Ext3兼容:執行若干條命令,就能將Ext3在線遷移到Ext4,而無須重新格式化磁盤或者重新安裝系統。原有Ext3數據結構照樣保留,
Ext4作用於新數據,當然,整個文件系統因此也就獲得了Ext4所支持的更大容量。
2.更大的文件系統和更大的文件:與Ext3目前所支持的最大16TB文件 系統的最大2TB文件相比,Ext4分別支持1EB的文件系統和16TB的文件。
3.無限的子目錄:Ext3目前只支持32000個子目錄,而Ext4支持無限數量的子目錄。
4.Extents:Ext3采用間接塊映射,當操作打文件的時候,效率極其低下。而Ext4引入了現代文件系統流行的Extents概念,每個extent為一組
連續的數據塊,提高了不少的效率。
5.多塊分配:當寫入數據到Ext3文件系統的時候,Ext3的數據塊分配器每次只能分配一個4KB的塊,而Ext4支持一次調用分配多個數據塊。
6.延遲分配:Ext3的數據塊分配策略是盡快分配,而Ext4的策略是延遲分配,直到文件在cache中寫完才開始分配數據塊並寫入磁盤,這樣就能
優化整個文件的數據塊分配。
7.快速fsck:Ext3執行fsck的時候需要去檢查所有的inode,而Ext4將每個組的inode表中都添加了 一份未使用的inode列表,Ext4文件系統就可以
跳過它們而去檢查那些在用的inode。
8.日志校驗:Ext4的日志校驗功能可以很方便的判斷日志數據是否損壞。日志是最常用的部分,也極易導致磁盤硬件故障,而從損壞的日志中
恢復數據會導致更多的數據損壞。
9.“無日志”模式:Ext4允許關閉日志,以便某些有特殊需求的用戶可以借此提升性能。
10.在線碎片整理:盡管延遲分配、多塊分配和extents能有效減少文件系統的碎片,但碎片還是不可避免會產生。Ext4支持在線碎片整理,
並將提供e4defrag工具進行個別文件或整個文件系統的碎片整理。
11.inode相關特性:Ext3默認的inode大小為128字節,Ext4為了在inode中容納更多的擴展屬性,默認的inode大小為256字節,還支持快速擴展
屬性和inode保留。
12.持久預分配:P2P軟件為了保證下載文件有足夠的空間存放,常常會預先創建一個與所下載文件大小相同的空文件,以免未來的數小時之內磁盤不足
導致失敗。Ext4在文件系統層面實現了持久預分配並提供相應的API,比應用軟件自己實現更有效率。
13.默認啟用barrier:磁盤上配有內部緩存,以便重新調整批量數據的寫操作順序,優化寫入性能,因此文件系統必須在日志數據寫入磁盤之后才能寫commit記錄,
若commit記錄在先,而日志有損壞,那么就會影響數據完整性。Ext4默認開啟barrier,只有當barrier之前的數據全部寫入磁盤,才能寫barrier之后的數據。
二.將文件系統從ext3升級為ext4:
1.測試場景:
查看文件系統
# df -T
Filesystem     Type      1K-blocks    Used  Available Use% Mounted on
/dev/vda1      ext4       41151808 5729784   33308592  15% /
devtmpfs       devtmpfs    1933380       0    1933380   0% /dev
tmpfs          tmpfs       1941700       0    1941700   0% /dev/shm
tmpfs          tmpfs       1941700   25000    1916700   2% /run
tmpfs          tmpfs       1941700       0    1941700   0% /sys/fs/cgroup
/dev/vdb       ext3     1056763060  278452 1002781136   1% /data
tmpfs          tmpfs        388340       0     388340   0% /run/user/0
現在需要將/dev/vdb升級為ext4
2.查看ext4特征是否激活:
#tune2fs -l /dev/vdb | grep extent
執行上述命令若沒有返回值,說明/dev/vdb的ext4特征沒有被激活,解決辦法就是將文件系統升級為ext4
3.安裝所需軟件:
#yum -y install e2fsprogs
4.文件系統升級轉換:
a.取消當前需要升級的磁盤的掛載:
#umount /dev/vdb
b.升級磁盤到ext4:
#tune2fs -O has_journal,extents,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize /dev/vdb
c.修改轉換文件系統錯誤:
#e2fsck -fDC0 /dev/vdb -y
d.修改/etc/fstab中的開機檢測
#vi /etc/fstab
添加:
/dev/vdb /data ext4 defaults 0 0 
e.重新對磁盤進行掛載:
#mount -t ext4 /dev/vdb /data
f.檢測是否升級成功:
#df -T
Filesystem     Type      1K-blocks    Used  Available Use% Mounted on
/dev/vda1      ext4       41151808 5729784   33308592  15% /
devtmpfs       devtmpfs    1933380       0    1933380   0% /dev
tmpfs          tmpfs       1941700       0    1941700   0% /dev/shm
tmpfs          tmpfs       1941700   25000    1916700   2% /run
tmpfs          tmpfs       1941700       0    1941700   0% /sys/fs/cgroup
/dev/vdb       ext4     1056763060  278464 1002781124   1% /data
tmpfs          tmpfs        388340       0     388340   0% /run/user/0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM