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的升級版,帶日誌功能
ext4:ext3的升級版,大幅度改動
RAMFS:記憶體檔案系統,速度很快
NFS:網路檔案系統,由SUN發明,主要用於遠端檔案共享
MS-DOS:MS-DOS檔案系統
VFAT:Windows95/98作業系統採用的檔案系統
FAT:WindowsXP作業系統採用的檔案系統
NTFS:WindowsNT/XP作業系統採用的檔案系統
HPFS:OS/2作業系統採用的檔案系統
PROC:虛擬的程序檔案系統
ISO9660:大部分光碟所採用的檔案系統
ufsSun:OS所採用的檔案系統
NCPFS:Novell伺服器所採用的檔案系統
SMBFS:Samba的共享檔案系統
XFS:由SGI開發的先進的日誌檔案系統,支援超大容量檔案
JFS:IBM的AIX使用的日誌檔案系統
ReiserFS:基於平衡樹結構的檔案系統
udf:可擦寫的資料光碟檔案系統
4、虛擬檔案系統VFS
linux支援的所有檔案系統稱為邏輯檔案系統,而linux在傳統的邏輯檔案系統的基礎上增加料一個蓄念檔案系統(VitualFileSystem,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=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%的資料。
支援海量磁碟
ReiserFS是一個非常優秀的檔案系統,一直被用在高階UNIX系統上,可輕鬆管理上百G的檔案系統,ReiserFS檔案系統最大支援的檔案系統尺寸為16TB。這非常適合企業級應用中。
linux檔案系統分類優異的效能:由於它的高效儲存和快速小檔案I/O特點,使用ReiserFs檔案系統的PC,在啟動X視窗系統時,所花的時間要比在同一臺機器上使用ext2檔案系統少1/3。另外,ReiserFS檔案系統支援單個檔案尺寸為4G的檔案,這為大型資料庫系統在linux上的應用提供了更好的選擇。
相關推薦
linux檔案系統分類和特點
1、linux檔案系統分配策略: 塊分配(blockallocation)和擴充套件分配(extentallocation): 塊分配:磁碟上的檔案塊根據需要分配給檔案,避免了儲存空間的浪費。但當檔案擴充時,會造成檔案中檔案塊的不連續,從而導致過多的磁碟尋道時間。 每一次檔
Linux檔案系統簡介和軟連結和硬連結的區別
Linux有著極其豐富的檔案系統,大體可分為如下幾類: 網路檔案系統:如nfs、cifs等; 磁碟檔案系統:如ext3、ext4等; 特殊檔案系統:如prco、sysfs、ramfs、tmpfs等; 一、Linux系統中一切皆檔案(除程序以外) Linux系統的頂層目錄結構如下 1 /
Linux檔案系統功能和作用詳解
一、檔案系統 1、檔案結構 目錄:路徑對映 檔案:有邊界的,在磁碟的一段資料流,對資料可以做到按名存取 檔案系統:層級結構,目錄和檔案的一個組合層級結構,起點是根/,組成一個倒置的樹狀結構, /dev/pts/2: 最左側/:表示根目錄 其他的/:
Linux.ext4檔案系統 .inode和extent
最近在看相關內容,不過總是不是很系統,今日看到此部落格,感覺恍然大悟,作者寫的非常棒:轉載: https://blog.csdn.net/stringNewName/article/details/73740155 為表示對作者的尊敬,一字不動的敲擊! 最近在看ext4
Linux檔案系統和系統結構
導讀 Linux系統一般有4個主要部分:核心、shell、檔案系統和應用程式。核心、shell和檔案系統一起形成了基本的作業系統結構,它們使得使用者可以執行程式、管理檔案並使用系統。 1. linux核心 核心是作業系統的核心,具有很多最基本功能,它負責管理系統的程序、記憶體、裝置驅動程式、檔案
Linux檔案系統----軟連結和硬連結
更多Linux檔案系統知識:Linux檔案系統-----基礎IO Linux檔案系統的認知 1、Linux系統下一切皆檔案 現代作業系統為解決資訊能獨立於程序之外被長期儲存引入了檔案,檔案作為程序建立資訊的邏輯單元可被多個程序併發使用。在 UNIX 系統中,作業
linux檔案系統命令(6)---touch和mkdir
一、目的 本文將介紹linux下新建檔案或目錄、刪除檔案或目錄命令。 touch可以新建檔案,mkdir用來新建目錄;rm用來刪除檔案或目錄。 本文將選取u
Linux原始碼目錄結構和Linux檔案系統目錄結構
學習Linux也有一段時間了,具體來整理一下Linux原始碼的目錄結構和檔案系統的目錄結構,以便加深記憶。一、Linux原始碼的目錄結構首先上一張截圖,如下所示:再看各個檔案的介紹,借用一下其他資源。arch:這個為目錄是架構相關,裡面存放了許多CPU架構,比如arm,x86
Linux:Day8(上) 檔案系統掛載和管理工具
檔案系統管理: 將額外檔案系統與根檔案系統某現存的目錄建立起關聯關係,進而使得此目錄做為其它檔案訪問入口的行為稱之為掛載; 解除此關聯關係的過程稱之為解除安裝; 把裝置關聯掛載點:Mount Point mount 解除安裝時:可使用裝置,也可以使用掛載點 umou
Linux檔案系統分析之二(超級塊,i節點點陣圖和邏輯塊點陣圖)
第二個扇區和第一個扇區一樣屬於引導塊,這裡就不列舉出其內容了,這裡的一塊是兩個扇區即1024B。接下來的一塊就是大名鼎鼎的超級塊了。其內容如下:00000400h: E0 01 A0 05 01 00 01 00 13 00 00 00 00 1C 08 10 ; ??..
製作和燒寫嵌入式Linux檔案系統過程
1.解壓tar xvf createSdcard.qt4.tar.bz2檔案,在Ubuntu下插入SD卡。 2.執行./createSdCard.sh,即可在SD卡生成 bin 和 system 目錄,bin 裡面的內容不要更改; system 目錄裡的內容將來被 燒寫到
Linux 檔案系統的 Superblock, Inode, Dentry 和 File
通過set number:386 struct ext3_super_block {386 struct ext3_super_block {387 /*00*/ __le32 s_inodes_count; /* Inodes count */388 __le32 s_
Windows和Linux檔案系統的區別
Windows,分盤,每個驅動器有自己的根目錄,形成的是多個樹並列的結構。 Linux,只有一個根目錄 / ,所有東西都是從這開始 /boot:放置linux啟動時用到的一些檔案,如核心檔案等 /bin,/user/bin:一般放
《Linux深度攻略》一書,講述Linux日常系統管理和服務器配置內容
linuxLinux深度攻略 首先從介紹Linux系統的安裝入手,講述了Linux系統管理和服務器配置兩部分的知識。系統管理方面內容有Linux系統簡介和安裝,Linux字符界面,目錄和文件管理,Linux常用命令,Shell編程,用戶和組群賬戶管理,權限、所有者和ACL,歸檔、壓縮和備份,軟件包管理,磁盤和
監控linux的系統資源和自定義進程的cpu 內存占用。
until 分享 == lena filename src end available eve 1 #coding=utf8 2 import time 3 import psutil 4 from pprint import pprint 5 6 fro
Linux檔案系統快照
Linux檔案系統快照 來自:http://www.mike.org.cn/blog/index.php?load=read&id=619 檔案系統快照 (File System Snapshots) 顧名思義就是在檔案系統上照張相片,也
Linux檔案系統層次標準
前言 Linux檔案系統層次標準,英文全稱Filesystem Hierarchy Standard,英文簡稱FHS。 由於利用Linux來開發產品的團隊和個人實在太多了,如果每個人都以自己的想法來配置檔案放置的目錄,那麼將可能造成很多管理上的困擾。 在這
linux -- 檔案特殊許可權和程序
<0>.建立目錄和檔案的預設許可權[umask] (1)umask ---> 檢視系統目錄預設預留許可權位;檔案預設預留許可權位 ---> 目錄許可權減去<111> (2)umask 007 ---> 臨時修改系統目錄預設預留許可權位 為 00
Linux 檔案系統的建立與掛載方法
轉自:https://blog.csdn.net/gz153016/article/details/51655994 Linux的 檔案系統的建立與掛載方法 1 Linux 檔案系統的建立 Linux的 作業系統在安裝伺服器時,安裝程式已經建立了自己的檔案系統,但是在使
Linux 檔案系統呼叫open七日遊(三)
接著上回,當對“.”和“..”處理完成後就直接返回進入下一個子路徑迴圈了,但如果當前子路徑不是“.”或“..”呢? 【fs/namei.c】 sys_open > do_sys_open > do_filp_open >&