亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1274 | 回復(fù): 0
打印 上一主題 下一主題

剖析Linux新文件系統(tǒng) ext4 [復(fù)制鏈接]

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-03-11 06:20:00
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-22 19:25 |只看該作者 |倒序?yàn)g覽
第 4 個(gè)擴(kuò)展文件系統(tǒng),即 ext4,是下一代的日志文件系統(tǒng),它與上一代文件系統(tǒng) ext3 是向后兼容的。盡管 ext4
目前還不是標(biāo)準(zhǔn)文件系統(tǒng),但它將成為大部分下一代 Linux? 發(fā)行版的默認(rèn)文件系統(tǒng)。了解 ext4,以及它為什么將成為您最喜歡的新文件系統(tǒng)。
 
 Linux 內(nèi)核的每次發(fā)行都伴隨一些驚喜,今年 12 月份發(fā)行的 2.6.28 也不例外。這個(gè)發(fā)行版是首個(gè)穩(wěn)定的 ext4
文件系統(tǒng)(它還包含其他出色的特性,比如正在開發(fā)的 Btrfs)。這個(gè)下一代擴(kuò)展文件系統(tǒng)提供更好的伸縮性、可靠性和許多新功能。ext4
的伸縮性如此之大,以致最大的文件系統(tǒng)所用的磁盤空間將達(dá)到 100 萬 TB。
  擴(kuò)展文件系統(tǒng)的簡史
  第一個(gè)受
Linux 支持的文件系統(tǒng)是 Minix 文件系統(tǒng)。這個(gè)文件系統(tǒng)有嚴(yán)重的性能問題,因此出現(xiàn)了另一個(gè)針對 Linux
的文件系統(tǒng),即擴(kuò)展文件系統(tǒng)。第 1 個(gè)擴(kuò)展文件系統(tǒng)(ext1)由 Remy Card 設(shè)計(jì),并于 1992 年 4 月引入到 Linux
中。ext1 文件系統(tǒng)是第一個(gè)使用虛擬文件系統(tǒng)(VFS)交換的文件系統(tǒng)。虛擬文件系統(tǒng)交換是在 0.96c 內(nèi)核中實(shí)現(xiàn)的,支持的最大文件系統(tǒng)為
2 GB。
  第 2 個(gè)擴(kuò)展文件系統(tǒng)(ext2)也是由 Remy Card 實(shí)現(xiàn)的,并于 1993 年 1 月引入到 Linux
中。它借鑒了當(dāng)時(shí)文件系統(tǒng)(比如 Berkeley Fast File System [FFS])的先進(jìn)想法。ext2 支持的最大文件系統(tǒng)為
2TB,但是 2.6 內(nèi)核將該文件系統(tǒng)支持的最大容量提升到 32TB。
  第 3 個(gè)擴(kuò)展文件系統(tǒng)(ext3)是 Linux
文件系統(tǒng)的重大改進(jìn),盡管它在性能方面遜色于某些競爭對手。ext3 文件系統(tǒng)引入了日志
概念,以在系統(tǒng)突然停止時(shí)提高文件系統(tǒng)的可靠性。雖然某些文件系統(tǒng)的性能更好(比如 Silicon Graphics 的 XFS 和 IBM?
Journaled File System [JFS]),但 ext3 支持從使用 ext2 的系統(tǒng)進(jìn)行就地(in-place)升級(jí)。ext3
由 Stephen Tweedie 實(shí)現(xiàn),并于 2001 年 11 月引入。
  今天,我們已經(jīng)擁有第 4
個(gè)擴(kuò)展文件系統(tǒng)(ext4)。ext4 在性能、伸縮性和可靠性方面進(jìn)行了大量改進(jìn)。最值得一提的是,ext4 支持 1 EB 的文件系統(tǒng)。ext4
是由 Theodore Tso(ext3 的維護(hù)者)領(lǐng)導(dǎo)的開發(fā)團(tuán)隊(duì)實(shí)現(xiàn)的,并引入到 2.6.19 內(nèi)核中。目前,它在 2.6.28
內(nèi)核中已經(jīng)很穩(wěn)定(到 2008 年 12 月為止)。
  ext4 從競爭對手那里借鑒了許多有用的概念。例如,在 JFS 中已經(jīng)實(shí)現(xiàn)了使用區(qū)段(extent)來管理塊。另一個(gè)與塊管理相關(guān)的特性(延遲分配)已經(jīng)在 XFS 和 Sun Microsystems 的 ZFS 中實(shí)現(xiàn)。
  在 ext4 文件系統(tǒng)中,您可以發(fā)現(xiàn)各種改進(jìn)和創(chuàng)新。這些改進(jìn)包括新特性(新功能)、伸縮性(打破當(dāng)前文件系統(tǒng)的限制)和可靠性(應(yīng)對故障),當(dāng)然也包括性能的改善。
  功能
  ext4 引入了大量新功能,但最重要的是與 ext3 的向后和向前兼容性,以及在時(shí)間戳上的改進(jìn)。這些改進(jìn)立足于提高未來的 Linux 系統(tǒng)的性能。
  向后和向前兼容性
 
 由于 ext3 是 Linux 上最受歡迎的文件系統(tǒng)之一,因此應(yīng)該能夠輕松遷移到 ext4。為此,ext4 被設(shè)計(jì)為在 extent
方面具有向后和向前兼容性(參見圖 1)。ext4 與 ext3 是向前兼容的,這樣就可以將 ext3 文件系統(tǒng)掛載為 ext4
文件系統(tǒng)。為了充分利用 ext4 的優(yōu)勢,必須實(shí)現(xiàn)文件系統(tǒng)的遷移,以轉(zhuǎn)換和利用新的 ext4 格式。您還可以將 ext4 掛載為
ext3(向后兼容),但前提是 ext4 文件系統(tǒng)不能使用區(qū)段(將在性能小節(jié)對其進(jìn)行討論)。
  圖 1. ext4 的向后和向前兼容性

 
 除了兼容性特性之外,您還可以逐步地將 ext3 文件系統(tǒng)遷移到 ext4。這意味著沒有移動(dòng)的舊文件可以保留 ext3
格式,但新的文件(或已被復(fù)制的舊文件)將采用新的 ext4 數(shù)據(jù)結(jié)構(gòu)。您可以通過這種方式在線將 ext3 文件系統(tǒng)遷移到 ext4 文件系統(tǒng)。
  提高時(shí)間戳分辨率和擴(kuò)展范圍
  令人驚訝的是,ext4
之前的擴(kuò)展文件系統(tǒng)的時(shí)間戳都是以秒為單位的。這已經(jīng)能夠應(yīng)付大多數(shù)設(shè)置,但隨著處理器的速度和集成程度(多核處理器)不斷提升,以及 Linux
開始向其他應(yīng)用領(lǐng)域發(fā)展(比如高性能計(jì)算),基于秒的時(shí)間戳已經(jīng)不夠用。ext4
設(shè)計(jì)時(shí)間戳?xí)r考慮到未來的發(fā)展,它將時(shí)間戳的單位提升到納秒。ext4 給時(shí)間范圍添加了兩個(gè)位,從而讓時(shí)間壽命再延長 500 年。
  伸縮性
  文件系統(tǒng)未來發(fā)展的一個(gè)重要方面就是伸縮性,即根據(jù)需求進(jìn)行伸縮的能力。ext4 以多種方式現(xiàn)實(shí)了強(qiáng)大的伸縮性,它的伸縮性超越了 ext3,并且在文件系統(tǒng)元數(shù)據(jù)管理方面開辟了新領(lǐng)域。
  突破文件系統(tǒng)的限制
 
 ext4 的一個(gè)明顯差別就是它支持更大的文件系統(tǒng)、文件和子目錄。ext4 支持的最大文件系統(tǒng)為 1 EB(1000
PB)。雖然根據(jù)今天的標(biāo)準(zhǔn)這個(gè)文件系統(tǒng)已經(jīng)非常巨大,但存儲(chǔ)空間的消費(fèi)會(huì)不斷增長,因此 ext4 必須考慮到未來的發(fā)展。ext4 支持最大 16
TB 的文件(假設(shè)由 4KB 的塊組成),這個(gè)容量是 ext3 的 8 倍。
  最后,ext4 也擴(kuò)展了子目錄的容量,將其從 32KB 擴(kuò)展到無窮大。這是極端情況,我們還需要考慮文件系統(tǒng)的層次結(jié)構(gòu),因?yàn)樗淖畲蟠鎯?chǔ)容量為 1 EB。此外,目錄索引也優(yōu)化為類似于散列 B 樹結(jié)構(gòu),因此盡管限制更加多,但 ext4 支持更快的查找。
  區(qū)段
 
 ext3 分配空間的方式是其主要缺點(diǎn)之一。ext3 使用空閑空間位映射來分配文件,這種方式不是很快,并且伸縮性不強(qiáng)。ext3
的格式對小文件而言是很高效的,但對于大文件則恰恰相反。ext4 使用區(qū)段取代 ext3
的機(jī)制,從而改善了空間的分配,并且支持更加高效的存儲(chǔ)結(jié)構(gòu)。區(qū)段
是一種表示一組相鄰塊的方式。使用區(qū)段減少了元數(shù)據(jù),因?yàn)閰^(qū)段維護(hù)關(guān)于一組相鄰塊的存儲(chǔ)位置的信息(從而減少了總體元數(shù)據(jù)存儲(chǔ)),而不是一個(gè)塊的存儲(chǔ)位置
的信息。
  ext4 的區(qū)段采用分層的方法高效地表示小文件,并且使用區(qū)段樹高效地表示大文件。例如,單個(gè) ext4 inode
有足夠的空間來引用 4 個(gè)區(qū)段(每個(gè)區(qū)段表示一組相鄰的塊)。對于大文件(包括片段文件),一個(gè) inode
能夠引用一個(gè)索引節(jié)點(diǎn),而每個(gè)索引節(jié)點(diǎn)能夠引用一個(gè)葉節(jié)點(diǎn)(引用多個(gè)區(qū)段)。這種持續(xù)的區(qū)段樹為大文件(尤其是分散的文件)提供豐富的表示方式。這些節(jié)點(diǎn)
還包含自主檢查機(jī)制,以阻止文件系統(tǒng)損壞帶來威脅。
  性能
  衡量一個(gè)新文件系統(tǒng)的最重要指標(biāo)就是它的根本性能。這常常是最難實(shí)現(xiàn)的指標(biāo),因?yàn)楫?dāng)文件系統(tǒng)變得龐大并且要求實(shí)現(xiàn)高可靠性時(shí),將會(huì)以損害性能為代價(jià)。但是,ext4 不僅解決了伸縮性和可靠性,它還提供各種改善性能的方法。
  文件級(jí)預(yù)分配
 
 某些應(yīng)用程序,比如數(shù)據(jù)庫或內(nèi)容流,要求將文件存儲(chǔ)在相鄰的塊上(利用相鄰塊的讀優(yōu)化和最大化讀的命令-塊比率)。盡管區(qū)段能夠?qū)⑾噜弶K劃分為片段,但
另一種更強(qiáng)大的方法是按照所需的大小預(yù)分配比較大的相鄰塊(XFS 以前就是采用這種方法)。ext4
通過一個(gè)新的系統(tǒng)調(diào)用來實(shí)現(xiàn)這個(gè)目的,這個(gè)調(diào)用將按照特定的大小預(yù)分配并初始化文件。然后,您就可以寫入必要的數(shù)據(jù),并為數(shù)據(jù)提供不錯(cuò)的讀性能。
  延遲塊分配
 
 另一個(gè)基于文件大小的優(yōu)化是延遲分配。這種性能優(yōu)化延遲磁盤上的物理塊的分配,直到塊被刷入到磁盤時(shí)才進(jìn)行分配。這種優(yōu)化的關(guān)鍵是延遲物理塊的分配,直
到需要在磁盤上寫這些物理塊時(shí)才對其進(jìn)行分配并寫到相鄰的塊。這類似于持久化預(yù)分配,惟一的區(qū)別是文件系統(tǒng)會(huì)自動(dòng)執(zhí)行這項(xiàng)任務(wù)。不過如果預(yù)先知道文件的大
小時(shí),持久化預(yù)分配是更好的選擇。
  多個(gè)塊分配
  這是最后一個(gè)與相鄰塊相關(guān)的優(yōu)化,即針對 ext4 的塊分配器。在
ext3 中,塊分配器的工作方式是每次分配一個(gè)塊。當(dāng)需要分配多個(gè)塊時(shí),非相鄰塊中可能存在相鄰的數(shù)據(jù)。ext4
使用塊分配器修復(fù)了這個(gè)問題,它能夠在磁盤上一次分配多個(gè)塊。與前面其他優(yōu)化一樣,這個(gè)優(yōu)化在磁盤上收集相關(guān)的數(shù)據(jù),以實(shí)現(xiàn)相鄰讀優(yōu)化。
  多個(gè)塊分配的另一個(gè)方面是分配塊時(shí)需要的處理量。記住,ext3 一次只分配一個(gè)塊。在最簡單的情況下,每個(gè)塊的分配都要有一個(gè)調(diào)用。如果一次分配多個(gè)塊,對塊分配器的調(diào)用就會(huì)大大減少,從而加快分配并減少處理量。
  可靠性
  ext4 文件系統(tǒng)可能會(huì)擴(kuò)展得比較大,這將導(dǎo)致可靠性問題。但 ext4 通過許多自主保護(hù)和自主修復(fù)機(jī)制來解決這個(gè)問題。
  執(zhí)行文件系統(tǒng)日志校驗(yàn)和
 
 和 ext3 一樣,ext4 也是一個(gè)日志文件系統(tǒng)。日志記錄
就是通過日記(磁盤上相鄰區(qū)域的專門循環(huán)記錄)記錄文件系統(tǒng)的變更的過程。因此,根據(jù)日志對物理存儲(chǔ)執(zhí)行實(shí)際變更更加可靠,并且能夠確保一致性,即使在操
作期間出現(xiàn)系統(tǒng)崩潰或電源中斷。這樣做可以減少文件系統(tǒng)損壞的幾率。
  但是即使進(jìn)行日志記錄,如果日志出現(xiàn)錯(cuò)誤仍然會(huì)導(dǎo)致文件系統(tǒng)損壞。為了解決這個(gè)問題,ext4 對日志執(zhí)行校驗(yàn)和,確保有效變更能夠在底層文件系統(tǒng)上正確完成。在 參考資料 小節(jié)可以找到其他關(guān)于日志記錄(ext4 的重要部分)的資料。
 
 ext4 支持根據(jù)用戶需求采用多種模式的日志記錄。例如,ext4 支持 Writeback 模式,它僅記錄元數(shù)據(jù);或 Ordered
模式,它記錄元數(shù)據(jù),但寫為元數(shù)據(jù)的數(shù)據(jù)是從日志中寫入的;或 Journal 模式(最可靠的模式),它同時(shí)記錄元數(shù)據(jù)和數(shù)據(jù)。注意,雖然
Journal 模式是確保文件系統(tǒng)一致的最佳選擇,但它也是最慢的,因?yàn)樗袛?shù)據(jù)都要經(jīng)過日志。
  在線磁盤碎片整理
  盡管
ext4
添加一些特性來減少文件系統(tǒng)的碎片(比如將相鄰塊分配為區(qū)段),但隨著系統(tǒng)使用時(shí)間的增加,碎片是難以完全避免的。因此出現(xiàn)了在線碎片整理工具,它們可以
對文件系統(tǒng)和單個(gè)文件執(zhí)行碎片整理,從而改善性能。在線碎片整理程序是一個(gè)簡單的工具,它將文件復(fù)制到引用相鄰區(qū)段的新 ext4 inode。
 
 在線碎片整理還可以減少檢查文件系統(tǒng)所需的時(shí)間(fsck)。ext4 將未使用的塊組標(biāo)記到 inode 表中,并讓 fsck
進(jìn)程忽略它們以加快檢查速度。當(dāng)操作系統(tǒng)因內(nèi)部損壞(隨著文件系統(tǒng)變大,這是不可避免的)而檢查文件系統(tǒng)時(shí),ext4
的設(shè)計(jì)方式將能夠提高總體可靠性。
  結(jié)束語
  針對 Linux 的擴(kuò)展文件系統(tǒng)有著漫長而豐富的歷史 從 1992
年首次引入 ext1 到 2008 年引入 ext4。ext4 是首個(gè)專門為 Linux
設(shè)計(jì)的文件系統(tǒng),并且事實(shí)證明它是高效、穩(wěn)定、強(qiáng)大的文件系統(tǒng)。ext4 隨著文件系統(tǒng)研究的深入而不斷發(fā)展,并且借鑒其他新文件系統(tǒng)的先進(jìn)思想(比如
XFS、JFS、Reiser 和 IRON 容錯(cuò)文件系統(tǒng)技術(shù))。盡管目前預(yù)測 ext5
將會(huì)是什么樣子還為時(shí)過早,但有一點(diǎn)是很明確的,它將主導(dǎo)企業(yè)級(jí) Liunx 系統(tǒng)。
               
               
               

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u2/89112/showart_2003849.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP