linux檔案系統分為:ext2 檔案系統;reiserfs 檔案系統;ext3 檔案系統;ext2檔案系統應該說是Linux正宗的檔案系統,ext3 檔案系統:是由ext2檔案系統發展而來,reiserfs 檔案系統支援大檔案,支援反删除(undelete)。
AD:
經過搜集和整理有關linux檔案的材料,在這裡本人給大家推薦linux檔案系統分類,相信大家看後會有不少收獲。
1、linux檔案系統配置設定政策:
塊配置設定(blockallocation)和擴充配置設定(extentallocation):
塊配置設定:磁盤上的檔案塊根據需要配置設定給檔案,避免了存儲空間的浪費。但當檔案擴充時,會造成檔案中檔案塊的不連續,進而導緻過多的磁盤尋道時間。
每一次檔案擴充時,塊配置設定算法就需要寫入檔案塊的結構資訊,也就是meta-dada。meta-data總是與檔案一起寫入儲存設備,改變檔案的操作要等到所有meta-data的操作都完成後才能進行,是以,meta-data的操作會明顯降低整個檔案系統的性能。
擴充配置設定:檔案建立時,一次性配置設定一連串連續的塊,當檔案擴充時,也一次配置設定很多塊。meta-data在檔案建立時寫入,當檔案大小沒有超過所有已配置設定檔案塊大小時,就不用寫入meta-data,直到需要再配置設定檔案塊的時候。
擴充配置設定采用成組配置設定塊的方式,減少了SCSI裝置寫資料的時間,在讀取順序檔案時具有良好的性能,但随機讀取檔案時,就和塊配置設定類似了。
檔案塊的組或塊簇(blockcluster)的大小是在編譯時确定的。簇的大小對檔案系統的性能有很大的影響。
注:meta-data元資訊:和檔案有關的資訊,比如權限、所有者以及建立、通路或更改時間等。
2、檔案的記錄形式
linux文家系統使用索引節點(inode)來記錄檔案資訊。索引節點是一種資料結構,它包含了一個檔案的長度、建立及修改時間、權限、所屬關系、磁盤中的位置等資訊。
一個檔案系統維護了一個索引節點的數組,每個檔案或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引号,稱為索引節點号。
linux檔案系統将檔案索引節點号和檔案名同時儲存在目錄中,是以,目錄隻是将檔案的名稱和它的索引節點号結合在一起的一張表,目錄中每一對檔案名稱和索引節點号稱為一個連接配接。
對于一個檔案來說,有一個索引節點号與之對應;而對于一個索引節點号,卻可以對應多個檔案名。
連接配接分為軟連接配接和硬連接配接,其中軟連接配接又叫符号連接配接。
硬連接配接:原檔案名和連接配接檔案名都指向相同的實體位址。目錄不能有硬連接配接;硬連接配接不能跨檔案系統(不能跨越不同的分區),檔案在磁盤中隻有一個拷貝。
由于删除檔案要在同一個索引節點屬于唯一的連接配接時才能成功,是以硬連接配接可以防止不必要的誤删除。
軟連接配接:用ln-s指令建立檔案的符号連接配接。符号連接配接是linux特殊檔案的一種,作為一個檔案,它的資料是它所連接配接的檔案的路徑名。沒有防止誤删除的功能。
3、linux檔案系統分類:
ext2:早期linux中常用的檔案系統
ext3:ext2的更新版,帶日志功能
RAMFS:記憶體檔案系統,速度很快
NFS:網絡檔案系統,由SUN發明,主要用于遠端檔案共享
MS-DOS:MS-DOS檔案系統
VFAT:Windows95/98作業系統采用的檔案系統
FAT:WindowsXP作業系統采用的檔案系統
NTFS:WindowsNT/XP作業系統采用的檔案系統
HPFS:OS/2作業系統采用的檔案系統
PROC:虛拟的程序檔案系統
ISO9660:大部分CD光牒所采用的檔案系統
ufsSun:OS所采用的檔案系統
NCPFS:Novell伺服器所采用的檔案系統
SMBFS:Samba的共享檔案系統
XFS:由SGI開發的先進的日志檔案系統,支援超大容量檔案
JFS:IBM的AIX使用的日志檔案系統
ReiserFS:基于平衡樹結構的檔案系統
udf:可擦寫的資料CD光牒檔案系統
4、虛拟檔案系統VFS
linux支援的所有檔案系統稱為邏輯檔案系統,而linux在傳統的邏輯檔案系統的基礎上增加料一個蓄念檔案系統(VitualFileSystem,VFS)的接口層。虛拟檔案系統(VFS)位于檔案系統的最上層,管理各種邏輯檔案系統,并可以屏蔽各種邏輯檔案系統之間的差異,提供統一檔案和裝置的通路接口。
5、檔案的邏輯結構
檔案的邏輯結構可分為兩大類:位元組流式的無結構檔案和記錄式的有結構檔案。
由位元組流(位元組序列)組成的檔案是一種無結構檔案或流式檔案,不考慮檔案内部的邏輯結構,隻是簡單地看作是一系列位元組的序列,便于在檔案的任意位置添加内容。
由記錄組成的檔案稱為記錄式檔案,記錄是這種檔案類型的基本資訊機關,記錄式檔案通用于資訊管理。
6、檔案類型
普通檔案:通常是流式檔案
目錄檔案:用于表示和管理系統中的全部檔案
連接配接檔案:用于不同目錄下檔案的共享
裝置檔案:包括塊裝置檔案和字元裝置檔案,塊裝置檔案表示磁盤檔案、CD光牒等,字元裝置檔案按照字元操作終端、鍵盤等裝置。
管道(FIFO)檔案:提供程序建通信的一種方式
套接字(socket)檔案:該檔案類型與網絡通信有關
7、檔案結構:
包括索引節點和資料
索引節點:又稱I節點,在檔案系統結構中,包含有關相應檔案的資訊的一個記錄,這些資訊包括檔案權限、檔案名、檔案大小、存放位置、建立日期等。檔案系統中所有檔案的索引節點儲存在索引節點表中。
資料:檔案的實際内容。可以是空的,也可以非常大,并且擁有自己的結構。
8、ext2檔案系統
ext2檔案系統的資料塊大小一般為1024B、2048B或4096B
ext2檔案系統采用的索引節點(inode):索引節點采用了多重索引結構,主要展現在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含檔案資料的資料塊,緊接在後面的3個間接指針是為了适應檔案的大小變化而設計的。
e.g:假設資料塊大小為1024B,利用12個直接指針,可以儲存最大為12KB的檔案,當檔案超過12KB時,則要利用單級間接指針,該指針指向的資料塊儲存有一組資料塊指針,這些指針依次指向包含有實際資料的資料塊,假如每個指針占用4B,則每個單級指針資料塊可儲存1024/4=256個資料指針,是以利用直接指針和單級間接指針可儲存1024*12+1024*256=268KB的檔案。
當檔案超過268KB時,再利用二級間接指針,直到使用三級間接指針。利用直接指針、單級間接指針、二級間接指針、三級間接指針可儲存的最大檔案大小為:1024*12+1024*256+1024*256*256+1024*256*256*256=16843020KB,約16GB,若資料塊大小為2048B,指針占4B,則最大檔案大小為:2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792KB約268GB
若資料塊大小為4096B,指針占4B,則最大檔案大小為:4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744KB,約4TB
注:指令tune2fs-l/dev/sda5可檢視檔案系統,ext2檔案系統最大檔案名長度:255個字元
ext2檔案系統的缺點:
ext2在寫入檔案内容的同時并沒有同時寫入檔案meta-data,其工作順序是先寫入檔案的内容,然後等空閑時候才寫入檔案的meta-data。若發生意外,則檔案系統就會處于不一緻狀态。在重新啟動系統的時候,linux會啟動fsk(filesystemcheck)的程式,掃描整個檔案系統并試圖修複,但不提供保證。
9、ext3檔案系統:
ext3基于ext2的代碼,是以磁盤格式與ext2相同,使用相同的中繼資料。
ext2檔案系統無損轉化為ext3檔案系統:tune2fs-j/dev/sda6
日志塊裝置(Journalingblockdevicelayer,JBD)完成ext3檔案系統日志功能。JBD不是ext3檔案系統所特有的,它的設計目标是為了向一個塊裝置添加日志功能。當一個檔案修改執行時,ext3檔案系統代碼将通知JBD,稱為一個事務(transaction)。發生意外時,日志功能具有的重放功能,能重新執行中斷的事務。
日志中的3種資料模式:
1)data=writeback:不處理任何形式的日志資料,給使用者整體上的最高性能
2)data=odered:隻記錄中繼資料日志,但将中繼資料和資料組成一個單元稱為事務(transaction)。此模式保持所句句的可靠性與檔案系統的一緻性,性能遠低于data=writeback模式,但比data=journal模式快
3)data=journal:提供完整的資料及中繼資料日志,所有新資料首先被寫入日志,然後才被定位。意外發生過後,日志可以被重放,将資料與中繼資料帶回一緻狀态。這種模式整體性能最慢,但資料需要從磁盤讀取和寫入磁盤時卻是3種模式中最快的。
ext3檔案系統最大檔案名長度:255個字元
ext3檔案系統的優點:可用性、資料完整性、速度、相容性
10、ReiserFS檔案系統
ReiserFS檔案系統是由HansReiser和他上司的開發小組共同開發的,整個檔案系統完全是從頭設計的,是一個非常優秀的檔案系統。也是最早用于Linux的日志檔案系統之一。
ReiserFS的特點:先進的日志機制
ReiserFS有先進的日志(Journaling/logging)功能機制。日志機制保證了在每個實際資料修改之前,相應的日志已經寫入硬碟。檔案與資料的安全性有了很大提高。
高效的磁盤空間利用 Reiserfs對一些小檔案不配置設定inode。而是将這些檔案打包,存放在同一個磁盤分塊中。而其它檔案系統則為每個小檔案分别放置到一個磁盤分塊中。 獨特的搜尋方式。 ReiserFS基于快速平衡樹(balancedtree)搜尋,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜尋大量檔案時,搜尋速度要比ext2快得多。Reiserfs檔案系統使用B*Tree存儲檔案,而其它檔案系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在檔案定位上速度非常快。在實際運用中,ReiserFS在處理小于4k的檔案時,比ext2快5倍;帶尾檔案壓縮功能(預設)的ReiserFS比ext2檔案系統多存儲6%的資料。 支援海量磁盤 |