您當前所在位置:
首頁 →
操作系統(tǒng) →
LINUX →
linux文件系統(tǒng)基礎知識
linux文件系統(tǒng)基礎知識
時間:2015-06-28 00:00:00
來源:IT貓撲網(wǎng)
作者:網(wǎng)管聯(lián)盟
我要評論(0)
- 這兩天看了一本fedora 6的實踐教程,下面是有關linux文件系統(tǒng)知識的學習筆記:
1、linux文件系統(tǒng)分配策略:
??? 塊分配( block allocation ) 和 擴展分配? ( extent allocation )
??? 塊分配:磁盤上的文件塊根據(jù)需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續(xù),從而導致過多的磁盤尋道時間。
????? 每一次文件擴展時,塊分配算法就需要寫入文件塊的結構信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲設備,改變文件的操作要等到所有meta-data的操作都完成后才能進行,
????? 因此,meta-data的操作會明顯降低整個文件系統(tǒng)的性能。
??? 擴展分配: 文件創(chuàng)建時,一次性分配一連串連續(xù)的塊,當文件擴展時,也一次分配很多塊。meta-data在文件創(chuàng)建時寫入,當文件大小沒有超過所有已分配文件塊大小時,就不用寫入meta-data,直到需要再分配文件塊的時候。
??? 擴展分配采用成組分配塊的方式,減少了SCSI設備寫數(shù)據(jù)的時間,在讀取順序文件時具有良好的性能,但隨機讀取文件時,就和塊分配類似了。
??? 文件塊的組或塊簇 ( block cluster) 的大小是在編譯時確定的。簇的大小對文件系統(tǒng)的性能有很大的影響。
??? 注: meta-data 元信息:和文件有關的信息,比如權限、所有者以及創(chuàng)建、訪問或更改時間等。
2、文件的記錄形式
??? linux文家系統(tǒng)使用索引節(jié)點(inode)來記錄文件信息。索引節(jié)點是一種數(shù)據(jù)結構,它包含了一個文件的長度、創(chuàng)建及修改時間、權限、所屬關系、磁盤中的位置等信息。
一個文件系統(tǒng)維護了一個索引節(jié)點的數(shù)組,每個文件或目錄都與索引節(jié)點數(shù)組中的唯一的元素對應。每個索引節(jié)點在數(shù)組中的索引號,稱為索引節(jié)點號。
??? linux文件系統(tǒng)將文件索引節(jié)點號和文件名同時保存在目錄中,所以,目錄只是將文件的名稱和它的索引節(jié)點號結合在一起的一張表,目錄中每一對文件名稱和索引節(jié)點號稱為一個連接。
對于一個文件來說,有一個索引節(jié)點號與之對應;而對于一個索引節(jié)點號,卻可以對應多個文件名。
??? 連接分為軟連接和硬連接,其中軟連接又叫符號連接。
??? 硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(tǒng)(不能跨越不同的分區(qū)),文件在磁盤中只有一個拷貝。
????? 由于刪除文件要在同一個索引節(jié)點屬于唯一的連接時才能成功,因此硬連接可以防止不必要的誤刪除。
??? 軟連接: 用 ln -s 命令建立文件的符號連接。符號連接是linux特殊文件的一種,作為一個文件,它的數(shù)據(jù)是它所連接的文件的路徑名。沒有防止誤刪除的功能。
3、文件系統(tǒng)類型:
??
??? ext2 : 早期linux中常用的文件系統(tǒng)
??? ext3 : ext2的升級版,帶日志功能
??? RAMFS : 內存文件系統(tǒng),速度很快
??? NFS : 網(wǎng)絡文件系統(tǒng),由SUN發(fā)明,主要用于遠程文件共享
??? MS-DOS : MS-DOS文件系統(tǒng)
??? VFAT : Windows 95/98 操作系統(tǒng)采用的文件系統(tǒng)
??? FAT : Windows XP 操作系統(tǒng)采用的文件系統(tǒng)
??? NTFS : Windows NT/XP 操作系統(tǒng)采用的文件系統(tǒng)
??? HPFS : OS/2 操作系統(tǒng)采用的文件系統(tǒng)
??? PROC : 虛擬的進程文件系統(tǒng)
??? ISO9660 : 大部分光盤所采用的文件系統(tǒng)
??? ufsSun : OS 所采用的文件系統(tǒng)
??? NCPFS : Novell 服務器所采用的文件系統(tǒng)
??? SMBFS : Samba 的共享文件系統(tǒng)
??? XFS : 由SGI開發(fā)的先進的日志文件系統(tǒng),支持超大容量文件
??? JFS :IBM的AIX使用的日志文件系統(tǒng)
??? ReiserFS : 基于平衡樹結構的文件系統(tǒng)
??? udf: 可擦寫的數(shù)據(jù)光盤文件系統(tǒng)
4、虛擬文件系統(tǒng)VFS
??
??? linux支持的所有文件系統(tǒng)稱為邏輯文件系統(tǒng),而linux在傳統(tǒng)的邏輯文件系統(tǒng)的基礎上增加料一個蓄念文件系統(tǒng)( Vitual File System ,VFS) 的接口層。
??? 虛擬文件系統(tǒng)(VFS) 位于文件系統(tǒng)的最上層,管理各種邏輯文件系統(tǒng),并可以屏蔽各種邏輯文件系統(tǒng)之間的差異,提供統(tǒng)一文件和設備的訪問接口。
5、文件的邏輯結構
??? 文件的邏輯結構可分為兩大類: 字節(jié)流式的無結構文件 和 記錄式的有結構文件。
??? 由字節(jié)流(字節(jié)序列)組成的文件是一種無結構文件或流式文件 ,不考慮文件內部的邏輯結構,只是簡單地看作是一系列字節(jié)的序列,便于在文件的任意位置添加內容。
??? 由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類型的基本信息單位,記錄式文件通用于信息管理。
6、文件類型
??
??? 普通文件 : 通常是流式文件
??? 目錄文件 : 用于表示和管理系統(tǒng)中的全部文件
??? 連接文件 : 用于不同目錄下文件的共享
??? 設備文件 : 包括塊設備文件和字符設備文件,塊設備文件表示磁盤文件、光盤等,字符設備文件按照字符操作終端、鍵盤等設備。
??? 管道(FIFO)文件 :? 提供進程建通信的一種方式
??? 套接字(socket) 文件: 該文件類型與網(wǎng)絡通信有關
7、文件結構: 包括索引節(jié)點和數(shù)據(jù)
??? 索引節(jié)點 : 又稱 I 節(jié)點,在文件系統(tǒng)結構中,包含有關相應文件的信息的一個記錄,這些信息包括文件權限、文件名、文件大小、存放位置、建立日期等。文件系統(tǒng)中所有文件的索引節(jié)點保存在索引節(jié)點表中。
??? 數(shù)據(jù)? : 文件的實際內容??梢允强盏?,也可以非常大,并且擁有自己的結構。
8、ext2文件系統(tǒng)
??
??? ext2文件系統(tǒng)的數(shù)據(jù)塊大小一般為 1024B、2048B 或 4096B
??? ext2文件系統(tǒng)采用的索引節(jié)點(inode):
? 索引節(jié)點采用了多重索引結構,主要體現(xiàn)在直接指針和3個間接指針。直接指針包含12個直接指針塊,它們直接指向包含文件數(shù)據(jù)的數(shù)據(jù)塊,緊接在后面的3個間接指針是為了適應文件的大小變化而設計的。
??? e.g: 假設數(shù)據(jù)塊大小為1024B ,利用12個直接指針,可以保存最大為12KB的文件,當文件超過12KB時,則要利用單級間接指針,該指針指向的數(shù)據(jù)塊保存有一組數(shù)據(jù)塊指針,這些指針依次指向包含有實際數(shù)據(jù)的數(shù)據(jù)塊,
? 假如每個指針占用4B,則每個單級指針數(shù)據(jù)塊可保存 1024/4=256 個數(shù)據(jù)指針,因此利用直接指針和單級間接指針可保存 1024*12+1024*256=268 KB的文件。當文件超過268KB時,再利用二級間接指針,直到使用三級間接指針。
? 利用直接指針、單級間接指針、二級間接指針、三級間接指針可保存的最大文件大小為:
????? 1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約 16GB
? 若數(shù)據(jù)塊大小為2048B,指針占4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 約 268GB
? 若數(shù)據(jù)塊大小為4096B,指針占4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約 4TB
??? 注: 命令 tune2fs -l /dev/sda5? 可查看文件系統(tǒng)
??? ext2文件系統(tǒng)最大文件名長度: 255個字符
??
??? ext2文件系統(tǒng)的缺點:
????? ext2在寫入文件內容的同時并沒有同時寫入文件meta-data,??? 其工作順序是先寫入文件的內容,然后等空閑時候才寫入文件的meta-data。若發(fā)生意外,則文件系統(tǒng)就會處于不一致狀態(tài)。
? 在重新啟動系統(tǒng)的時候,linux會啟動 fsk ( file system check) 的程序,掃描整個文件系統(tǒng)并試圖修復,但不提供保證。
9、ext3文件系統(tǒng):
??
??? ext3基于ext2的代碼,所以磁盤格式與ext2相同,使用相同的元數(shù)據(jù)。
??? ext2文件系統(tǒng)無損轉化為ext3文件系統(tǒng):? tune2fs? -j /dev/sda6
??
??? 日志塊設備( Journaling block device layer,JBD)完成ext3文件系統(tǒng)日志功能。JBD不是ext3文件系統(tǒng)所特有的,它的設計目標是為了向一個塊設備添加日志功關鍵詞標簽:基礎知識,系統(tǒng),文件,數(shù)
相關閱讀
熱門文章
安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程
Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法
多種操作系統(tǒng)NTP客戶端配置
Linux操作系統(tǒng)修改IP
人氣排行
Linux下獲取CPUID、硬盤序列號與MAC地址
dmidecode命令查看內存型號
linux tc實現(xiàn)ip流量限制
安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程
linux下解壓rar文件
lcx.exe、nc.exe、sc.exe入侵中的使用方法
Ubuntu linux 關機、重啟、注銷 命令
查看linux服務器硬盤IO讀寫負載