㈠ linux文件系統基礎知識
linux文件系統基礎知識匯總
1、linux文件系統分配策略
塊分配( block allocation ) 和 擴展分配 ( extent allocation )
塊分配:磁碟上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁碟尋道時間。
每一次文件擴展時,塊分配演算法就需要寫入文件塊的結構信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成後才能進行,
因此,meta-data的操作會明顯降低整個文件系統的性能。
擴展分配: 文件創建時,一次性分配一連串連續的塊,當文件擴展時,也一次分配很多塊。meta-data在文件創建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
擴展分配採用成組分配塊的方式,減少了SCSI設備寫數據的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
文件塊的組或塊簇 ( block cluster) 的大小是在編譯時確定的。簇的大小對文件系統的性能有很大的影響。
註: meta-data 元信息:和文件有關的信息,比如許可權、所有者以及創建、訪問或更改時間等。
2、文件的記錄形式
linux文家系統使用索引節點(inode)來記錄文件信息。索引節點是一種數據結構,它包含了一個文件的長度、創建及修改時間、許可權、所屬關系、磁碟中的位置等信息。
一個文件系統維護了一個索引節點的數組,每個文件或目錄都與索引節點數組中的唯一的元素對應。每個索引節點在數組中的索引號,稱為索引節點號。
linux文件系統將文件索引節點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
對於一個文件來說,有一個索引節點號與之對應;而對於一個索引節點號,卻可以對應多個文件名。
連接分為軟連接和硬連接,其中軟連接又叫符號連接。
硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(不能跨越不同的分區),文件在磁碟中只有一個拷貝。
由於刪除文件要在同一個索引節點屬於唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
軟連接: 用 ln -s 命令建立文件的符號連接。符號連接是linux特殊文件的.一種,作為一個文件,它的數據是它所連接的文件的路徑名。沒有防止誤刪除的功能。
3、文件系統類型:
ext2 : 早期linux中常用的文件系統
ext3 : ext2的升級版,帶日誌功能
RAMFS : 內存文件系統,速度很快
NFS : 網路文件系統,由SUN發明,主要用於遠程文件共享
MS-DOS : MS-DOS文件系統
VFAT : Windows 95/98 操作系統採用的文件系統
FAT : Windows XP 操作系統採用的文件系統
NTFS : Windows NT/XP 操作系統採用的文件系統
HPFS : OS/2 操作系統採用的文件系統
PROC : 虛擬的進程文件系統
ISO9660 : 大部分光碟所採用的文件系統
ufsSun : OS 所採用的文件系統
NCPFS : Novell 伺服器所採用的文件系統
SMBFS : Samba 的共享文件系統
XFS : 由SGI開發的先進的日誌文件系統,支持超大容量文件
JFS :IBM的AIX使用的日誌文件系統
ReiserFS : 基於平衡樹結構的文件系統
udf: 可擦寫的數據光碟文件系統
4、虛擬文件系統VFS
linux支持的所有文件系統稱為邏輯文件系統,而linux在傳統的邏輯文件系統的基礎上增加料一個蓄念文件系統( Vitual File System ,VFS) 的介面層。
虛擬文件系統(VFS) 位於文件系統的最上層,管理各種邏輯文件系統,並可以屏蔽各種邏輯文件系統之間的差異,提供統一文件和設備的訪問介面。
5、文件的邏輯結構
文件的邏輯結構可分為兩大類: 位元組流式的無結構文件 和 記錄式的有結構文件。
由位元組流(位元組序列)組成的文件是一種無結構文件或流式文件 ,不考慮文件內部的邏輯結構,只是簡單地看作是一系列位元組的序列,便於在文件的任意位置添加內容。
由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類型的基本信息單位,記錄式文件通用於信息管理。
6、文件類型
普通文件 : 通常是流式文件
目錄文件 : 用於表示和管理系統中的全部文件
連接文件 : 用於不同目錄下文件的共享
設備文件 : 包括塊設備文件和字元設備文件,塊設備文件表示磁碟文件、光碟等,字元設備文件按照字元操作終端、鍵盤等設備。
管道(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=268 KB的文件。當文件超過268KB時,再利用二級間接指針,直到使用三級間接指針。
利用直接指針、單級間接指針、二級間接指針、三級間接指針可保存的最大文件大小為:
1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約 16GB
若數據塊大小為2048B,指針佔4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 約 268GB
若數據塊大小為4096B,指針佔4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約 4TB
註: 命令 tune2fs -l /dev/sda5 可查看文件系統
ext2文件系統最大文件名長度: 255個字元
ext2文件系統的缺點:
ext2在寫入文件內容的同時並沒有同時寫入文件meta-data, 其工作順序是先寫入文件的內容,然後等空閑時候才寫入文件的meta-data。若發生意外,則文件系統就會處於不一致狀態。
在重新啟動系統的時候,linux會啟動 fsk ( file system check) 的程序,掃描整個文件系統並試圖修復,但不提供保證。
9、ext3文件系統:
ext3基於ext2的代碼,所以磁碟格式與ext2相同,使用相同的元數據。
ext2文件系統無損轉化為ext3文件系統: tune2fs -j /dev/sda6
日誌塊設備( Journaling block device layer,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文件系統是由Hans Reiser和他領導的開發小組共同開發的,整個文件系統完全是從頭設計的,是一個非常優秀的文件系統。也是最早用於Linux的日誌文件系統之一。
ReiserFS的特點
先進的日誌機制
ReiserFS有先進的日誌(Journaling/logging)功能 機制。日誌機制保證了在每個實際數據修改之前,相應的日誌已經寫入硬碟。文件與數據的安全性有了很大提高。
高效的磁碟空間利用
Reiserfs對一些小文件不分配inode。而是將這些文件打包,存放在同一個磁碟分塊中。而其它文件系統則為每個小文件分別放置到一個磁碟分塊中。
獨特的搜尋方式
ReiserFS基於快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的演算法。ReiserFS搜索大量文件時,搜索速度要比ext2快得多。Reiserfs文件 系統使用B*Tree存儲文件,而其它文件系統使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常 快。
在實際運用中,ReiserFS 在處理小於 4k 的文件時,比ext2 快 5 倍;帶尾文件壓縮功能(默認)的ReiserFS 比ext2文件系統多存儲6%的數據。
支持海量磁碟
ReiserFS是一個非常優秀的文件系統,一直被用在高端UNIX系統上,可輕松管理上百G的文件系統,ReiserFS文件系統最大支持的文件系統尺寸為16TB。這非常適合企業級應用中。
優異的性能
由於它的高效存儲和快速小文件I/O特點,使用ReiserFs文件系統的PC,在啟動X窗口系統時,所花的時間要比在同一台機器上使用ext2文 件系統少1/3。另外,ReiserFS文件系統支持單個文件尺寸為4G的文件,這為大型資料庫系統在linux上的應用提供了更好的選擇。
;㈡ linux常見的文件類型
在Linux操作系統里有Ext2、Ext3、Linux swap和VFAT四種格式
Ext2:
Ext2是GNU/Linux系統中標準的文件系統。這是Linux中使用最多的一種文件系統,它是專門為Linux設計的,擁有極快的速度和極小的CPU佔用率。Ext2既可以用於標準的塊設備(如硬碟),也被應用在軟盤等移動存儲設備上。
Ext3:
Ext3是Ext2的下一代,也就是保有Ext2的格式之下再加上日誌功能。Ext3是一種日誌式文件系統(Journal File System),最大的特點是:它會將整個磁碟的寫入動作完整的記錄在磁碟的某個區域上,以便有需要時回溯追蹤。當在某個過程中斷時,系統可以根據這些記錄直接回溯並重整被中斷的部分,重整速度相當快。該分區格式被廣泛應用在Linux系統中。
Linux swap:
它是Linux中一種專門用於交換分區的swap文件系統。Linux是使用這一整個分區作為交換空間。一般這個swap格式的交換分區是主內存的2倍。在內存不夠時,Linux會將部分數據寫到交換分區上。
VFAT:
VFAT叫長文件名系統,這是一個與Windows系統兼容的Linux文件系統,支持長文件名,可以作為Windows與Linux交換文件的分區。
㈢ linux常見的文件系統有哪些
說說常見的吧 ,有以下幾種
Ext3是一款日誌文件系統能夠在異常停機中避免文件系統資料不一致的情況,自動修復數據的不一致與錯誤,然而一般重整文件系統相當耗費時間(尤其容量大的硬碟),當然也不能保證100%資料不流失。它將會將整個磁碟的寫入動作預先記錄下來(每個細節),所以在異常停機後可以回溯追蹤到被中斷的部分。
Ext4可以成為Ext3的後繼版本,作為RHEL6系統的默認文件管理系統,其支持更大的文件系統到1EB(1EB=1,073,741,824GB且能夠有無限多的子目錄),另外Ext4文件系統能夠批量分配block塊並作"Extents"極大的提高了讀寫效率。
XFS作為RHEL7默認的文件管理系統,它的日誌型文件管理系統的優勢在意外關機後尤其明顯,可以快速的恢復可能被破壞的文件,另外經過優化後日誌功能對硬碟性能影響非常小,同時最大支持18EB的存儲容量滿足了幾乎所有需求。
上邊的內容都是我在《linux就該這么學》這本書中學到的,你可以下載下來看看。
㈣ linux支持哪些文件系統
Ext、Ext4、ReiserFS文件系統。
1、Ext
Ext是 GNU/Linux 系統中標準的文件系統,其特點為存取文件的性能極好,對於中小型的文件更顯示出優勢,這主要得利於其簇快取層的優良設計。
其單一文件大小與文件系統本身的容量上限與文件系統本身的簇大小有關,在一般常見的 x86電腦系統中,簇最大為 4KB,則單一文件大小上限為 2048GB,而文件系統的容量上限為 16384GB。
2、Ext4
Linux kernel 自 2.6.28 開始正式支持新的文件系統 Ext4。Ext4 是 Ext3 的改進版,修改了 Ext3 中部分重要的數據結構,而不僅僅像 Ext3 對 Ext2 那樣,只是增加了一個日誌功能而已。
3、ReiserFS
是一種文件系統格式,作者是Hans Reiser及其團隊Namesys,1997年7月23日他將ReiserFS文件系統在互聯網上公布。Linux內核從2.4.1版本開始支持ReiserFS。
(4)linux常用文件系統擴展閱讀
文件系統的安全:
在Linux系統中,如果黑客取得超級許可權,那麼他在操作系統裡面就不會再有任何的限制地做任何事情。在這種情況下,一個加固的文件系統將會是保護系統安全的最後一道防線。管理員可通過chattr命令鎖定系統一些重要文件或目錄。
文件許可權檢查與修改。如果操作系統當中的重要文件的許可權設置不合理,則會對操作系統的安全性,產生最為直接的影響。所以,系統的運行維護人員需要及時的察覺到許可權配置不合理的文件和目錄,並及時修正,以防安全事件發生。
安全設定/tmp、/var/tmp、/dev/shm。在該操作系統當中,其用於存放臨時文件的目錄,主要有兩個,分別為/tmp與/var/tmp。它們有個共同特點,就是所有的用戶可讀可寫和執行,這樣就對系統產生了安全隱患。針對這兩個目錄進行設置,不允許這兩個目錄下執行應用程序。
㈤ Linux操作系統支持常用的文件系統有哪些
大家常常可能因為工作或學習的需要,要使用個操作系統(比如Windows和Linux)。大家對Windwos支持的文件系統可能比較熟悉,而對Linux操作系統所支持的文件系統也許比較陌生。常需要把Windows中的文件拷貝到Linux系統下使用,這就需要了解Linux操作系統所支持的文件系統。下面簡單說明了Linux操作系統所支持的幾個大家常用的文件系統的主要的大家關心的特點,比如,單個文件大小的限制和該文件系統所支持的最大容量。
1、Linux操作系統使用虛擬文件系統(VFS)向上和用戶進程文件訪問系統調用介面,向下和具體不同文件系統的實現介面。VFS屏蔽了具體文件的實現細節,向上提供統一的操作介面。通過VFS可以實現任意的文件系統,這些文件系統通過文件訪問系統調用都可以訪問。所以Linux系統核心可以支持十多種文件系統類型,比如Btrfs、JFS、 ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。下面說明其支持的幾個重要的文件系統
2、ext專門為Linux設計的,為linux核心所做的第一個文件系統。單個文件最大限制:未知;該文件系統最大支持2GB的容量。
3、ext2由Rémy Card設計,用以代替ext,是LINUX內核所用的文件系統。單個文件最大限制2TB;該文件系統最大支持32TB的容量。
4、ext3一個日誌文件系統。單個文件最大限制16TB,該文件系統最大支持32TB的容量。
5、ext4Theodore Tso領導的開發團隊實現,Linux系統下的日誌文件系統。單個文件最大限制16TB,該文件系統最大支持1EB的容量。
6、JFS2一種位元組級日誌文件系統,該文件系統主要是為滿足伺服器的高吞吐量和可靠性需求而設計、開發的。單個文件最大限制16TB,該文件系統最大支持1PB的容量。
注意事項:這里僅對這些文件系統的當文件大小的最大限制和文件系統的最大容量進行了說明,並沒有說明其性能的對比情況。
㈥ linux支持哪些常見文件系統
1、Linux操作系統安裝過程中的文件系統的選擇; 1)ext2 文件系統; ext2文件系統應該說是Linux正宗的文件系統,早期的Linux都是用ext2,但隨著技術的發展,大多Linux的發行版本目前並不用這個文件系統了;比如Redhat和Fedora大多都建議用ext3 ,ext3文件系統是由ext2發展而來的。對於Linux新手,我們還是建議您不要用ext2文件系統;ext2支持undelete(反刪除),如果您誤刪除文件,有時是可以恢復的,但操作上比較麻煩; ext2支持大文件; ext2文件系統的官方主頁是: http://e2fsprogs.sourceforge.net/ext2.html 2)ext3 文件系統:是由ext2文件系統發展而來; ext3 is a Journalizing file system for Linux(ext3是一個用於Linux的日誌文件系統),ext3支持大文件;但不支持反刪除(undelete)操作; Redhat和Fedora都力挺ext3;至於ext3文件系統的更多特性,請訪問《Linux文件系統(filesystem)資源索引》 ; 3)reiserfs 文件系統; reiserfs文件系統是一款優秀的文件系統,支持大文件,支持反刪除(undelete);在我的測試ext2、reiserfs反刪除文件功能的過程中,我發現reiserfs文件系統表現的最為優秀,幾乎能恢復90%以上的數據,有時能恢復到100%;操作反刪除比較容易;reiserfs支持大文件; 4)、Linux 支持的文件系統; Linux目前幾乎支持所有的Unix類的文件系統,除了我們在安裝Linux操作系統時所要選擇的ext3、reiserfs和ext2外,還支持蘋果MACOS的HFS,也支持其它Unix操作系統的文件系統,比如XFS、JFS、Minix fs及UFS等,您可以在kernel的源碼中查看;如果您想要讓系統支持哪些的文件系統得需要把該文件系統編譯成模塊或置入內核; 當然Linux也支持Windows文件系統NTFST和fat,但不支持NTFS文件系統的寫入;支持fat文件系統的讀寫 Linux也支持網路文件系統,比如NFS等;
㈦ Linux主要幾種文件系統
Linux是支持多種文件系統的操作系統,相對比較主流的有ext4、xfs、BtrFS等,一般安裝使用的是ext4。
1、 EXT4是第四代擴展文件系統(英語:Fourth extended filesystem,縮寫為 ext4)是Linux系統下的日誌文件系統,是ext3文件系統的後繼版本。
㈧ linux支持的文件系統有哪些
比如Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。
Linux操作系統使用虛擬文件系統(VFS)向上和用戶進程文件訪問系統調用介面,向下和具體不同文件系統的實現介面。VFS屏蔽了具體文件的實現細節,向上提供統一的操作介面。通過VFS可以實現任意的文件系統,這些文件系統通過文件訪問系統調用都可以訪問。所以Linux系統核心可以支持十多種文件系統類型。
(8)linux常用文件系統擴展閱讀:
EXT是延伸文件系統(英語:Extended file system,縮寫為 ext或 ext1),也譯為擴展文件系統,一種文件系統,於1992年4月發表,是為linux核心所做的第一個文件系統。採用Unix文件系統(UFS)的元數據結構,以克服MINIX文件系統性能不佳的問題。它是在linux上,第一個利用虛擬文件系統實現出的文件系統,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系統
EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日誌文件系統,常用於Linux操作系統。它是很多Linux發行版的默認文件系統。Stephen Tweedie在1999年2月的內核郵件列表中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合並到內核主線中。
㈨ Linux操作系統中常用的文件系統有哪些
我們在Linux中常用的文件系統主要有ext3、ext2及reiserfs。Linux目前幾乎支持所有的Unix類的文件系統,除了我們在安裝Linux操作系統時所要選擇的ext3、reiserfs和ext2外,還支持蘋果MACOS的HFS,也支持其它Unix操作系統的文件系統,比如XFS、JFS、Minix fs 及UFS等,您可以在kernel的源碼中查看;如果您想要讓系統支持哪些的文件系統得需要把該文件系統編譯成模塊或置入內核;
當然Linux也支持Windows文件系統NTFST和fat,但不支持NTFS文件系統的寫入;支持fat文件系統的讀寫。現在還有新的ext4文件系統。