linux下檔案系統型別的學習

2021-07-04 17:50:38 字數 4500 閱讀 6093

1、 以超級使用者許可權登陸linux,進入  /lib/modules/2.6.32--504.el6.x86_64/kernel/fs目錄執行 ls 命令(不同linux發行版本的fs目錄有些不同你可以用查詢fs資料夾的方法找到它)。如下圖所示:

這裡我們對最常用的幾個檔案系統的發展情況和優缺點作詳細介紹:ext、ext2、ext3、jsf、 、xfs、reiserfs

2、ext是第乙個專門為linux的檔案系統型別,叫做擴充套件檔案系統。它在2023年4月完成的。它為linux的發展取得了重要作用。但是在效能和相容性上存在許多缺陷。現在已經很少使用了。

3、ext2

ext2是為解決ext檔案系統的缺陷而設計的可擴充套件的高效能的檔案系統。又被稱為二級擴充套件檔案系統。它是在2023年發布的,設計者是rey card。ext2是linux檔案系統型別中使用最多的格式。並且在速度和cpu利用率上較突出,是 gnu/linux 系統中標準的檔案系統,其特點為訪問檔案的效能極好,對於中小型的檔案更顯示出優勢,這主要得利於其簇快取層的優良設計。ext2 可以支援256位元組的長檔名,其單一檔案大小與檔案系統本身的容量上限與檔案系統本身的簇大小有關,在一般常見的intel x86相容處理器的系統中,簇最大為 4kb, 則單一檔案大小上限為 2048gb, 而檔案系統的容量上限為 6384gb。儘管linux可以支援種類繁多的檔案系統,但是2023年以前幾乎所有的linux發行版都用ext2作為預設的檔案系統。

ext2的缺點:ext2的設計者主要考慮的是檔案系統效能方面的問題。ext2在寫入檔案內容的同時並沒有同時寫入檔案的meta-data (和檔案有關的資訊,例如:許可權、所有者以及建立和訪問時間)。換句話說,linux先寫入檔案的內容,然後等到有空的時候才寫入檔案的meta- data。這樣若出現寫入檔案內容之後但在寫入檔案的meta-data之前系統突然斷電,就可能造成在檔案系統就會處於不一致的狀態。在乙個有大量檔案 操作的系統中出現這種情況會導致很嚴重的後果。另外但由於目前核心 2.4 所能使用的單一分割區最大只有 2048gb,儘管檔案系統的容量上限為 6384g但是實際上能使用的檔案系統容量最多也只有 2048gb。

4、 ext3

ext3是由開放資源社群開發的日誌檔案系統,主要開發人員是stephen tweedie。ext3被設計成是ext2的公升級版本,盡可能地方便使用者從ext2fs向ext3fs遷移。ext3在ext2的基礎上加入了記錄元數 據的日誌功能,努力保持向前和向後的相容性。這個檔案系統被稱為ext2的下乙個版本。也就是在保有目前 ext2 的格式之下再加上日誌功能。ext3是一種日誌式檔案系統。日誌式檔案系統的優越性在於:由於檔案系統都有快取層參與運作,如不使用時必須將檔案系統卸 下,以便將快取層的資料寫回磁碟中。因此每當系統要關機時,必須將其所有的檔案系統全部卸下後才能進行關機。如果在檔案系統尚未卸下前就關機 (如停電) 時,下次重開機後會造成檔案系統的資料不一致,故這時必須做檔案系統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當耗時的,特別是容 量大的檔案系統,而且也不能百分之百保證所有的資料都不會流失。故這在大型的伺服器上可能會造成問題。

ext3的缺點:其最大的缺點是沒有現代檔案系統所具有的能提高檔案資料處理速度和解壓的高效能,另外使用ext3檔案系統時要注意硬碟限額問題,在這個問題解決之前,不推薦在重要的企業應用上採用ext3+disk quota(磁碟配額)。

5、etx4

ext4是ext3的進化版本,而後者是linux作業系統最常用的檔案系統。ext4在很多方面對ext3做了改善,這種改變要遠多於ext3對 ext2做的改變。ext3和ext2的差別進侷限於日誌系統,但是ext4修改了檔案系統的大部分重要資料結構,比如檔案資料的儲存方式。因此改變了設 計,增強了效能,穩定性和features。

ext2/ext3與ext4進行比較:

5.1 大檔案系統,大檔案尺寸

ext2/ext3:

檔案系統尺寸計算方法 2^32 * block_size, 如果block_size是4096的話,那麼檔案系統尺寸上限是16tb;

最大檔案尺寸受到三個限制:

1.ext2_inode中的i_size:

乍一看i_size只有32bits,所以最大檔案尺寸不能超過2^32,實際不然,ext2/ext3使用了一種髒方法,借用了和i_size相鄰的i_dir_acl,所以可以擴充套件到用64bits來表示檔案大小,因此這不可能成為限制。

2. 是**間接塊的定址空間:

假定塊尺寸是4096,那麼**間接塊可表示1024*1024*1024*4096 = 4t

3. 最大檔案尺寸不能超過(2^32 -1)*512 = 2t,也就是能檔案尺寸不能超過32bits能表示的sectors數目。

因此ext2/ext3檔案系統,最大檔案限制是2tb。如下表所示:

ext2/ext3

ext4

檔案系統尺寸

16tb

1eb最大檔案尺寸

2tb16tb

5.2 檔案最大子目錄數(如下表所示)

ext2/ext3

ext4

最大子目錄數目

32000

65000

5.3extents

ext2/ext3檔案系統使用間接對映來管理檔案資料邏輯位址到物理塊的對映關係,間接對映分為一級間接,二級間接和**間接,檔案資料前面一小 部分則使用直接對映。因此對於小檔案來說,這種管理方式很簡潔高效。但是對於大檔案,特別是大檔案的刪除和truncate操作,因為要為每乙個被刪除塊 處理對映關係,所以對於很大的檔案來說,需要花費很長的時間。此外大檔案需要三階對映,也就是說訪檔案的邏輯塊,需要查詢訪問四個物理塊。

現代檔案系統引入了」extents「的概念,這個概念完全是為管理大檔案資料引入的,乙個extent包含一組連續的物理塊。僅僅使用乙個 extent管理一組邏輯位址塊到物理塊的對映,而無需為每一對建立對映。考慮乙個100mb的檔案,理想情況下,我們只需要乙個extent來記錄對映 關係,但是如果使用ext2/ext3的間接對映,則需要為25000個blocks建立對映關係。

由於extents有利於連續磁碟分配,因此extents會減少碎片,並改善檔案系統效能。

5.4 多塊分配

當ext3需要寫檔案資料到磁碟上,塊分配器決定使用哪乙個空閒塊來寫資料。但是ext3塊分配器每次只能分配乙個塊 4kb。這就意味著對於100mb大小的檔案,需要呼叫25000次塊分配器。低效不僅是因為呼叫了25000次塊分配器,而且也使得塊分配器無法優化分 配策略,因為塊分配器無法把這25000次分配關聯起來。

ext4使用乙個multiblock allocator(mballoc),使得一次分配很多塊成為可能。避免了多次分配,優化了分配策略,提高了效能,多塊分配器對delayed 分配和extents特別有用。這個feature不會影響到磁碟layout。

此外,ext4 block/inode分配器還有其他的改善,詳情參見

5.5 延遲分配

延遲分配是乙個效能優化技術,好幾個檔案系統中都使用延遲分配技術,比如xfs,zfs,btrfs和resier 4。和傳統檔案系統ext2/ext3塊分配相比,延遲分配盡可能的延緩塊的分配。

傳統的立即分配方法缺點:舉例來說,對於乙個寫呼叫,檔案系統**立刻分配資料塊的存放位置,甚至是資料還會在cache中存放一段時間才寫回磁碟的情況。當乙個程序持續的向檔案內寫資料,那麼接下來的每次寫操作都會為資料分配物理塊,而不知道檔案正在持續的增長。

而延遲分配,在呼叫寫操作時,如果資料僅僅寫到cache中,並不會立即分配塊,而是等到真正向磁碟寫入的時候才進行分配。這就使得塊分配器有機會 優化,組合這些分配的塊。延遲分配需要同extents和多塊分配配合。因為在一些工作場景下,檔案寫入磁碟時是按照extents進行分配的,而此時調 用的分配器也是mballoc分配器。

5.6 快速fsck

fsck操作非常耗時,特別是fsck的第一步:檢查檔案系統中的所有inode。ext4中,在每一組的inode表中存放著乙個未用的 inode鍊錶,所以fsck不需要檢查這些未用的inodes。因此整個的fsck時間可以改善2到20倍(依賴於未用inode的數目)。必須要注 意,是fsck建立的未用inode鍊錶,而不是ext4建立的。必須首先執行fsck來建立unused indes鍊錶,下一次的fsck才會便快。

5.7 日誌checksumming

日誌是磁碟中最常用的部分,因此使得這部分的塊更容易發生硬體錯誤。從出錯的日誌恢復系統可能會導致更大的錯誤。ext4使用check summing來確保journal資料是否有效。此外日誌checksumming還有附加的效果:它允許把ext3檔案系統的兩階段提交變為一階段提 交,在某些情況下,可以得到20%的速度增加,因此可靠性和速度同時得到了改善。

5.8 非日誌模式

日誌確保檔案系統的一致性,然而也增加了系統負載。在某些特殊場合下,資料完整性不重要時,可以執行無日誌的ext4。ext4日誌功能可以被disable掉,這樣可以稍微改善效能

linux下檔案系統和檔案編輯

一 linux檔案和目錄許可權操作 每乙個檔案和目錄的訪問許可權都有三組,每組用三位表示 1 檔案所屬的使用者具有讀 寫和可執行許可權 2 和檔案 目錄所屬的使用者的同組使用者只有讀和寫的許可權 3 其他使用者具備讀的許可權 rwxrw r 1 xiaoru xiaoru 444 jun 25 07...

linux常見檔案系統型別

檔案系統型別就是分割槽的格式。msdos dos檔案系統型別 vfat 支援長檔名的dos分割槽檔案系統,可以理解為winds檔案系統型別 iso9660 光碟格式檔案系統 ext2 ext3 ext4 linux下主流的檔案系統 nfsd 一種分布式檔案系統 1.檢視檔案系統型別 mount 檢視...

Linux檔案系統型別介紹

linux 把裝置都當作檔案一樣來進行操作,這樣就大大方便了使用者的使用 在後面的 linux 程式設計中可以更為明顯地看出 在 linux 下與裝置相關的檔案一般都在 dev 目錄下,它包括兩種,一種是塊裝置檔案,另一種是字元裝置檔案。這就涉及到檔案系統,以下介紹以下linux檔案系統。下面對li...