<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • linux文件系統(tǒng)基礎(chǔ)知識(shí)

    時(shí)間:2024-06-29 13:08:15 Linux認(rèn)證 我要投稿

    linux文件系統(tǒng)基礎(chǔ)知識(shí)匯總

      1、linux文件系統(tǒng)分配策略

    linux文件系統(tǒng)基礎(chǔ)知識(shí)匯總

      塊分配( block allocation ) 和 擴(kuò)展分配 ( extent allocation )

      塊分配:磁盤上的文件塊根據(jù)需要分配給文件,避免了存儲(chǔ)空間的浪費(fèi)。但當(dāng)文件擴(kuò)充時(shí),會(huì)造成文件中文件塊的不連續(xù),從而導(dǎo)致過多的磁盤尋道時(shí)間。

      每一次文件擴(kuò)展時(shí),塊分配算法就需要寫入文件塊的結(jié)構(gòu)信息,也就是 meta-dada 。meta-data總是與文件一起寫入存儲(chǔ)設(shè)備,改變文件的操作要等到所有meta-data的操作都完成后才能進(jìn)行,

      因此,meta-data的操作會(huì)明顯降低整個(gè)文件系統(tǒng)的性能。

      擴(kuò)展分配: 文件創(chuàng)建時(shí),一次性分配一連串連續(xù)的塊,當(dāng)文件擴(kuò)展時(shí),也一次分配很多塊。meta-data在文件創(chuàng)建時(shí)寫入,當(dāng)文件大小沒有超過所有已分配文件塊大小時(shí),就不用寫入meta-data,直到需要再分配文件塊的時(shí)候。

      擴(kuò)展分配采用成組分配塊的方式,減少了SCSI設(shè)備寫數(shù)據(jù)的時(shí)間,在讀取順序文件時(shí)具有良好的性能,但隨機(jī)讀取文件時(shí),就和塊分配類似了。

      文件塊的組或塊簇 ( block cluster) 的大小是在編譯時(shí)確定的。簇的大小對(duì)文件系統(tǒng)的性能有很大的影響。

      注: meta-data 元信息:和文件有關(guān)的信息,比如權(quán)限、所有者以及創(chuàng)建、訪問或更改時(shí)間等。

      2、文件的記錄形式

      linux文家系統(tǒng)使用索引節(jié)點(diǎn)(inode)來記錄文件信息。索引節(jié)點(diǎn)是一種數(shù)據(jù)結(jié)構(gòu),它包含了一個(gè)文件的長(zhǎng)度、創(chuàng)建及修改時(shí)間、權(quán)限、所屬關(guān)系、磁盤中的位置等信息。

      一個(gè)文件系統(tǒng)維護(hù)了一個(gè)索引節(jié)點(diǎn)的數(shù)組,每個(gè)文件或目錄都與索引節(jié)點(diǎn)數(shù)組中的唯一的元素對(duì)應(yīng)。每個(gè)索引節(jié)點(diǎn)在數(shù)組中的索引號(hào),稱為索引節(jié)點(diǎn)號(hào)。

      linux文件系統(tǒng)將文件索引節(jié)點(diǎn)號(hào)和文件名同時(shí)保存在目錄中,所以,目錄只是將文件的名稱和它的索引節(jié)點(diǎn)號(hào)結(jié)合在一起的一張表,目錄中每一對(duì)文件名稱和索引節(jié)點(diǎn)號(hào)稱為一個(gè)連接。

      對(duì)于一個(gè)文件來說,有一個(gè)索引節(jié)點(diǎn)號(hào)與之對(duì)應(yīng);而對(duì)于一個(gè)索引節(jié)點(diǎn)號(hào),卻可以對(duì)應(yīng)多個(gè)文件名。

      連接分為軟連接和硬連接,其中軟連接又叫符號(hào)連接。

      硬連接: 原文件名和連接文件名都指向相同的物理地址。目錄不能有硬連接;硬連接不能跨文件系統(tǒng)(不能跨越不同的分區(qū)),文件在磁盤中只有一個(gè)拷貝。

      由于刪除文件要在同一個(gè)索引節(jié)點(diǎn)屬于唯一的連接時(shí)才能成功,因此硬連接可以防止不必要的誤刪除。

      軟連接: 用 ln -s 命令建立文件的符號(hào)連接。符號(hào)連接是linux特殊文件的一種,作為一個(gè)文件,它的數(shù)據(jù)是它所連接的文件的路徑名。沒有防止誤刪除的功能。

      3、文件系統(tǒng)類型:

      ext2 : 早期linux中常用的文件系統(tǒng)

      ext3 : ext2的升級(jí)版,帶日志功能

      RAMFS : 內(nèi)存文件系統(tǒng),速度很快

      NFS : 網(wǎng)絡(luò)文件系統(tǒng),由SUN發(fā)明,主要用于遠(yuǎn)程文件共享

      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 : 虛擬的進(jìn)程文件系統(tǒng)

      ISO9660 : 大部分光盤所采用的文件系統(tǒng)

      ufsSun : OS 所采用的文件系統(tǒng)

      NCPFS : Novell 服務(wù)器所采用的文件系統(tǒng)

      SMBFS : Samba 的共享文件系統(tǒng)

      XFS : 由SGI開發(fā)的先進(jìn)的日志文件系統(tǒng),支持超大容量文件

      JFS :IBM的AIX使用的日志文件系統(tǒng)

      ReiserFS : 基于平衡樹結(jié)構(gòu)的文件系統(tǒng)

      udf: 可擦寫的數(shù)據(jù)光盤文件系統(tǒng)

      4、虛擬文件系統(tǒng)VFS

      linux支持的所有文件系統(tǒng)稱為邏輯文件系統(tǒng),而linux在傳統(tǒng)的邏輯文件系統(tǒng)的基礎(chǔ)上增加料一個(gè)蓄念文件系統(tǒng)( Vitual File System ,VFS) 的接口層。

      虛擬文件系統(tǒng)(VFS) 位于文件系統(tǒng)的最上層,管理各種邏輯文件系統(tǒng),并可以屏蔽各種邏輯文件系統(tǒng)之間的差異,提供統(tǒng)一文件和設(shè)備的訪問接口。

      5、文件的邏輯結(jié)構(gòu)

      文件的邏輯結(jié)構(gòu)可分為兩大類: 字節(jié)流式的無結(jié)構(gòu)文件 和 記錄式的有結(jié)構(gòu)文件。

      由字節(jié)流(字節(jié)序列)組成的文件是一種無結(jié)構(gòu)文件或流式文件 ,不考慮文件內(nèi)部的邏輯結(jié)構(gòu),只是簡(jiǎn)單地看作是一系列字節(jié)的序列,便于在文件的任意位置添加內(nèi)容。

      由記錄組成的文件稱為記錄式文件 ,記錄是這種文件類型的基本信息單位,記錄式文件通用于信息管理。

      6、文件類型

      普通文件 : 通常是流式文件

      目錄文件 : 用于表示和管理系統(tǒng)中的全部文件

      連接文件 : 用于不同目錄下文件的共享

      設(shè)備文件 : 包括塊設(shè)備文件和字符設(shè)備文件,塊設(shè)備文件表示磁盤文件、光盤等,字符設(shè)備文件按照字符操作終端、鍵盤等設(shè)備。

      管道(FIFO)文件 : 提供進(jìn)程建通信的一種方式

      套接字(socket) 文件: 該文件類型與網(wǎng)絡(luò)通信有關(guān)

      7、文件結(jié)構(gòu): 包括索引節(jié)點(diǎn)和數(shù)據(jù)

      索引節(jié)點(diǎn) : 又稱 I 節(jié)點(diǎn),在文件系統(tǒng)結(jié)構(gòu)中,包含有關(guān)相應(yīng)文件的信息的一個(gè)記錄,這些信息包括文件權(quán)限、文件名、文件大小、存放位置、建立日期等。文件系統(tǒng)中所有文件的索引節(jié)點(diǎn)保存在索引節(jié)點(diǎn)表中。

      數(shù)據(jù) : 文件的實(shí)際內(nèi)容。可以是空的,也可以非常大,并且擁有自己的結(jié)構(gòu)。

      8、ext2文件系統(tǒng)

      ext2文件系統(tǒng)的數(shù)據(jù)塊大小一般為 1024B、2048B 或 4096B

      ext2文件系統(tǒng)采用的索引節(jié)點(diǎn)(inode):

      索引節(jié)點(diǎn)采用了多重索引結(jié)構(gòu),主要體現(xiàn)在直接指針和3個(gè)間接指針。直接指針包含12個(gè)直接指針塊,它們直接指向包含文件數(shù)據(jù)的數(shù)據(jù)塊,緊接在后面的3個(gè)間接指針是為了適應(yīng)文件的大小變化而設(shè)計(jì)的。

      e.g: 假設(shè)數(shù)據(jù)塊大小為1024B ,利用12個(gè)直接指針,可以保存最大為12KB的文件,當(dāng)文件超過12KB時(shí),則要利用單級(jí)間接指針,該指針指向的數(shù)據(jù)塊保存有一組數(shù)據(jù)塊指針,這些指針依次指向包含有實(shí)際數(shù)據(jù)的數(shù)據(jù)塊,

      假如每個(gè)指針占用4B,則每個(gè)單級(jí)指針數(shù)據(jù)塊可保存 1024/4=256 個(gè)數(shù)據(jù)指針,因此利用直接指針和單級(jí)間接指針可保存 1024*12+1024*256=268 KB的文件。當(dāng)文件超過268KB時(shí),再利用二級(jí)間接指針,直到使用三級(jí)間接指針。

      利用直接指針、單級(jí)間接指針、二級(jí)間接指針、三級(jí)間接指針可保存的最大文件大小為:

      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)最大文件名長(zhǎng)度: 255個(gè)字符

      ext2文件系統(tǒng)的缺點(diǎn):

      ext2在寫入文件內(nèi)容的同時(shí)并沒有同時(shí)寫入文件meta-data, 其工作順序是先寫入文件的內(nèi)容,然后等空閑時(shí)候才寫入文件的meta-data。若發(fā)生意外,則文件系統(tǒng)就會(huì)處于不一致狀態(tài)。

      在重新啟動(dòng)系統(tǒng)的時(shí)候,linux會(huì)啟動(dòng) fsk ( file system check) 的程序,掃描整個(gè)文件系統(tǒng)并試圖修復(fù),但不提供保證。

      9、ext3文件系統(tǒng):

      ext3基于ext2的代碼,所以磁盤格式與ext2相同,使用相同的元數(shù)據(jù)。

      ext2文件系統(tǒng)無損轉(zhuǎn)化為ext3文件系統(tǒng): tune2fs -j /dev/sda6

      日志塊設(shè)備( Journaling block device layer,JBD)完成ext3文件系統(tǒng)日志功能。JBD不是ext3文件系統(tǒng)所特有的,它的設(shè)計(jì)目標(biāo)是為了向一個(gè)塊設(shè)備添加日志功能。

      當(dāng)一個(gè)文件修改執(zhí)行時(shí),ext3文件系統(tǒng)代碼將通知JBD,稱為一個(gè)事務(wù)(transaction)。發(fā)生意外時(shí),日志功能具有的重放功能,能重新執(zhí)行中斷的事務(wù)。

      日志中的3種數(shù)據(jù)模式:

      1)、data=writeback :不處理任何形式的日志數(shù)據(jù),給用戶整體上的最高性能

      2)、data=odered :只記錄元數(shù)據(jù)日志,但將元數(shù)據(jù)和數(shù)據(jù)組成一個(gè)單元稱為事務(wù)(transaction) 。此模式保持所句句的可靠性與文件系統(tǒng)的一致性,性能遠(yuǎn)低于data=writeback模式,但比data=journal模式快

      3)、data=journal :提供完整的數(shù)據(jù)及元數(shù)據(jù)日志,所有新數(shù)據(jù)首先被寫入日志,然后才被定位。意外發(fā)生過后,日志可以被重放,將數(shù)據(jù)與元數(shù)據(jù)帶回一致狀態(tài)。這種模式整體性能最慢,但數(shù)據(jù)需要從磁盤讀取和寫入磁盤時(shí)卻是3種模式中最快的。

      ext3文件系統(tǒng)最大文件名長(zhǎng)度: 255個(gè)字符

      ext3文件系統(tǒng)的優(yōu)點(diǎn):可用性、數(shù)據(jù)完整性、速度、兼容性

      10、ReiserFS文件系統(tǒng)

      ReiserFS文件系統(tǒng)是由Hans Reiser和他領(lǐng)導(dǎo)的開發(fā)小組共同開發(fā)的,整個(gè)文件系統(tǒng)完全是從頭設(shè)計(jì)的,是一個(gè)非常優(yōu)秀的文件系統(tǒng)。也是最早用于Linux的日志文件系統(tǒng)之一。

      ReiserFS的特點(diǎn)

      先進(jìn)的日志機(jī)制

      ReiserFS有先進(jìn)的日志(Journaling/logging)功能 機(jī)制。日志機(jī)制保證了在每個(gè)實(shí)際數(shù)據(jù)修改之前,相應(yīng)的日志已經(jīng)寫入硬盤。文件與數(shù)據(jù)的安全性有了很大提高。

      高效的磁盤空間利用

      Reiserfs對(duì)一些小文件不分配inode。而是將這些文件打包,存放在同一個(gè)磁盤分塊中。而其它文件系統(tǒng)則為每個(gè)小文件分別放置到一個(gè)磁盤分塊中。

      獨(dú)特的搜尋方式

      ReiserFS基于快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜索大量文件時(shí),搜索速度要比ext2快得多。Reiserfs文件 系統(tǒng)使用B*Tree存儲(chǔ)文件,而其它文件系統(tǒng)使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常 快。

      在實(shí)際運(yùn)用中,ReiserFS 在處理小于 4k 的文件時(shí),比ext2 快 5 倍;帶尾文件壓縮功能(默認(rèn))的ReiserFS 比ext2文件系統(tǒng)多存儲(chǔ)6%的數(shù)據(jù)。

      支持海量磁盤

      ReiserFS是一個(gè)非常優(yōu)秀的文件系統(tǒng),一直被用在高端UNIX系統(tǒng)上,可輕松管理上百G的文件系統(tǒng),ReiserFS文件系統(tǒng)最大支持的文件系統(tǒng)尺寸為16TB。這非常適合企業(yè)級(jí)應(yīng)用中。

      優(yōu)異的性能

      由于它的高效存儲(chǔ)和快速小文件I/O特點(diǎn),使用ReiserFs文件系統(tǒng)的PC,在啟動(dòng)X窗口系統(tǒng)時(shí),所花的時(shí)間要比在同一臺(tái)機(jī)器上使用ext2文 件系統(tǒng)少1/3。另外,ReiserFS文件系統(tǒng)支持單個(gè)文件尺寸為4G的文件,這為大型數(shù)據(jù)庫(kù)系統(tǒng)在linux上的應(yīng)用提供了更好的選擇。

    【linux文件系統(tǒng)基礎(chǔ)知識(shí)】相關(guān)文章:

    Linux操作系統(tǒng)文件系統(tǒng)基礎(chǔ)知識(shí)03-07

    Linux文件系統(tǒng)簡(jiǎn)介02-27

    Linux btrfs文件系統(tǒng)及管理02-26

    Linux文件系統(tǒng)操作命令大全03-09

    Linux用戶/文件系統(tǒng)管理詳解02-27

    Linux認(rèn)證基礎(chǔ)知識(shí):linux操作系統(tǒng)目錄結(jié)構(gòu)03-08

    Linux系統(tǒng)基礎(chǔ)知識(shí):IO調(diào)度03-29

    Linux認(rèn)證考試基礎(chǔ)知識(shí)試題及答案12-14

    關(guān)于嵌入式Linux系統(tǒng)基礎(chǔ)知識(shí)03-07

    主站蜘蛛池模板: 国产色婷婷五月精品综合在线 | 精品久久久久久综合日本| 国产免费久久精品99久久| 久久久无码精品亚洲日韩按摩| 国产精品高清免费网站| 2021久久国自产拍精品| 麻豆亚洲AV永久无码精品久久| 欧美成人精品网站播放| 国产精品视频全国免费观看 | 四虎影院国产精品| 国产精品无码一区二区在线观一| 国内精品伊人久久久久| 精品无码国产自产拍在线观看| 亚洲精品无码av天堂| 精品人妻少妇一区二区三区| 四虎影视国产精品永久在线| 国产91精品在线观看| 精品黑人一区二区三区| 亚洲精品国产成人片| 日韩精品人成在线播放| 精品欧美小视频在线观看| 国产精品免费一区二区三区| 日韩精品一区二区三区四区| 久久福利青草精品资源站| 国产精品国产三级国产专播| 国产成人精品日本亚洲网址| 国产成人精品无码播放| 久久国产精品成人影院| 亚洲精品无码永久在线观看你懂的| 久久无码精品一区二区三区| 国内精品久久久久久中文字幕 | 久久精品亚洲男人的天堂| 久久精品国产亚洲av高清漫画 | 久久国产精品免费一区| 精品国精品国产自在久国产应用男 | 国产精品狼人久久久久影院| 久久亚洲国产欧洲精品一| 久久久久久久99精品免费观看| 青青草国产精品久久久久| 精品国产一区二区三区免费| 精品日产一区二区三区手机|