跳转到内容

Ext4:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
无编辑摘要
Yinweichen-bot留言 | 贡献
機械人根據格式手冊移除多餘日期內鏈
第8行: 第8行:
|developer = Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, [[Theodore Ts'o]], Eric Sandeen, Sam Naghshineh, others
|developer = Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, [[Theodore Ts'o]], Eric Sandeen, Sam Naghshineh, others
|introduction_os = [[Linux]] 2.6.28, 2.6.19
|introduction_os = [[Linux]] 2.6.28, 2.6.19
|introduction_date = '''穩定版:''' [[2008年]][[10月21日]]<br />'''不穩定版:''' [[2006年]][[10月10日]]
|introduction_date = '''穩定版:''' 2008年10月21日<br />'''不穩定版:''' 2006年10月10日
|partition_id = 0x83 ([[主引導記錄|MBR]])<br />EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ([[全局唯一標識分區表|GPT]])
|partition_id = 0x83 ([[主引導記錄|MBR]])<br />EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ([[全局唯一標識分區表|GPT]])
|directory_struct = [[链表]], [http://ext2.sourceforge.net/2005-ols/paper-html/node3.html hashed B-tree]
|directory_struct = [[链表]], [http://ext2.sourceforge.net/2005-ols/paper-html/node3.html hashed B-tree]

2014年2月9日 (日) 20:11的版本

ext4
开发者Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh, others
全称Fourth extended file system
发布穩定版: 2008年10月21日
不穩定版: 2006年10月10日 (Linux 2.6.28, 2.6.19)
分区标识0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
结构
目录内容链表, hashed B-tree
文件分配Extents/Bitmap
坏块表格
限制
最大文件尺寸16 TiB (for 4k block filesystem)
最大文件数量40億 (在檔案系統建立時指定)
最长文件名256位元組
最大卷容量1 EiB
文件名字符集除 NULL ('\0') 和 '/' 外之所有字元
功能
日期记录修改(mtime), 屬性修改 (ctime), 讀取 (atime), 刪除 (dtime), 建立 (crtime)
日期范围1901年12月14日 - 2514年4月25日
日期分辨率纳秒
岔流
属性extents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev
文件系统权限POSIX
透明压缩
透明加密
单一实例存储(SIS)
操作系统支持LinuxWindows(通过Ext2Fsd

ext4檔案系統(第四擴充套件檔案系統)是Linux系統下的日誌檔案系統,是ext3檔案系統的后继版本。

ext4原始的開發目標是一系列的向下兼容ext3、移除其64位元限制與提升其效能的延伸套件[1]。然而,某些Linux開發者因穩定性原因而拒絕將這些延伸套件應用在ext3上[2],並要求其作為ext3的分支,改名為ext4並另行開發,以免影響到目前的ext3使用者。該要求被接受以後,ext3維護者曹子德(Theodore Ts'o)在2006年6月28日公開了ext4的開發計畫[3]

特色

大型檔案系統
ext4檔案系統可支援最高1 Exbibyte的分割區[4]與最大16 Tebibyte的檔案。
Extents
ext4引進了Extent檔案儲存方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續實體block,這種方式可以增加大型檔案的效率並減少分裂檔案。ext4支援的單一Extent,在單一block為4KB的系統中最高可達128MB[1]。單一inode中可儲存4筆Extent;超過四筆的Extent會以Htree方式被索引。
向下相容
ext4向下相容於ext3ext2,因此可以將ext3和ext2的檔案系統掛載為ext4分割區。由於某些ext4的新功能可以直接運用在ext3和ext2上,直接掛載即可提升少許效能。
ext3檔案系統可以部分向上相容於ext4(也就是說ext4檔案系統可以被掛載為ext3分割區)。然而若是使用到Extent技術的ext4將無法被掛載為ext3。
預留空間
ext4允許對一檔案預先保留磁碟空間。目前大多數檔案系統做到這點的方式是直接產生一個填滿0的檔案;ext4和XFS可以使用Linux核心中的一個新的系統呼叫「fallocate()」取得足夠的預留空間。
延遲取得空間
ext4使用一種稱為allocate-on-flush的方式,可以在資料將被寫入磁碟(sync)前才開始取得空間;大多數檔案系統會在之前便取得需要的空間。這種方式可以增加效能並減少檔案分散程度。
突破32000子目錄限制
ext3的一個目錄下最多只能有32000個子目錄。ext4的子目錄最高可達64000,且使用「dir_nlink」功能後可以達到更高(雖然父目錄的link count會停止增加)。為了避免效能受到大量目錄的影響,ext4預設開啟Htree(一種特殊的B树)索引功能。該功能已經實作於Linux核心2.6.23版。
日志校验和
Ext4使用校验和特性来提高文件系统可靠性,因为日志是磁盘上被读取最频繁的部分之一。这个特性还有一个好处就是可以安全地避免日志处理时磁盘I/O的等待,而稍微提高一些性能。日志校验和的技术源于威斯康辛大学的一篇名为IRON File Systems的研究论文(见第六节 transaction checksums校验和处理)[5]
在线磁盘整理
对于在线磁盘整理工具有许多草案,但是这些草案都没有被包含在主流的内核当中。即使Ext4包含有许多避免磁盘碎片的技术,但是磁盘碎片还是难免会在一个长时间使用过的文件系统中存在。Ext4将会有一个具有磁盘整理功能的工具[6]
快速文件系统检查
Ext4将未使用的区块标记在inode当中,这样可以使诸如e2fsck之类的工具在磁盘检查时将这些区块完全跳过,而节约大量的文件系统检查的时间。这个特性已经在2.6.24版本的Linux内核中实现。

参见

參考資訊

  1. ^ 1.0 1.1 Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna; Dilger, Andreas; Tomas, Alex; Vivier, Laurent. The new ext4 filesystem: current status and future plans (PDF). Proceedings of the Linux Symposium. Ottawa, ON, CA: Red Hat. 2007 [2008-01-15]. 
  2. ^ Torvalds, Linus. extents and 48bit ext3. LKML. 2006-06-09. 
  3. ^ Ts'o, Theodore. Proposal and plan for ext2/3 future development work. LKML. 2006-06-28. 
  4. ^ Migrating to Ext4. DeveloperWorks. IBM. [2008-12-14]. 
  5. ^ Vijayan Prabhakaran; et al. IRON File Systems (PDF). CS Dept, University of Wisconsin. 
  6. ^ ext4新功能#在线磁盘碎片整理. 

相关介绍