国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux下文件系統類型的學習

2024-06-28 13:19:53
字體:
來源:轉載
供稿:網友
linux下文件系統類型的學習

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的文件系統類型,叫做擴展文件系統。它在1992年4月完成的。它為Linux的發展取得了重要作用。但是在性能和兼容性上存在許多缺陷。現在已經很少使用了。

3、ext2   ext2是為解決ext文件系統的缺陷而設計的可擴展的高性能的文件系統。又被稱為二級擴展文件系統。它是在1993年發布的,設計者是ReyCard。ext2是Linux文件系統類型中使用最多的格式。并且在速度和CPU利用率上較突出,是GNU/Linux系統中標準的文件系統,其特點為存取文件的性能極好,對于中小型的文件更顯示出優勢,這主要得利于其簇快取層的優良設計。Ext2可以支持256字節的長文件名,其單一文件大小與文件系統本身的容量上限與文件系統本身的簇大小有關,在一般常見的Intelx86兼容處理器的系統中,簇最大為4KB,則單一文件大小上限為2048GB,而文件系統的容量上限為6384GB。盡管Linux可以支持種類繁多的文件系統,但是2000年以前幾乎所有的Linux發行版都用ext2作為默認的文件系統。

  ext2的缺點:ext2的設計者主要考慮的是文件系統性能方面的問題。ext2在寫入文件內容的同時并沒有同時寫入文件的meta-data(和文件有關的信息,例如:權限、所有者以及創建和訪問時間)。換句話說,Linux先寫入文件的內容,然后等到有空的時候才寫入文件的meta-data。這樣若出現寫入文件內容之后但在寫入文件的meta-data之前系統突然斷電,就可能造成在文件系統就會處于不一致的狀態。在一個有大量文件操作的系統中出現這種情況會導致很嚴重的后果。另外但由于目前核心2.4所能使用的單一分割區最大只有2048GB,盡管文件系統的容量上限為6384G但是實際上能使用的文件系統容量最多也只有2048GB。 4、ext3 ext3是由開放資源社區開發的日志文件系統,主要開發人員是Stephentweedie。ext3被設計成是ext2的升級版本,盡可能地方便用戶從ext2fs向ext3fs遷移。ext3在ext2的基礎上加入了記錄元數據的日志功能,努力保持向前和向后的兼容性。這個文件系統被稱為ext2的下一個版本。也就是在保有目前ext2的格式之下再加上日志功能。ext3是一種日志式文件系統。日志式文件系統的優越性在于:由于文件系統都有快取層參與運作,如不使用時必須將文件系統卸下,以便將快取層的資料寫回磁盤中。因此每當系統要關機時,必須將其所有的文件系統全部卸下后才能進行關機。如果在文件系統尚未卸下前就關機(如停電)時,下次重開機后會造成文件系統的資料不一致,故這時必須做文件系統的重整工作,將不一致與錯誤的地方修復。然而,此一重整的工作是相當耗時的,特別是容量大的文件系統,而且也不能百分之百保證所有的資料都不會流失。故這在大型的伺服器上可能會造成問題。

ext3的缺點:其最大的缺點是沒有現代文件系統所具有的能提高文件數據處理速度和解壓的高性能,另外使用ext3文件系統時要注意硬盤限額問題,在這個問題解決之前,不推薦在重要的企業應用上采用ext3+diskquota(磁盤配額)。

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/Ext3Ext4
文件系統尺寸16TB1EB
最大文件尺寸2TB16TB

5.2 文件最大子目錄數(如下表所示)

Ext2/Ext3Ext4
最大子目錄數目3200065000

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分配器還有其他的改善,詳情參見http://ols.fedoraPRoject.org/OLS/Reprints-2008/kumar-reprint.pdf

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掉,這樣可以稍微改善性能

5.9 在線碎片整理

6、jsf   jsf提供了基于日志的字節級文件系統,該文件系統是為面向事務的高性能系統而開發的。jsf(JournaledFileSystemTechnologyforLinux)的開發者包括AIX(IBM的Unix)的jsf的主要開發者。在AIX上,jfs已經經受住了考驗。它是可靠、快速和容易使用的。2000年2月,ibm宣布在一個開放資源許可證下,移植linux版的JSF文件系統。JSFs也是一個有大量用戶安裝使用的企業級文件系統。它具有可伸縮性和健壯性,與非日志文件系統相比,它的優點是其快速重啟能力:Jfs能夠在幾秒或幾分鐘內就把文件系統恢復到一致狀態。雖然jsf主要是為滿足服務器(從單處理器系統到高級多處理器和群集系統)的高吞吐量和可靠性需求而設計的,jsf還可用于想得到高性能和可靠性的客戶機配置因為在系統崩潰時,jsf能提供快速文件系統重啟時間,所以它是因特網文件服務器的關鍵技術。使用數據庫日志處理技術,jsf能在幾秒或幾分鐘之內把文件系統恢復到一致狀態。而在非日志文件系統中,文件恢復可能花費幾小時或幾天。   jsf的缺點:使用jsf日志文件系統,性能上會有一定損失,系統資源占用的比率也偏高。是因為當它保持一個日志時,系統需要寫許多數據。 7、ReiserFS   ReiserFS的第一次公開亮相是在1997年7月23日,HansReiser把他的基于平衡樹結構的ReiserFS文件系統在網上公布。ReiserFS3.6.x(作為Linux2.4一部分的版本)是由HansReiser和他的在Namesys的開發組共同開發設計的。Hans和他的組員們相信最好的文件系統是那些能夠有助于創建獨立的共享環境或者命名空間的文件系統,應用程序可以在其中更直接、有效和有力地相互作用。為了實現這一目標,文件系統就應該滿足其使用者對性能和功能方面的需要。那樣,使用者就能夠繼續直接地使用文件系統,而不必建造運行在文件系統之上(如數據庫之類)的特殊目的層。ReiserFS使用了特殊的優化b*平衡樹(每個文件系統一個)來組織所有的文件系統數據。這為其自身提供了非常不錯的性能改進,也能夠減輕文件系統設計上的人為約束。例如,現在一個目錄下可以容納ext00,000個子目錄。另一個使用b*樹的好處就是ReiserFS能夠像大多其它的下一代文件系統一樣,根據需要動態地分配索引節,而不必在文件系統創建時建立固定的索引節。這有助于文件系統更靈活地適應其面臨的各種存儲需要,同時提供附加的空間有效率。 Reiserfs被看作是一個更加激進和現代的文件系統。傳統的UNIX文件系統是按盤塊來進行空間分配的,對于目錄和文件等的查找使用了簡單的線性查找。這些設計在當時是合適的,但隨著磁盤容量的增大和應用需求的增加,傳統文件系統在存儲效率,速度和功能上已顯落后。在reiserfs的下一版reiser4中還提供了對事務的支持。在[url]http://www.namesys.com/v4/v4.html[/url]中有reiser4的介紹和一個簡單的reiser4的性能測試。   ReiserFS的缺點:ReiserFS一個最受人批評的缺點是每升級一個版本,都將要將磁盤重新格式化一次。你可以在[url]http://www.namesys.com/[/url]網站了解關于ReiserFS的更多信息。 8、Xfs   xfs是一種非常優秀的日志文件系統,它是SGI公司設計的。xfs被稱為業界最先進的、最具可升級性的文件系統技術。它是一個全64位,快速、穩固的日志文件系統,多年用于SGI的IRIX操作系統。sgi決定支持Linux社區,將關鍵的基本架構技術授權于Linux。它以開放資源形式發布了他們自己擁有的xfs的源代碼,并開始進行移植。此工作進展得很快,目前已進入beta版階段。作為一個64位文件系統,xfs可以支持超大數量的文件(9g×1gb,甚至更大的18g×1gb),可在大型2d和3d數據方面提供顯著的性能。xfs有能力預測其它文件系統薄弱環節,同時xfs提供了在不妨礙性能的情況下增強可靠性和快速的事故恢復。SGI的xfs可為linux和開放資源社區帶來的新特性有:可升級性:xfs被設計成可升級,以面對大多數的存儲容量和i/o存儲需求,可處理大型文件和包含巨大數量文件的大型目錄,滿足二十一世紀快速增長的磁盤需求。xfs有能力動態地為文件分配索引空間,使系統形成高效支持大數量文件的能力。在它的支持下,用戶可使用1exabyte(1g×1gb)大的文件,遠遠大于現在最大的文件系統。優秀的i/o性能:典型的現代服務器使用大型的條帶式磁盤陣列,以提供達數gb/秒的總帶寬。xfs可以很好地滿足I/O請求的大小和并發I/O請求的數量。xfs可作為root文件系統,并被lilo支持.在NFS服務器上使用也沒問題.支持軟件磁盤陣列(RAID)和虛擬集群(LVM)。SGI最新發布xfs為1.0.1版.(在:[url]http://http://oss.sgi.com/projects/xfs/[/url]可以下載它)。   xfs的缺點:由于xfs比較復雜,實施起來有一些難度,所以目前xfs主要應用于Linux企業應用的高端。 9、其他文件系統簡介: Minix:Llnux支持的第一個文件系統,對用戶有很多限制而且性能低下。有些沒有時間標記,其文件名最長l4個字符。minix文件系統最大的缺點是最大只能使用64M的硬盤分區,所以在目前已經沒有人使用它了。 Xia:Minix文件系統修正后的版本。在一定程度上解決了文件名和文件系統大小的局限。但沒有新的特色,目前很少有人使用。 Msdos:msdos是在Dos、Windows和某些OS/2操作系統上使用的一種文件系統,其名稱采用“8+3”的形式,即8個字符的文件名加上3個字符的擴展名。 umsdos:Linux下的擴展msdos文件系統驅動,支持長文件名、所有者、允許權限、連接和設備文件。允許一個普通的msdos文件系統用于Linux,而且無須為它建立單獨的分區。 iso9660:標準CDROM文件系統,通用的RockRidge增強系統,允許長文件名。 Vfat:vfat是Windows9x和WindowsNT/2000下使用的一種Dos文件系統,其在Dos文件系統的基礎上增加了對長文件名的支持。 Nfs:Sun公司推出的網絡文件系統,允許多臺計算機之間共享同一文件系統,易于從所有這些計算機上存取文件。 Hpfs:HighPerformanceFileSystem(HPFS)高性能文件系統(HPFS)HPFS是Microsoft的LANManager中的文件系統,同時也是IBM的LANServer和OS/2的文件系統。HPFS能訪問較大的硬盤驅動器,提供更多的組織特性并改善了文件系統的安全特性。 Smb:smb是一種支持Windowsforworkgroups、WindowsNT和LanManager的基于SMB協議的網絡操作系統。 Sysv:sysv文件系統實際上是SystemV/Coherent在Linux平臺上的文件系統。 Ncpfs:ncpfs是一種NovellNetWare使用的NCP協議的網絡操作系統。 Proc:proc是Linux系統中作為一種偽文件系統出現的,它用來作為連接內核數據結構的界面。 NTFS:微軟WindowsNT內核的系列操作系統支持的、一個特別為網絡和磁盤配額、文件加密等管理安全特性設計的磁盤格式。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹凤县| 东乌珠穆沁旗| 雅安市| 青铜峡市| 永丰县| 平定县| 观塘区| 广元市| 乌苏市| 龙井市| 景宁| 长海县| 菏泽市| 东安县| 抚顺县| 建水县| 舞钢市| 荥阳市| 金平| 临邑县| 扬州市| 巴中市| 武清区| 上饶县| 澄江县| 滦南县| 集安市| 宝丰县| 永安市| 周宁县| 景德镇市| 教育| 阿拉善盟| 龙泉市| 宿州市| 雅江县| 武义县| 邓州市| 临武县| 措勤县| 晴隆县|