一.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