RSS   



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


 


 
主題: [分享]Ext4系統格式介紹   字型大小:||| 
MU
版主
等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30等級: 30
驢的傳人-驢騎士

今日心情

 . 積分: 765
 . 精華: 12
 . 文章: 5247
 . 收花: 3150 支
 . 送花: 1996 支
 . 比例: 0.63
 . 在線: 609 小時
 . 瀏覽: 6090 頁
 . 註冊: 7215
 . 失蹤: 51
 . 台中的阿土伯
#1 : 2009-12-17 10:49 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目前所支持的最大16TB文件系統和最大2TB文件,Ext4分別支持1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系統,以及16TB的文件。

無限數量的子目錄。 Ext3 目前只支持32,000 个子目录,而Ext4 支持无限数量的子目录。 Ext3目前只支持32,000個子目錄,而Ext4支持無限數量的子目錄。

Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。 Ext3採用間接塊映射,當操作大文件時,效率極其低下。 比如一个100MB 大小的文件,在Ext3 中要建立25,600 个数据块(每个数据块大小为4KB)的映射表。比如一個100MB大小的文件,在Ext3中要建立25,600個數據塊(每個數據塊大小為4KB)的映射表。 而Ext4 引入了现代文件系统中流行的extents 概念,每个extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的25,600 个数据块中”,提高了不少效率。而Ext4引入了現代文件系統中流行的extents概念,每個extent為一組連續的數據塊,上述文件則表示為“該文件數據保存在接下來的25,600個數據塊中”,提高了不少效率。

多塊分配。 当写入数据到Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个4KB 的块,写一个100MB 文件就要调用25,600 次数据块分配器,而Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。當寫入數據到Ext3文件系統中時,Ext3的數據塊分配器每次只能分配一個4KB的塊,寫一個100MB文件就要調用25,600次數據塊分配器,而Ext4的多塊分配器“multiblock allocator”(mballoc)支持一次調用分配多個數據塊。

延遲分配。 Ext3 的数据块分配策略是尽快分配,而Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。 Ext3的數據塊分配策略是盡快分配,而Ext4和其它現代文件操作系統的策略是盡可能地延遲分配,直到文件在cache中寫完才開始分配數據塊並寫入磁盤,這樣就能優化整個文件的數據塊分配,與前兩種特性搭配起來可以顯著提升性能。


快速fsck。 以前执行fsck 第一步就会很慢,因为它要检查所有的inode,现在Ext4 给每个组的inode 表中都添加了一份未使用inode 的列表,今后fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的inode 了。以前執行fsck第一步就會很慢,因為它要檢查所有的inode,現在Ext4給每個組的inode表中都添加了一份未使用inode的列表,今後fsck Ext4文件系統就可以跳過它們而只去檢查那些在用的inode了。

日誌校驗。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。日誌是最常用的部分,也極易導致磁盤硬件故障,而從損壞的日誌中恢復數據會導致更多的數據損壞。 Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。 Ext4的日誌校驗功能可以很方便地判斷日誌數據是否損壞,而且它將Ext3的兩階段日誌機制合併成一個階段,在增加安全性的同時提高了性能。

“無日誌”(No Journaling)模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。日誌總歸有一些開銷,Ext4允許關閉日誌,以便某些有特殊需求的用戶可以藉此提升性能。

在線碎片整理。 尽管延迟分配、多块分配和extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。儘管延遲分配、多塊分配和extents能有效減少文件系統碎片,但碎片還是不可避免會產生。 Ext4 支持在线碎片整理,并将提供e4defrag 工具进行个别文件或整个文件系统的碎片整理。 Ext4支持在線碎片整理,並將提供e4defrag工具進行個別文件或整個文件系統的碎片整理。

inode相關特性。 Ext4 支持更大的inode,较之Ext3 默认的inode 大小128 字节,Ext4 为了在inode 中容纳更多的扩展属性(如纳秒时间戳或inode 版本),默认inode 大小为256 字节。 Ext4支持更大的inode,較之Ext3默認的inode大小128字節,Ext4為了在inode中容納更多的擴展屬性(如納秒時間戳或inode版本),默認inode大小為256字節。 Ext4 还支持快速扩展属性(fast extended attributes)和inode 保留(inodes reservation)。 Ext4還支持快速擴展屬性(fast extended attributes)和inode保留(inodes reservation)。

持久預分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 P2P軟件為了保證下載文件有足夠的空間存放,常常會預先創建一個與所下載文件大小相同的空文件,以免未來的數小時或數天之內磁盤空間不足導致下載失敗。 Ext4 在文件系统层面实现了持久预分配并提供相应的API(libc 中的posix_fallocate()),比应用软件自己实现更有效率。 Ext4在文件系統層面實現了持久預分配並提供相應的API(libc中的posix_fallocate()),比應用軟件自己實現更有效率。

默認啟用barrier。 磁盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写commit 记录,若commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。磁盤上配有內部緩存,以便重新調整批量數據的寫操作順序,優化寫入性能,因此文件系統必須在日誌數據寫入磁盤之後才能寫commit記錄,若commit記錄寫入在先,而日誌有可能損壞,那麼就會影響數據完整性。 Ext4 默认启用barrier,只有当barrier 之前的数据全部写入磁盘,才能写barrier 之后的数据。 Ext4默認啟用barrier,只有當barrier之前的數據全部寫入磁盤,才能寫barrier之後的數據。 (可通过"mount -o barrier=0" 命令禁用该特性。) (可通過"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  快速回覆 新增/修改 爬文標記
blahblah
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
複製貼上會造成論壇大亂

 . 積分: 1069
 . 文章: 987
 . 收花: 10096 支
 . 送花: 7337 支
 . 比例: 0.73
 . 在線: 4994 小時
 . 瀏覽: 22740 頁
 . 註冊: 6737
 . 失蹤: 661
#2 : 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  快速回覆 新增/修改 爬文標記
sonpp
銅驢友〔初級〕
等級: 8等級: 8


今日心情

 . 積分: 118
 . 文章: 208
 . 收花: 424 支
 . 送花: 2090 支
 . 比例: 4.93
 . 在線: 5500 小時
 . 瀏覽: 64192 頁
 . 註冊: 7941
 . 失蹤: 2
#3 : 2010-10-16 01:54 AM     只看本作者 引言回覆

版主 MU : 感謝您的補充

評分:+1   
另外補充一些東西..
Centos 5 是用addon的方式支援EXT4..
目前無法使用quota功能..

要等到Centos 6才會完全支援EXT4..
如果你的硬碟空間沒有大到16TB或以上,
目前裝EXT3是夠用的..否則還是有一些問題要靠Redhat解決



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

   

快速回覆
表情符號

更多 Smilies

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

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


 



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