'Linux文件系統格式有哪些類型?選錯你就要辭職了'

"

請關注本頭條號,每天堅持更新原創乾貨技術文章。

如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

1. 前言

本文主要講解如何正確選擇linux根分區文件系統類型,文件系統類型並不是分區時確認的,而是在格式化階段確認和實施的,格式分區時,選擇合適的文件系統很重要。

大家知道,Windows操作系統裡最常用的文件系統是NTFS,而Linux系統則大為不同。

"

請關注本頭條號,每天堅持更新原創乾貨技術文章。

如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

1. 前言

本文主要講解如何正確選擇linux根分區文件系統類型,文件系統類型並不是分區時確認的,而是在格式化階段確認和實施的,格式分區時,選擇合適的文件系統很重要。

大家知道,Windows操作系統裡最常用的文件系統是NTFS,而Linux系統則大為不同。

Linux文件系統格式有哪些類型?選錯你就要辭職了

linux文件系統格式類型介紹

2. 瞭解各種文件系統類型特性

Linux 支持多種不同的文件系統。每種文件系統都有其優點和缺點,以及它們自己的一組性能特徵。文件系統的一個重要屬性是日誌,它有助於在發生系統崩潰後更快地恢復。一般而言,在選擇時,日誌文件系統優先於非日誌文件系統。您可能還希望考慮您選擇的文件系統是否支持安全增強 Linux(或 SELinux)。兩種較新的文件系統 ZFS 和 btrfs 都使用了一種稱為 Copy on Write(寫時複製)的技術來改進數據完整性和解決大型存儲需求。以下是應對 LPI 考試您需要知道的文件系統類型的簡介。請參見 參考資料,獲取額外的背景信息。

"

請關注本頭條號,每天堅持更新原創乾貨技術文章。

如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

1. 前言

本文主要講解如何正確選擇linux根分區文件系統類型,文件系統類型並不是分區時確認的,而是在格式化階段確認和實施的,格式分區時,選擇合適的文件系統很重要。

大家知道,Windows操作系統裡最常用的文件系統是NTFS,而Linux系統則大為不同。

Linux文件系統格式有哪些類型?選錯你就要辭職了

linux文件系統格式類型介紹

2. 瞭解各種文件系統類型特性

Linux 支持多種不同的文件系統。每種文件系統都有其優點和缺點,以及它們自己的一組性能特徵。文件系統的一個重要屬性是日誌,它有助於在發生系統崩潰後更快地恢復。一般而言,在選擇時,日誌文件系統優先於非日誌文件系統。您可能還希望考慮您選擇的文件系統是否支持安全增強 Linux(或 SELinux)。兩種較新的文件系統 ZFS 和 btrfs 都使用了一種稱為 Copy on Write(寫時複製)的技術來改進數據完整性和解決大型存儲需求。以下是應對 LPI 考試您需要知道的文件系統類型的簡介。請參見 參考資料,獲取額外的背景信息。

Linux文件系統格式有哪些類型?選錯你就要辭職了

瞭解各種文件系統類型特性

2.1 ext2 文件系統介紹

ext2 文件系統(也稱為第二個擴展文件系統)被開發用來補充早期 Linux 版本中使用的 Minix 文件系統中的不足之處。多年以來,它被廣泛用於 Linux 之上。ext2 中沒有日誌,它在很大程度上已被 ext3 和最新的 ext4 所取代。

"

請關注本頭條號,每天堅持更新原創乾貨技術文章。

如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

1. 前言

本文主要講解如何正確選擇linux根分區文件系統類型,文件系統類型並不是分區時確認的,而是在格式化階段確認和實施的,格式分區時,選擇合適的文件系統很重要。

大家知道,Windows操作系統裡最常用的文件系統是NTFS,而Linux系統則大為不同。

Linux文件系統格式有哪些類型?選錯你就要辭職了

linux文件系統格式類型介紹

2. 瞭解各種文件系統類型特性

Linux 支持多種不同的文件系統。每種文件系統都有其優點和缺點,以及它們自己的一組性能特徵。文件系統的一個重要屬性是日誌,它有助於在發生系統崩潰後更快地恢復。一般而言,在選擇時,日誌文件系統優先於非日誌文件系統。您可能還希望考慮您選擇的文件系統是否支持安全增強 Linux(或 SELinux)。兩種較新的文件系統 ZFS 和 btrfs 都使用了一種稱為 Copy on Write(寫時複製)的技術來改進數據完整性和解決大型存儲需求。以下是應對 LPI 考試您需要知道的文件系統類型的簡介。請參見 參考資料,獲取額外的背景信息。

Linux文件系統格式有哪些類型?選錯你就要辭職了

瞭解各種文件系統類型特性

2.1 ext2 文件系統介紹

ext2 文件系統(也稱為第二個擴展文件系統)被開發用來補充早期 Linux 版本中使用的 Minix 文件系統中的不足之處。多年以來,它被廣泛用於 Linux 之上。ext2 中沒有日誌,它在很大程度上已被 ext3 和最新的 ext4 所取代。

Linux文件系統格式有哪些類型?選錯你就要辭職了

ext2 文件系統介紹

2.2 ext3 文件系統介紹

ext3 文件系統向標準的 ext2 文件系統添加了日誌功能,因此是一個非常穩定的文件系統的一次革命性改進。它在大部分條件下都提供了合理的性能,而且仍在不斷改進。因為它在成熟的 ext2 文件系統上添加了日誌,所以可以將現有的 ext2 文件系統轉換為 ext3,甚至可以在需要時再次轉換回來。

EXT3文件系統的唯一目標是克服fsck程序需要大量時間來完全恢復因文件更新操作期間發生的不正確關閉而損壞的磁盤結構的問題。EXT文件系統的唯一增加是journal,它預先記錄了將對文件系統執行的改動。磁盤結構的其餘部分和EXT2中是相同的。

EXT3中的journal並不是直接將數據寫入磁盤的數據區域,而是將文件數據及其元數據寫入到磁盤上的指定區域。一旦數據安全地存儲在硬盤上,它就可以合併到目標文件或附加到目標文件中,而這幾乎不會丟失數據。由於該數據被提交到磁盤的數據區域,因此需更新journal以便在發生系統故障時文件系統保持一致狀態,然後該journal中的所有數據都被提交。在下次啟動時,將檢查文件系統是否存在不一致性,然後將journal中剩餘的數據提交到磁盤的數據區域以完成對目標文件的更新。

Linux實現的ext3文件系統,包括3個級別的日誌:

日記:(慢,但風險小)元數據和文件內容都在提交到主文件系統前寫入。這樣將提高穩定性但性能上有所損失,因為所有的數據都要寫入2次。如果沒有在/etc/fstab中加上這個選項,修改中的文件遇上kernel panic或突然斷電的時候就可能發生損毀的情況,當然,這還是得看軟體是怎麼寫入文件的。

順序:(中速,中等風險)順序和寫回類似,但在對應的元數據標記為提交前,強制寫入文件內容。這是很多Linux發行版默認的方式。

回寫:(快,但風險最大;在某種感覺上和ext2相當)這邊會寫入日誌的只有metadata而已,文件的內容並不會跟著寫入日誌裡面。這樣的作法讓整個效率變快了不少,不過也同樣造成了文件寫入時不按順序的結果。舉例來說,文件在附加變大的同時發生了crash的情況,就可能造成下次掛載時文件後面就附加一堆垃圾數據的情況。

儘管ext3缺少一些當代文件系統的特點,像是動態的inode、樹狀的資料儲放結構等等,都是被視作ext3的缺點之一,不過在這些特點之外,ext3在文件系統回覆上面就有了很好的表現。跟樹狀結構的文件系統相比,在ext3上面metadata是放在固定的位置,而且在寫入的同時會重複寫入的一些資料讓ext2/3在面臨資料損毀的情況下還有挽回的機會。

2.3 ext4 文件系統介紹

ext4 文件系統最初是 ext3 的擴展,它通過增加存儲限制和提高性能來滿足更大的文件系統的需求。為了保留 ext3 的穩定性,2006 年 6 月決定將這些擴展分支到一個新文件系統中,也就是 ext4。ext4 文件系統於 2008 年 12 月發佈,包含在 2.6.28 內核中。對 ext3 的一些更改包括:

  • 文件系統最大為 1 EB,可包含最大 16 TB 的文件
  • 使用盤區來取代塊映射,以此作為提高性能的一種途徑
  • 使用日誌校驗和提高可靠性
  • 因為在檢查期間會跳過未分配的塊,所以文件系統檢查更快。
  • 延遲的分配和多塊分配器提高了性能並減少了文件碎片。
  • 時間戳更改提供了更細的粒度,增加了一個新的創建日期(需要最終更新許多庫和實用程序才能完-全發揮作用)。一項進一步的時間戳更改解決了將時間戳存儲為有符號 32 位整數所導致的 2038 年問題。
  • 大型文件系統
  • ext4文件系統可支持最高1 Exbibyte的分區[6]與最大16 Tebibyte的文件。
  • Extents
  • ext4引進了Extent文件存儲方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續實體block,這種方式可以增加大型文件的效率並減少分裂文件。ext4支持的單一Extent,在單一block為4KB的系統中最高可達128MB[1]。單一inode中可存儲4筆Extent;超過四筆的Extent會以Htree方式被索引。
  • 向下兼容
  • ext4向下兼容於ext3與ext2,因此可以將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校驗和處理
  • 在線磁盤整理
  • 對於在線磁盤整理工具有許多草案,但是這些草案都沒有被包含在主流的內核當中。即使Ext4包含有許多避免磁盤碎片的技術,但是磁盤碎片還是難免會在一個長時間使用過的文件系統中存在。Ext4將會有一個具有磁盤整理功能的工具。
  • 快速文件系統檢查
  • Ext4將未使用的區塊標記在inode當中,這樣可以使諸如e2fsck之類的工具在磁盤檢查時將這些區塊完全跳過,而節約大量的文件系統檢查的時間。這個特性已經在2.6.24版本的Linux內核中實現。

2.4 XFS 文件系統介紹

XFS,一種高性能的日誌文件系統,最早於1993年,由Silicon Graphics為他們的IRIX操作系統而開發,是IRIX 5.3版的默認文件系統。2000年5月,Silicon Graphics以GNU通用公共許可證發佈這套系統的源代碼,之後被移植到Linux內核上。XFS特別擅長處理大文件,同時提供平滑的數據傳輸。當前CentOS 7也將XFS+LVM作為默認的文件系統。

XFS 是一種包含日誌功能的文件系統。它擁有可靠的功能並針對可伸縮性進行了優化。XFS 大膽地將傳輸中的數據緩存在 RAM 中,所以在使用 XFS 時,推薦使用不會中斷的電源。

交換文件系統

交換空間必須格式化才能用作交換空間,但它一般不會被視為文件系統。

XFS的開發始於1993年,在1994年被首次部署在IRIX 5.3上。2000年5月,XFS在GNU通用公共許可證下發布,並被移植到Linux上。2001年XFS首次被Linux發行版所支持,現在所有的Linux發行版上都可以使用XFS。

XFS最初被合併到Linux 2.4主線中,這使得XFS幾乎可以被用在任何一個Linux系統上。Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva, Slackware, Ubuntu, VectorLinux和Zenwalk的安裝程序中都可選擇XFS作為文件系統,但由於默認的啟動管理器GRUB中存在bug[1],以上發行版中只有少數幾個允許用戶在 /boot 掛載點(引導目錄)上使用XFS文件系統。

FreeBSD在2005年12月獲得了對XFS的只讀支持,並在次年6月引入了試驗性的寫支持。不過這些只是為了方便用戶從Linux上遷移到FreeBSD上,並不是為了把XFS作為主打文件系統使用。Red Hat Enterprise Linux 5.4 64位版的內核完整支持XFS,但未包含創建和使用XFS的命令行工具(CentOS正在進行這方面的嘗試),原因是這些軟件包還不夠穩定[2]。Red Hat Enterprise Linux 7/CentOS默認使用XFS文件系統。

2.5 vfat 文件系統

此文件系統(也稱為 FAT32)沒有日誌功能,缺少完整的 Linux 文件系統實現所需的許多功能。它對在 Windows 與 Linux 系統之間交換數據很有用,因為它可以同時被 Windows 和 Linux 讀取。不要將此文件系統用於 Linux,除非用該文件系統在 Windows 和 Linux 之間共享數據。如果將 Linux 存檔文件解壓到 vfat 磁盤上,您將失去一些權限,比如執行權限,而且您將失去可能存儲在該存檔文件中的所有符號鏈接。

2.6 ReiserFS 文件系統

ReiserFS 是一種基於 B 樹的文件系統,它具有非常好的整體性能,尤其對於大量小文件。ReiserFS 還具有良好的擴展性能並具有日誌功能。它沒有再得到積極開發,不支持 SELinux,在很大程度上已被 Reiser4 取代,而後者的未來並不明朗。

  • 先進的日誌機制
  • ReiserFS有先進的日誌(Journaling/logging)機制,在系統意外崩潰的時候,未完成的文件操作不會影響到整個文件系統結構的完整性。 ext2雖然健壯性很強,但一旦文件系統被不正常地斷開,在下一次啟動時它將不得不進行漫長的檢查系統數據結構的完整性的過程,這是為了防止數據丟失而必需的操作。對於較大型的服務器文件系統,這種"文件系統檢查"可能要持續好幾個小時,在很多場合下這樣長的時間是無法接受的。 解決這個問題的一種技術"日誌文件系統"。在日誌的幫助下,每個對數據結構的改變都被記錄下來,日誌在機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬盤。正因為如此,在系統突然崩潰時,在下次啟動幾秒鐘後就能恢復成一個完整的系統,系統也就能很快的使用了。
  • 支持海量磁盤和優秀的綜合性能
  • ReiserFS是一個相當現代化的文件系統,相比之下,ext2雖然性能已經很好了,但其設計還只是20世紀80年代的水準。ReiserFS的出現,使Linux擁有了像Irix/AIX那樣的高檔商用Unix才有的高級文件系統。ReiserFS可輕鬆管理上百G的文件系統,在企業級應用中有其用武之地,由於它的高效存儲和快速小文件I/O特點,它在桌面系統上也表現出色:啟動X窗口系統的時間ReiserFS比ext2少1/3。而ext2則無法管理2G以上的單個文件,這也使得ReiserFS在某些大型企業級應用中比ext2要出色。
  • ReiserFS的缺點
  • ReiserFS一個最受人批評的缺點是每升級一個版本,都將要將磁盤重新格式化一次,這個缺點也正在改進中。

2.7 btrfs 文件系統

btrfs(B 樹文件系統)最初由 Oracle 開發,可根據 GPL 許可來獲得(參見 參考資料)。它是一種用於 Linux 的新的寫時複製文件系統,旨在實現高級功能,同時專注於容錯、修復和輕鬆的管理。Btrfs 文件系統代碼自 2009 年的 2.6.29 版開始已加入主線內核中。具體地講,該文件系統旨在高效地處理大型文件,處理貫穿多個設備的文件系統。

一些設計目標包括:

  • 很大的文件大小(高達 2^64 字節)
  • 數據和元數據的校驗和
  • 集成了對多個設備的支持
  • SSD 感知
  • 高效的增量備份
  • 數據完整性
  • 寫時複製不會重寫數據,所以硬件故障不會讓數據處於不一致狀態
  • 像大部分新文件系統一樣,該系統花了很長時間才獲得了足夠的穩定性,以供用戶向其提交重要的數據,所以它還不是大多數 Linux 發行版的主要文件系統。

3. 適合Linux根分區的文件系統

"

請關注本頭條號,每天堅持更新原創乾貨技術文章。

如需學習視頻,請在微信搜索公眾號“智傳網優”直接開始自助視頻學習

1. 前言

本文主要講解如何正確選擇linux根分區文件系統類型,文件系統類型並不是分區時確認的,而是在格式化階段確認和實施的,格式分區時,選擇合適的文件系統很重要。

大家知道,Windows操作系統裡最常用的文件系統是NTFS,而Linux系統則大為不同。

Linux文件系統格式有哪些類型?選錯你就要辭職了

linux文件系統格式類型介紹

2. 瞭解各種文件系統類型特性

Linux 支持多種不同的文件系統。每種文件系統都有其優點和缺點,以及它們自己的一組性能特徵。文件系統的一個重要屬性是日誌,它有助於在發生系統崩潰後更快地恢復。一般而言,在選擇時,日誌文件系統優先於非日誌文件系統。您可能還希望考慮您選擇的文件系統是否支持安全增強 Linux(或 SELinux)。兩種較新的文件系統 ZFS 和 btrfs 都使用了一種稱為 Copy on Write(寫時複製)的技術來改進數據完整性和解決大型存儲需求。以下是應對 LPI 考試您需要知道的文件系統類型的簡介。請參見 參考資料,獲取額外的背景信息。

Linux文件系統格式有哪些類型?選錯你就要辭職了

瞭解各種文件系統類型特性

2.1 ext2 文件系統介紹

ext2 文件系統(也稱為第二個擴展文件系統)被開發用來補充早期 Linux 版本中使用的 Minix 文件系統中的不足之處。多年以來,它被廣泛用於 Linux 之上。ext2 中沒有日誌,它在很大程度上已被 ext3 和最新的 ext4 所取代。

Linux文件系統格式有哪些類型?選錯你就要辭職了

ext2 文件系統介紹

2.2 ext3 文件系統介紹

ext3 文件系統向標準的 ext2 文件系統添加了日誌功能,因此是一個非常穩定的文件系統的一次革命性改進。它在大部分條件下都提供了合理的性能,而且仍在不斷改進。因為它在成熟的 ext2 文件系統上添加了日誌,所以可以將現有的 ext2 文件系統轉換為 ext3,甚至可以在需要時再次轉換回來。

EXT3文件系統的唯一目標是克服fsck程序需要大量時間來完全恢復因文件更新操作期間發生的不正確關閉而損壞的磁盤結構的問題。EXT文件系統的唯一增加是journal,它預先記錄了將對文件系統執行的改動。磁盤結構的其餘部分和EXT2中是相同的。

EXT3中的journal並不是直接將數據寫入磁盤的數據區域,而是將文件數據及其元數據寫入到磁盤上的指定區域。一旦數據安全地存儲在硬盤上,它就可以合併到目標文件或附加到目標文件中,而這幾乎不會丟失數據。由於該數據被提交到磁盤的數據區域,因此需更新journal以便在發生系統故障時文件系統保持一致狀態,然後該journal中的所有數據都被提交。在下次啟動時,將檢查文件系統是否存在不一致性,然後將journal中剩餘的數據提交到磁盤的數據區域以完成對目標文件的更新。

Linux實現的ext3文件系統,包括3個級別的日誌:

日記:(慢,但風險小)元數據和文件內容都在提交到主文件系統前寫入。這樣將提高穩定性但性能上有所損失,因為所有的數據都要寫入2次。如果沒有在/etc/fstab中加上這個選項,修改中的文件遇上kernel panic或突然斷電的時候就可能發生損毀的情況,當然,這還是得看軟體是怎麼寫入文件的。

順序:(中速,中等風險)順序和寫回類似,但在對應的元數據標記為提交前,強制寫入文件內容。這是很多Linux發行版默認的方式。

回寫:(快,但風險最大;在某種感覺上和ext2相當)這邊會寫入日誌的只有metadata而已,文件的內容並不會跟著寫入日誌裡面。這樣的作法讓整個效率變快了不少,不過也同樣造成了文件寫入時不按順序的結果。舉例來說,文件在附加變大的同時發生了crash的情況,就可能造成下次掛載時文件後面就附加一堆垃圾數據的情況。

儘管ext3缺少一些當代文件系統的特點,像是動態的inode、樹狀的資料儲放結構等等,都是被視作ext3的缺點之一,不過在這些特點之外,ext3在文件系統回覆上面就有了很好的表現。跟樹狀結構的文件系統相比,在ext3上面metadata是放在固定的位置,而且在寫入的同時會重複寫入的一些資料讓ext2/3在面臨資料損毀的情況下還有挽回的機會。

2.3 ext4 文件系統介紹

ext4 文件系統最初是 ext3 的擴展,它通過增加存儲限制和提高性能來滿足更大的文件系統的需求。為了保留 ext3 的穩定性,2006 年 6 月決定將這些擴展分支到一個新文件系統中,也就是 ext4。ext4 文件系統於 2008 年 12 月發佈,包含在 2.6.28 內核中。對 ext3 的一些更改包括:

  • 文件系統最大為 1 EB,可包含最大 16 TB 的文件
  • 使用盤區來取代塊映射,以此作為提高性能的一種途徑
  • 使用日誌校驗和提高可靠性
  • 因為在檢查期間會跳過未分配的塊,所以文件系統檢查更快。
  • 延遲的分配和多塊分配器提高了性能並減少了文件碎片。
  • 時間戳更改提供了更細的粒度,增加了一個新的創建日期(需要最終更新許多庫和實用程序才能完-全發揮作用)。一項進一步的時間戳更改解決了將時間戳存儲為有符號 32 位整數所導致的 2038 年問題。
  • 大型文件系統
  • ext4文件系統可支持最高1 Exbibyte的分區[6]與最大16 Tebibyte的文件。
  • Extents
  • ext4引進了Extent文件存儲方式,以取代ext2/3使用的block mapping方式。Extent指的是一連串的連續實體block,這種方式可以增加大型文件的效率並減少分裂文件。ext4支持的單一Extent,在單一block為4KB的系統中最高可達128MB[1]。單一inode中可存儲4筆Extent;超過四筆的Extent會以Htree方式被索引。
  • 向下兼容
  • ext4向下兼容於ext3與ext2,因此可以將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校驗和處理
  • 在線磁盤整理
  • 對於在線磁盤整理工具有許多草案,但是這些草案都沒有被包含在主流的內核當中。即使Ext4包含有許多避免磁盤碎片的技術,但是磁盤碎片還是難免會在一個長時間使用過的文件系統中存在。Ext4將會有一個具有磁盤整理功能的工具。
  • 快速文件系統檢查
  • Ext4將未使用的區塊標記在inode當中,這樣可以使諸如e2fsck之類的工具在磁盤檢查時將這些區塊完全跳過,而節約大量的文件系統檢查的時間。這個特性已經在2.6.24版本的Linux內核中實現。

2.4 XFS 文件系統介紹

XFS,一種高性能的日誌文件系統,最早於1993年,由Silicon Graphics為他們的IRIX操作系統而開發,是IRIX 5.3版的默認文件系統。2000年5月,Silicon Graphics以GNU通用公共許可證發佈這套系統的源代碼,之後被移植到Linux內核上。XFS特別擅長處理大文件,同時提供平滑的數據傳輸。當前CentOS 7也將XFS+LVM作為默認的文件系統。

XFS 是一種包含日誌功能的文件系統。它擁有可靠的功能並針對可伸縮性進行了優化。XFS 大膽地將傳輸中的數據緩存在 RAM 中,所以在使用 XFS 時,推薦使用不會中斷的電源。

交換文件系統

交換空間必須格式化才能用作交換空間,但它一般不會被視為文件系統。

XFS的開發始於1993年,在1994年被首次部署在IRIX 5.3上。2000年5月,XFS在GNU通用公共許可證下發布,並被移植到Linux上。2001年XFS首次被Linux發行版所支持,現在所有的Linux發行版上都可以使用XFS。

XFS最初被合併到Linux 2.4主線中,這使得XFS幾乎可以被用在任何一個Linux系統上。Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva, Slackware, Ubuntu, VectorLinux和Zenwalk的安裝程序中都可選擇XFS作為文件系統,但由於默認的啟動管理器GRUB中存在bug[1],以上發行版中只有少數幾個允許用戶在 /boot 掛載點(引導目錄)上使用XFS文件系統。

FreeBSD在2005年12月獲得了對XFS的只讀支持,並在次年6月引入了試驗性的寫支持。不過這些只是為了方便用戶從Linux上遷移到FreeBSD上,並不是為了把XFS作為主打文件系統使用。Red Hat Enterprise Linux 5.4 64位版的內核完整支持XFS,但未包含創建和使用XFS的命令行工具(CentOS正在進行這方面的嘗試),原因是這些軟件包還不夠穩定[2]。Red Hat Enterprise Linux 7/CentOS默認使用XFS文件系統。

2.5 vfat 文件系統

此文件系統(也稱為 FAT32)沒有日誌功能,缺少完整的 Linux 文件系統實現所需的許多功能。它對在 Windows 與 Linux 系統之間交換數據很有用,因為它可以同時被 Windows 和 Linux 讀取。不要將此文件系統用於 Linux,除非用該文件系統在 Windows 和 Linux 之間共享數據。如果將 Linux 存檔文件解壓到 vfat 磁盤上,您將失去一些權限,比如執行權限,而且您將失去可能存儲在該存檔文件中的所有符號鏈接。

2.6 ReiserFS 文件系統

ReiserFS 是一種基於 B 樹的文件系統,它具有非常好的整體性能,尤其對於大量小文件。ReiserFS 還具有良好的擴展性能並具有日誌功能。它沒有再得到積極開發,不支持 SELinux,在很大程度上已被 Reiser4 取代,而後者的未來並不明朗。

  • 先進的日誌機制
  • ReiserFS有先進的日誌(Journaling/logging)機制,在系統意外崩潰的時候,未完成的文件操作不會影響到整個文件系統結構的完整性。 ext2雖然健壯性很強,但一旦文件系統被不正常地斷開,在下一次啟動時它將不得不進行漫長的檢查系統數據結構的完整性的過程,這是為了防止數據丟失而必需的操作。對於較大型的服務器文件系統,這種"文件系統檢查"可能要持續好幾個小時,在很多場合下這樣長的時間是無法接受的。 解決這個問題的一種技術"日誌文件系統"。在日誌的幫助下,每個對數據結構的改變都被記錄下來,日誌在機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬盤。正因為如此,在系統突然崩潰時,在下次啟動幾秒鐘後就能恢復成一個完整的系統,系統也就能很快的使用了。
  • 支持海量磁盤和優秀的綜合性能
  • ReiserFS是一個相當現代化的文件系統,相比之下,ext2雖然性能已經很好了,但其設計還只是20世紀80年代的水準。ReiserFS的出現,使Linux擁有了像Irix/AIX那樣的高檔商用Unix才有的高級文件系統。ReiserFS可輕鬆管理上百G的文件系統,在企業級應用中有其用武之地,由於它的高效存儲和快速小文件I/O特點,它在桌面系統上也表現出色:啟動X窗口系統的時間ReiserFS比ext2少1/3。而ext2則無法管理2G以上的單個文件,這也使得ReiserFS在某些大型企業級應用中比ext2要出色。
  • ReiserFS的缺點
  • ReiserFS一個最受人批評的缺點是每升級一個版本,都將要將磁盤重新格式化一次,這個缺點也正在改進中。

2.7 btrfs 文件系統

btrfs(B 樹文件系統)最初由 Oracle 開發,可根據 GPL 許可來獲得(參見 參考資料)。它是一種用於 Linux 的新的寫時複製文件系統,旨在實現高級功能,同時專注於容錯、修復和輕鬆的管理。Btrfs 文件系統代碼自 2009 年的 2.6.29 版開始已加入主線內核中。具體地講,該文件系統旨在高效地處理大型文件,處理貫穿多個設備的文件系統。

一些設計目標包括:

  • 很大的文件大小(高達 2^64 字節)
  • 數據和元數據的校驗和
  • 集成了對多個設備的支持
  • SSD 感知
  • 高效的增量備份
  • 數據完整性
  • 寫時複製不會重寫數據,所以硬件故障不會讓數據處於不一致狀態
  • 像大部分新文件系統一樣,該系統花了很長時間才獲得了足夠的穩定性,以供用戶向其提交重要的數據,所以它還不是大多數 Linux 發行版的主要文件系統。

3. 適合Linux根分區的文件系統

Linux文件系統格式有哪些類型?選錯你就要辭職了

適合Linux根分區的文件系統

CentOS 7.0開始默認文件系統是xfs,CentOS 6是ext4,CentOS 5是ext3

xfs是一種非常優秀的日誌文件系統,它是SGI公司設計的。xfs被稱為業界最先進的、最具可升級性的文件系統技術xfs是一個64位文件系統,最大支持8EB減1字節的單個文件系統,實際部署時取決於宿主操作系統的最大塊限制。對於一個32位Linux系統,文件和文件系統的大小會被限制在16TB。

Linux kernel 自 2.6.28 開始正式支持新的文件系統 Ext4。 Ext4 是 Ext3 的改進版,修改了 Ext3 中部分重要的數據結構,而不僅僅像 Ext3 對 Ext2 那樣,只是增加了一個日誌功能而已。Ext4 可以提供更佳的性能和可靠性,還有更為豐富的功能:

ext3和ext4的最大區別在於,ext3在fsck時需要耗費大量時間(文件越多,時間越長),而ext4在fsck時用的時間會少非常多ext4是第四代擴展文件系統(英語:Fourth EXtended filesystem,縮寫為ext4)是linux系統下的日誌文件系統,是ext3文件系統的後繼版本。

本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:

https://www.linuxrumen.com/rmxx/1121.html

點擊瞭解更多,快速查看更多的技術文章列表。

"

相關推薦

推薦中...