91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux文件系統中ext4及更高版本的示例分析

發布時間:2021-07-14 11:43:40 來源:億速云 閱讀:126 作者:小新 欄目:服務器

這篇文章給大家分享的是有關Linux文件系統中ext4及更高版本的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

大多數現代Linux發行版默認為ext 4文件系統,就像以前的Linux發行版默認為ext3、ext2,以及-如果追溯到足夠遠的話-ext。
如果您是Linux新手或者是文件系統新手,您可能會想知道ext 4給表帶來了什么,而ext3卻沒有。考慮到諸如btrfs、XFS和ZFS等備用文件系統的新聞報道,您可能還想知道ext4是否還在積極開發中。
我們不能在一篇文章中涵蓋所有關于文件系統的內容,但是我們將嘗試讓您了解Linux的默認文件系統的歷史、它所處的位置以及所期待的內容。
我大量地引用了各種ext文件系統文章以及我在編寫本概覽時的經驗。

ext 簡史

MINIX 文件系統
在有 ext 之前,使用的是 MINIX 文件系統。如果你不熟悉 Linux 歷史,那么可以理解為 MINIX 是用于 IBM PC/AT 微型計算機的一個非常小的類 Unix 系統。Andrew Tannenbaum 為了教學的目的而開發了它,并于 1987 年發布了源代碼(以印刷版的格式!)。

Linux文件系統中ext4及更高版本的示例分析

IBM 1980 中期的 PC/AT, MBlairMartin , CC BY-SA 4.0

雖然你可以細讀 MINIX 的源代碼,但實際上它并不是自由開源軟件(FOSS)。出版 Tannebaum 著作的出版商要求你花 69 美元的許可費來運行 MINIX,而這筆費用包含在書籍的費用中。盡管如此,在那時來說非常便宜,并且 MINIX 的使用得到迅速發展,很快超過了 Tannebaum 當初使用它來教授操作系統編碼的意圖。在整個20 世紀90年代,你可以發現 MINIX 的安裝在世界各個大學里面非常流行。而此時,年輕的 Linus Torvalds 使用 MINIX 來開發原始 Linux 內核,并于1991 年首次公布,而后在 1992 年 12 月在 GPL 開源協議下發布。
但是等等,這是一篇以 文件系統 為主題的文章不是嗎?是的,MINIX 有自己的文件系統,早期的 Linux 版本依賴于它。跟 MINIX 一樣,Linux 的文件系統也如同玩具那般小 —— MINIX 文件系統最多能處理 14 個字符的文件名,并且只能處理 64MB 的存儲空間。到了 1991 年,一般的硬盤尺寸已經達到了 40-140 MB。很顯然,Linux 需要一個更好的文件系統。

ext

當 Linus 開發出剛起步的 Linux 內核時,Rémy Card 從事第一代的 ext 文件系統的開發工作。ext 文件系統在 1992 年首次實現并發布 —— 僅在 Linux 首次發布后的一年!—— ext 解決了 MINIX 文件系統中最糟糕的問題。
1992 年的 ext 使用在 Linux 內核中的新虛擬文件系統(VFS)抽象層。與之前的 MINIX 文件系統不同的是,ext 可以處理高達 2 GB 存儲空間并處理 255 個字符的文件名。
但 ext 并沒有長時間占統治地位,主要是由于它原始的時間戳(每個文件僅有一個時間戳,而不是今天我們所熟悉的有 inode、最近文件訪問時間和最新文件修改時間的時間戳。)僅僅一年后,ext2 就替代了它。

ext2

Rémy 很快就意識到 ext 的局限性,所以一年后他設計出 ext2 替代它。當 ext 仍然根植于 “玩具” 操作系統時,ext2 從一開始就被設計為一個商業級文件系統,沿用 BSD 的 Berkeley 文件系統的設計原理。
ext2 提供了 GB 級別的最大文件大小和 TB 級別的文件系統大小,使其在 20 世紀 90 年代的地位牢牢鞏固在文件系統大聯盟中。很快它被廣泛地使用,無論是在 Linux 內核中還是最終在 MINIX 中,且利用第三方模塊可以使其應用于 MacOS 和 Windows。
但這里仍然有一些問題需要解決:ext2 文件系統與 20 世紀 90 年代的大多數文件系統一樣,如果在將數據寫入到磁盤的時候,系統發生崩潰或斷電,則容易發生災難性的數據損壞。隨著時間的推移,由于碎片(單個文件存儲在多個位置,物理上其分散在旋轉的磁盤上),它們也遭受了嚴重的性能損失。
盡管存在這些問題,但今天 ext2 還是用在某些特殊的情況下 —— 最常見的是,作為便攜式 USB 驅動器的文件系統格式。

ext3

1998 年,在 ext2 被采用后的 6 年后,Stephen Tweedie 宣布他正在致力于改進 ext2。這成了 ext3,并于 2001 年 11 月在 2.4.15 內核版本中被采用到 Linux 內核主線中。

Linux文件系統中ext4及更高版本的示例分析

20 世紀 90 年代中期的 Packard Bell計算機,Spacekid ,CC0

在大部分情況下,ext2 在 Linux 發行版中工作得很好,但像 FAT、FAT32、HFS 和當時的其它文件系統一樣 —— 在斷電時容易發生災難性的破壞。如果在將數據寫入文件系統時候發生斷電,則可能會將其留在所謂 不一致 的狀態 —— 事情只完成一半而另一半未完成。這可能導致大量文件丟失或損壞,這些文件與正在保存的文件無關甚至導致整個文件系統無法卸載。
ext3 和 20 世紀 90 年代后期的其它文件系統,如微軟的 NTFS,使用 日志 來解決這個問題。日志是磁盤上的一種特殊的分配區域,其寫入被存儲在事務中;如果該事務完成磁盤寫入,則日志中的數據將提交給文件系統自身。如果系統在該操作提交前崩潰,則重新啟動的系統識別其為未完成的事務而將其進行回滾,就像從未發生過一樣。這意味著正在處理的文件可能依然會丟失,但文件系統 本身 保持一致,且其它所有數據都是安全的。
在使用 ext3 文件系統的 Linux 內核中實現了三個級別的日志記錄方式: 日記(journal)、 順序(ordered)和 回寫(writeback)。
日記 是最低風險模式,在將數據和元數據提交給文件系統之前將其寫入日志。這可以保證正在寫入的文件與整個文件系統的一致性,但其顯著降低了性能。
順序 是大多數 Linux 發行版默認模式;順序模式將元數據寫入日志而直接將數據提交到文件系統。顧名思義,這里的操作順序是固定的:首先,元數據提交到日志;其次,數據寫入文件系統,然后才將日志中關聯的元數據更新到文件系統。這確保了在發生崩潰時,那些與未完整寫入相關聯的元數據仍在日志中,且文件系統可以在回滾日志時清理那些不完整的寫入事務。在順序模式下,系統崩潰可能導致在崩潰期間文件的錯誤被主動寫入,但文件系統它本身 —— 以及未被主動寫入的文件 —— 確保是安全的。
回寫 是第三種模式 —— 也是最不安全的日志模式。在回寫模式下,像順序模式一樣,元數據會被記錄到日志,但數據不會。與順序模式不同,元數據和數據都可以以任何有利于獲得最佳性能的順序寫入。這可以顯著提高性能,但安全性低很多。盡管回寫模式仍然保證文件系統本身的安全性,但在崩潰或崩潰之前寫入的文件很容易丟失或損壞。
跟之前的 ext2 類似,ext3 使用 16 位內部尋址。這意味著對于有著 4K 塊大小的 ext3 在最大規格為 16 TiB 的文件系統中可以處理的最大文件大小為 2 TiB。

ext4

Theodore Ts'o(是當時 ext3 主要開發人員)在 2006 年發表的 ext4,于兩年后在 2.6.28 內核版本中被加入到了 Linux 主線。
Ts'o 將 ext4 描述為一個顯著擴展 ext3 但仍然依賴于舊技術的臨時技術。他預計 ext4 終將會被真正的下一代文件系統所取代。

Linux文件系統中ext4及更高版本的示例分析

Dell Precision 380 工作站, Lance Fisher , CC BY-SA 2.0

ext4 在功能上與 ext3 在功能上非常相似,但支持大文件系統,提高了對碎片的抵抗力,有更高的性能以及更好的時間戳。

ext4 vs ext3

ext3 和 ext4 有一些非常明確的差別,在這里集中討論下。
向后兼容性
ext4 特地設計為盡可能地向后兼容 ext3。這不僅允許 ext3 文件系統原地升級到 ext4;也允許 ext4 驅動程序以 ext3 模式自動掛載 ext3 文件系統,因此使它無需單獨維護兩個代碼庫。

大文件系統

ext3 文件系統使用 32 位尋址,這限制它僅支持 2 TiB 文件大小和 16 TiB 文件系統系統大小(這是假設在塊大小為 4 KiB 的情況下,一些 ext3 文件系統使用更小的塊大小,因此對其進一步被限制)
ext4 使用 48 位的內部尋址,理論上可以在文件系統上分配高達 16 TiB 大小的文件,其中文件系統大小最高可達 1000000 TiB(1 EiB)。在早期 ext4 的實現中有些用戶空間的程序仍然將其限制為最大大小為 16 TiB 的文件系統,但截至 2011 年,e2fsprogs 已經直接支持大于 16 TiB 大小的 ext4 文件系統。例如,紅帽企業 Linux 在其合同上僅支持最高 50 TiB 的 ext4 文件系統,并建議 ext4 卷不超過 100 TiB。

分配方式改進

ext4 在將存儲塊寫入磁盤之前對存儲塊的分配方式進行了大量改進,這可以顯著提高讀寫性能。

范圍區段

(extent)是一系列連續的物理塊 (最多達 128 MiB,假設塊大小為 4 KiB),可以一次性保留和尋址。使用區段可以減少給定文件所需的 inode 數量,并顯著減少碎片并提高寫入大文件時的性能。

多塊分配

ext3 為每一個新分配的塊調用一次塊分配器。當多個寫入同時打開分配器時,很容易導致嚴重的碎片。然而,ext4 使用延遲分配,這允許它合并寫入并更好地決定如何為尚未提交的寫入分配塊。

持久預分配

在為文件預分配磁盤空間時,大部分文件系統必須在創建時將零寫入該文件的塊中。ext4 允許替代使用 fallocate(),它保證了空間的可用性(并試圖為它找到連續的空間),而不需要先寫入它。這顯著提高了寫入和將來讀取流和數據庫應用程序的寫入數據的性能。

延遲分配

這是一個耐人尋味而有爭議性的功能。延遲分配允許 ext4 等待分配將寫入數據的實際塊,直到它準備好將數據提交到磁盤。(相比之下,即使數據仍然在往寫入緩存中寫入,ext3 也會立即分配塊。)
當緩存中的數據累積時,延遲分配塊允許文件系統對如何分配塊做出更好的選擇,降低碎片(寫入,以及稍后的讀)并顯著提升性能。然而不幸的是,它 增加 了還沒有專門調用 fsync() 方法(當程序員想確保數據完全刷新到磁盤時)的程序的數據丟失的可能性。
假設一個程序完全重寫了一個文件:

fd=open("file", O_TRUNC); write(fd, data); close(fd);

使用舊的文件系統,close(fd); 足以保證 file 中的內容刷新到磁盤。即使嚴格來說,寫不是事務性的,但如果文件關閉后發生崩潰,則丟失數據的風險很小。
如果寫入不成功(由于程序上的錯誤、磁盤上的錯誤、斷電等),文件的原始版本和較新版本都可能丟失數據或損壞。如果其它進程在寫入文件時訪問文件,則會看到損壞的版本。如果其它進程打開文件并且不希望其內容發生更改 —— 例如,映射到多個正在運行的程序的共享庫。這些進程可能會崩潰。
為了避免這些問題,一些程序員完全避免使用 O_TRUNC。相反,他們可能會寫入一個新文件,關閉它,然后將其重命名為舊文件名:

fd=open("newfile"); write(fd, data); close(fd); rename("newfile", "file");

在沒有延遲分配的文件系統下,這足以避免上面列出的潛在的損壞和崩潰問題:因為 rename() 是原子操作,所以它不會被崩潰中斷;并且運行的程序將繼續引用舊的文件。現在 file 的未鏈接版本只要有一個打開的文件文件句柄即可。但是因為 ext4 的延遲分配會導致寫入被延遲和重新排序,rename("newfile", "file") 可以在 newfile 的內容實際寫入磁盤內容之前執行,這出現了并行進行再次獲得 file 壞版本的問題。
為了緩解這種情況,Linux 內核(自版本 2.6.30)嘗試檢測這些常見代碼情況并強制立即分配。這會減少但不能防止數據丟失的可能性 —— 并且它對新文件沒有任何幫助。如果你是一位開發人員,請注意:保證數據立即寫入磁盤的唯一方法是正確調用 fsync()。

無限制的子目錄

ext3 僅限于 32000 個子目錄;ext4 允許無限數量的子目錄。從 2.6.23 內核版本開始,ext4 使用 HTree 索引來減少大量子目錄的性能損失。

日志校驗

ext3 沒有對日志進行校驗,這給處于內核直接控制之外的磁盤或自帶緩存的控制器設備帶來了問題。如果控制器或具自帶緩存的磁盤脫離了寫入順序,則可能會破壞 ext3 的日記事務順序,從而可能破壞在崩潰期間(或之前一段時間)寫入的文件。
理論上,這個問題可以使用寫入 障礙(barrier) —— 在安裝文件系統時,你在掛載選項設置 barrier=1,然后設備就會忠實地執行 fsync 一直向下到底層硬件。通過實踐,可以發現存儲設備和控制器經常不遵守寫入障礙 —— 提高性能(和跟競爭對手比較的性能基準),但增加了本應該防止數據損壞的可能性。
對日志進行校驗和允許文件系統崩潰后第一次掛載時意識到其某些條目是無效或無序的。因此,這避免了回滾部分條目或無序日志條目的錯誤,并進一步損壞的文件系統 —— 即使部分存儲設備假做或不遵守寫入障礙。

快速文件系統檢查

在 ext3 下,在 fsck 被調用時會檢查整個文件系統 —— 包括已刪除或空文件。相比之下,ext4 標記了 inode 表未分配的塊和扇區,從而允許 fsck 完全跳過它們。這大大減少了在大多數文件系統上運行 fsck 的時間,它實現于內核 2.6.24。

改進的時間戳

ext3 提供粒度為一秒的時間戳。雖然足以滿足大多數用途,但任務關鍵型應用程序經常需要更嚴格的時間控制。ext4 通過提供納秒級的時間戳,使其可用于那些企業、科學以及任務關鍵型的應用程序。
ext3 文件系統也沒有提供足夠的位來存儲 2038 年 1 月 18 日以后的日期。ext4 在這里增加了兩個位,將 Unix 紀元 擴展了 408 年。如果你在公元 2446 年讀到這篇文章,你很有可能已經轉移到一個更好的文件系統 —— 如果你還在測量自 1970 年 1 月 1 日 00:00(UTC)以來的時間,這會讓我死后得以安眠。

在線碎片整理

ext2 和 ext3 都不直接支持在線碎片整理 —— 即在掛載時會對文件系統進行碎片整理。ext2 有一個包含的實用程序 e2defrag,它的名字暗示 —— 它需要在文件系統未掛載時脫機運行。(顯然,這對于根文件系統來說非常有問題。)在 ext3 中的情況甚至更糟糕 —— 雖然 ext3 比 ext2 更不容易受到嚴重碎片的影響,但 ext3 文件系統運行 e2defrag 可能會導致災難性損壞和數據丟失。
盡管 ext3 最初被認為“不受碎片影響”,但對同一文件(例如 BitTorrent)采用大規模并行寫入過程的過程清楚地表明情況并非完全如此。一些用戶空間的手段和解決方法,例如 Shake ,以這樣或那樣方式解決了這個問題 —— 但它們比真正的、文件系統感知的、內核級碎片整理過程更慢并且在各方面都不太令人滿意。
ext4 通過 e4defrag 解決了這個問題,且是一個在線、內核模式、文件系統感知、塊和區段級別的碎片整理實用程序。

正在進行的 ext4 開發

ext4,正如 Monty Python 中瘟疫感染者曾經說過的那樣,“我還沒死呢!”雖然它的 主要開發人員 認為它只是一個真正的 下一代文件系統 的權宜之計,但是在一段時間內,沒有任何可能的候選人準備好(由于技術或許可問題)部署為根文件系統。
在未來的 ext4 版本中仍然有一些關鍵功能要開發,包括元數據校驗和、一流的配額支持和大分配塊。

元數據校驗和

由于 ext4 具有冗余超級塊,因此為文件系統校驗其中的元數據提供了一種方法,可以自行確定主超級塊是否已損壞并需要使用備用塊。可以在沒有校驗和的情況下,從損壞的超級塊恢復 —— 但是用戶首先需要意識到它已損壞,然后嘗試使用備用方法手動掛載文件系統。由于在某些情況下,使用損壞的主超級塊安裝文件系統讀寫可能會造成進一步的損壞,即使是經驗豐富的用戶也無法避免,這也不是一個完美的解決方案!
與 Btrfs 或 ZFS 等下一代文件系統提供的極其強大的每塊校驗和相比,ext4 的元數據校驗和的功能非常弱。但它總比沒有好。雖然校驗 所有的事情 都聽起來很簡單!—— 事實上,將校驗和與文件系統連接到一起有一些重大的挑戰;請參閱 設計文檔 了解詳細信息。

一流的配額支持

等等,配額?!從 ext2 出現的那天開始我們就有了這些!是的,但它們一直都是事后的添加的東西,而且它們總是犯傻。這里可能不值得詳細介紹,但 設計文檔 列出了配額將從用戶空間移動到內核中的方式,并且能夠更加正確和高效地執行。

大分配塊

隨著時間的推移,那些討厭的存儲系統不斷變得越來越大。由于一些固態硬盤已經使用 8K 硬件塊大小,因此 ext4 對 4K 模塊的當前限制越來越受到限制。較大的存儲塊可以顯著減少碎片并提高性能,代價是增加“松弛”空間(當你只需要塊的一部分來存儲文件或文件的最后一塊時留下的空間)。你可以在 設計文檔 中查看詳細說明。

ext4 的實際限制

ext4 是一個健壯、穩定的文件系統。如今大多數人都應該在用它作為根文件系統,但它無法處理所有需求。讓我們簡單地談談你不應該期待的一些事情 —— 現在或可能在未來:

雖然 ext4 可以處理高達 1 EiB 大小(相當于 1,000,000 TiB)大小的數據,但你 真的 不應該嘗試這樣做。除了能夠記住更多塊的地址之外,還存在規模上的問題。并且現在 ext4 不會處理(并且可能永遠不會)超過 50-100 TiB 的數據。

ext4 也不足以保證數據的完整性。隨著日志記錄的重大進展又回到了 ext3 的那個時候,它并未涵蓋數據損壞的許多常見原因。如果數據已經在磁盤上被 破壞 —— 由于故障硬件,宇宙射線的影響(是的,真的),或者只是數據隨時間衰減 —— ext4 無法檢測或修復這種損壞。

基于上面兩點,ext4 只是一個純 文件系統,而不是存儲卷管理器。這意味著,即使你有多個磁盤 —— 也就是奇偶校驗或冗余,理論上你可以從 ext4 中恢復損壞的數據,但無法知道使用它是否對你有利。雖然理論上可以在不同的層中分離文件系統和存儲卷管理系統而不會丟失自動損壞檢測和修復功能,但這不是當前存儲系統的設計方式,并且它將給新設計帶來重大挑戰。

備用文件系統

在我們開始之前,提醒一句:要非常小心,沒有任何備用的文件系統作為主線內核的一部分而內置和直接支持!

即使一個文件系統是 安全的,如果在內核升級期間出現問題,使用它作為根文件系統也是非常可怕的。如果你沒有充分的理由通過一個 chroot 去使用替代介質引導,耐心地操作內核模塊、grub 配置和 DKMS……不要在一個很重要的系統中去掉預留的根文件。

可能有充分的理由使用你的發行版不直接支持的文件系統 —— 但如果你這樣做,我強烈建議你在系統啟動并可用后再安裝它。(例如,你可能有一個 ext4 根文件系統,但是將大部分數據存儲在 ZFS 或 Btrfs 池中。)

XFS

XFS 與非 ext 文件系統在 Linux 中的主線中的地位一樣。它是一個 64 位的日志文件系統,自 2001 年以來內置于 Linux 內核中,為大型文件系統和高度并發性提供了高性能(即大量的進程都會立即寫入文件系統)。
從 RHEL 7 開始,XFS 成為 Red Hat Enterprise Linux 的默認文件系統。對于家庭或小型企業用戶來說,它仍然有一些缺點 —— 最值得注意的是,重新調整現有 XFS 文件系統是一件非常痛苦的事情,不如創建另一個并復制數據更有意義。
雖然 XFS 是穩定的且是高性能的,但它和 ext4 之間沒有足夠具體的最終用途差異,以值得推薦在非默認(如 RHEL7)的任何地方使用它,除非它解決了對 ext4 的特定問題,例如大于 50 TiB 容量的文件系統。
XFS 在任何方面都不是 ZFS、Btrfs 甚至 WAFL(一個專有的 SAN 文件系統)的“下一代”文件系統。就像 ext4 一樣,它應該被視為一種更好的方式的權宜之計。

ZFS

ZFS 由 Sun Microsystems 開發,以 zettabyte 命名 —— 相當于 1 萬億 GB —— 因為它理論上可以解決大型存儲系統。
作為真正的下一代文件系統,ZFS 提供卷管理(能夠在單個文件系統中處理多個單獨的存儲設備),塊級加密校驗和(允許以極高的準確率檢測數據損壞), 自動損壞修復 (其中冗余或奇偶校驗存儲可用), 快速異步增量復制 ,內聯壓縮等, 以及更多 。
從 Linux 用戶的角度來看,ZFS 的最大問題是許可證問題。ZFS 許可證是 CDDL 許可證,這是一種與 GPL 沖突的半許可的許可證。關于在 Linux 內核中使用 ZFS 的意義存在很多爭議,其爭議范圍從“它是 GPL 違規”到“它是 CDDL 違規”到“它完全沒問題,它還沒有在法庭上進行過測試。”最值得注意的是,自 2016 年以來 Canonical 已將 ZFS 代碼內聯在其默認內核中,而且目前尚無法律挑戰。
此時,即使我作為一個非常狂熱于 ZFS 的用戶,我也不建議將 ZFS 作為 Linux 的根文件系統。如果你想在 Linux 上利用 ZFS 的優勢,用 ext4 設置一個小的根文件系統,然后將 ZFS 用在你剩余的存儲上,把數據、應用程序以及你喜歡的東西放在它上面 —— 但把 root 分區保留在 ext4 上,直到你的發行版明確支持 ZFS 根目錄。

Btrfs

Btrfs 是 B-Tree Filesystem 的簡稱,通常發音為 “butter” —— 由 Chris Mason 于 2007 年在 Oracle 任職期間發布。Btrfs 旨在跟 ZFS 有大部分相同的目標,提供多種設備管理、每塊校驗、異步復制、直列壓縮等, 還有更多 。
截至 2018 年,Btrfs 相當穩定,可用作標準的單磁盤文件系統,但可能不應該依賴于卷管理器。與許多常見用例中的 ext4、XFS 或 ZFS 相比,它存在嚴重的性能問題,其下一代功能 —— 復制、多磁盤拓撲和快照管理 —— 可能非常多,其結果可能是從災難性地性能降低到實際數據的丟失。
Btrfs 的維持狀態是有爭議的;SUSE Enterprise Linux 在 2015 年采用它作為默認文件系統,而 Red Hat 于 2017 年宣布它從 RHEL 7.4 開始不再支持 Btrfs。可能值得注意的是,該產品支持 Btrfs 部署用作單磁盤文件系統,而不是像 ZFS 中的多磁盤卷管理器,甚至 Synology 在它的存儲設備使用 Btrfs,但是它在傳統 Linux 內核 RAID(mdraid)之上分層來管理磁盤。

下面我們將ext~ext4的介紹、特點和優勢簡單的羅列一下:

文件系統名稱介紹特點優勢
ext第一代擴展文件系統,一種文件系統,于1992年4月發表,是為linux核心所做的第一個文件系統。采用Unix文件系統(UFS)的元數據結構,以克服MINIX文件系統性能不佳的問題。它是在linux上,第一個利用虛擬文件系統實現出的文件系統克服MINIX文件系統性能不佳的問題
ext2第二代擴展文件系統是LINUX內核所用的文件系統。它開始由Rémy Card設計,用以代替ext,于1993年1月加入linux核心支持之中。ext2 的經典實現為LINUX內核中的ext2fs文件系統驅動,最大可支持2TB的文件系統,至linux核心2.6版時,擴展到可支持32TB。在ext2文件系統中,文件由inode(包含有文件的所有信息)進行唯一標識。一個文件可能對應多個文件名,只有在所有文件名都被刪除后,該文件才會被刪除。此外,同一文件在磁盤中存放和被打開時所對應的inode是不同的,并由內核負責同步。文件系統高效穩定
ext3EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日志文件系統,常用于Linux操作系統。.Ext3文件系統是直接從Ext2文件系統發展而來,目前ext3文件系統已經非常穩定可靠。它完全兼容ext2文件系統。用戶可以平滑地過渡到一個日志功能健全的文件系統中來。1、高可用性:系統使用了ext3文件系統后,即使在非正常關機后,系統也不需要檢查文件系統。 2、數據的完整性:避免了意外宕機對文件系統的破壞。 3、文件系統的速度:因為ext3的日志功能對磁盤的驅動器讀寫頭進行了優化。所以,文件系統的讀寫性能較之Ext2文件系統并來說,性能并沒有降低。 4、數據轉換 :“由ext2文件系統轉換成ext3文件系統非常容易。 5、多種日志模式
ext4EXT4是第四代擴展文件系統(英語:Fourth extended filesystem,縮寫為 ext4)是Linux系統下的日志文件系統,是ext3文件系統的后繼版本。Ext4是由Ext3的維護者Theodore Tso領導的開發團隊實現的,并引入到Linux2.6.19內核中。Ext4是Ext3的改進版,修改了Ext3中部分重要的數據結構,而不僅僅像Ext3對Ext2那樣,只是增加了一個日志功能而已。Ext4可以提供更佳的性能和可靠性,還有更為豐富的功能1.與Ext3兼容:執行若干條命令,就能從Ext3在線遷移到Ext4,而無須重新格式化磁盤或重新安裝系統。 2.更大的文件系統和更大的文件:較之Ext3目前所支持的最大16TB文件系統和最大2TB文件,Ext4分別支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系統,以及16TB 的文件。 3.無限數量的子目錄:Ext3目前只支持32,000個子目錄,而Ext4支持無限數量的子目錄。 4.Extents:Ext4引入了現代文件系統中流行的extents概念,每個 extent 為一組連續的數據塊,相比Ext3采用間接塊映射,提高了不少效率。 5.多塊分配:Ext4 的多塊分配器“multiblock allocator”(mballoc) 支持一次調用分配多個數據塊。 *6.延遲分配 7.快速 fsck 8.日志校驗 9.“無日志”(No Journaling)模式 10.在線碎片整理 11.inode 相關特性:較之Ext3默認的inode大小128字節,ext4默認inode大小為256字節

感謝各位的閱讀!關于“Linux文件系統中ext4及更高版本的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秦皇岛市| 耒阳市| 嵊泗县| 滨州市| 郯城县| 滕州市| 长白| 册亨县| 德州市| 交口县| 莎车县| 独山县| 龙岩市| 类乌齐县| 鄄城县| 阿克陶县| 株洲县| 泾阳县| 喀喇沁旗| 衡南县| 新和县| 南陵县| 纳雍县| 榆社县| 嘉善县| 政和县| 都昌县| 化德县| 云霄县| 桦川县| 青冈县| 综艺| 富源县| 始兴县| 涟源市| 汨罗市| 巢湖市| 太谷县| 古浪县| 灵宝市| 桓台县|