RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [分享]Ext4系統格式介紹   字型大小:||| 
blahblah
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
複製貼上會造成論壇大亂

 . 積分: 1069
 . 文章: 987
 . 收花: 10096 支
 . 送花: 7337 支
 . 比例: 0.73
 . 在線: 4994 小時
 . 瀏覽: 22740 頁
 . 註冊: 6758
 . 失蹤: 682
#1 : 2010-1-8 02:06 AM     全部回覆 引言回覆

我把內容修改一下以符合台灣讀者的認知:



相容Ext3
如 Ext3 成功之道在於和 Ext2 完全相容,Ext4 同樣相容 Ext3。 Ext3 的檔案系統被掛載成 Ext4,由 Ext3 升級至 Ext4 亦只是兩個簡單的指令,無需重新格式化檔案系統,無需移動舊檔案,完全無痛。

而 Ext4 的檔案系統如果沒有檔案使用 extent 方式存放,亦可以直接被掛載成 Ext3。

更大的檔案系統和更大的檔案
較之Ext3 目前所支援的最大16TB 檔案系统和最大2TB 檔案,Ext4 分别支援1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的檔案系统,以及16TB 的檔案。

無限數量的子目錄
Ext3 目前只支援32,000 個子目錄,而Ext4 支援無限數量的子目錄。

Extents
Ext3 採用間接區塊映射,當操作大檔案時,效率極其低下。比如一個100MB 大小的檔案,在Ext3 中要建立25,600 個block(每個block大小為4KB)的映射表。 而Ext4 引入了現代檔案系统中流行的extents 概念,每個extent 為一组連續的block,上述檔案則表示為“該檔案資料保存在接下来的25,600 個block中”,提高了不少效率。

多block分配
當寫入資料到Ext3 檔案系统中時,Ext3 的block allocator每次只能分配一個4KB 的block,寫一個100MB 檔案就要調用25,600 次block allocator,而Ext4 的多塊 allocator“multiblock allocator”(mballoc)支援一次調用分配多個block。

延遲分配
Ext3 的block分配策略是盡快分配,而Ext4 和其它現代檔案操作系统的策略是盡可能地延遲分配,直到檔案在cache 中寫完才開始分配block並寫入硬碟,這樣就能最佳化整個檔案的block分配,與前兩種特性搭配可以顯著提升效能。

快速fsck
以前執行fsck 第一步就會很慢,因為它要檢查所有的inode,現在Ext4在每個分割區的inode 表中新增了一份未使用inode 列表,以後fsck Ext4 檔案系统就可以跳過它們而只去檢查那些已使用的inode 了。

日誌驗證
日誌是最常用的部分,也極易導致硬碟硬體故障,而從損壞的日誌中恢復資料會導致更多的資料損毀。 Ext4 的日誌驗證功能可以很方便地判断日誌資料是否損壞,而且它將Ext3 的兩階段日誌機制合併成一個階段,在增加安全性的同時提高了效能。

“無日誌”(No Journaling)模式
日誌無可避免的必須多消耗一些系統資源,Ext4 允許關閉日誌功能,以便某些有特殊需求的使用者可以借此提升效能。

在線破片整理
盡管延遲分配、多塊分配和extents 能有效减少檔案系统fragment,但破片還是不可避免會產生。 Ext4 支援在線破片整理,並將提供e4defrag 工具進行個别檔案或整個檔案系统的破片整理。

inode相關特性
Ext4 支援更大的inode,較之Ext3 預設的inode 大小128 byte,Ext4 為了在inode 中容纳更多的延伸屬性(如奈秒時間戳記或inode 版本),預設inode 大小為256 byte。  Ext4 還支援快速延伸屬性(fast extended attributes)和inode 保留(inodes reservation)。

持久預先分配(Persistent preallocation)
P2P 軟體為了保證下載的檔案有足够的空間存放,常常會預先建立一個與所下載檔案大小相同的空檔案,以免未来的數小時或數天之内硬碟空間不足導致下載失敗。  Ext4 在檔案系统層級實作了持久預先分配並提供相對應的API(libc 中的posix_fallocate()),比應用軟體自己實作更有效率。

預設啟用barrier
硬碟上配有buffer,以便重新調整整批資料的寫入操作顺序,最佳化寫入效能,因此檔案系统必需在日誌資料寫入硬碟之後才能寫commit 記錄,若commit 記錄寫入在先,而日誌有可能損壞,那麼就會影響資料完整性。Ext4 預設啟用barrier,只有當barrier 之前的資料全部寫入硬碟,才能寫barrier 之後的資料。(可透過"mount -o barrier=0"指令停用此功能。)


使用 Ext4
在 GNU/Linux 中,管理 Ext4 檔案系統的工作主要使用 e2fsprogs 中的一系列工具。

格式化儲存裝置成為 Ext4 檔案系統 - 可以使用指令 mke2fs -T ext4 或 mkfs.ext4。
升級 ext2/ext3 檔案系統至 ext4
使用外部日誌 (external journal) - 可以增加檔案系統效能。
檢查檔案系統 - 可以使用指令 e2fsck 或 fsck.ext4。
設定常規檔案系統檢查
設定檔案系統的系統管理員保留空間 - Ext4 檔案系統預設保留 5% 的空間給系統管理員工作之用,這空間大小可以使用指令 tune2fs -m 或 tune2fs -r 改變。
設定錯誤處理方案 - 可以使用指令 tune2fs -e 改變。
顯示檔案系統標籤 - 可以使用指令 e2label。
改變檔案系統標籤 - 可以使用指令 e2label 或 tune2fs -L。
設定檔案系統 UUID - 可以使用指令 tune2fs -U。




[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-19 07:29 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.021834 second(s), 7 queries , Qzip disabled