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:大部分光盤所采用的文件系統
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上的應用提供了更好的選擇。

原創文章,作者:胡磊,如若轉載,請注明出處:http://www.www58058.com/74696

(0)
胡磊胡磊
上一篇 2017-05-02
下一篇 2017-05-02

相關推薦

  • http協議及httpd特性詳解

    前言 隨著互聯網的迅猛發展和網絡的普及,各類網站層出不窮,網站也成為企業宣傳和實力展現的主要途徑之一,說到網站就不得不說一下web服務了,現在比較流行的web服務還是當屬Apache即httpd。本文將詳解http協議及httpd的特性。 http協議詳解 http協議 http: Hyper Text Transfer Protocol 超文本傳輸協議 傳…

    Linux干貨 2015-04-13
  • 7.磁盤及文件系統管理

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]# fdisk /dev/sd…

    Linux干貨 2017-08-21
  • 26期全程班-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit :%s@^\([[:space:]]\+\)@#\1@g 2…

    Linux干貨 2017-03-07
  • linux 文件管理命令

    cp 復制文件或者路徑 單源復制: cp [OPTION]…[-T] SOUTCE DEST 如果DEST不存在:則事先創建此文件,并復制源文件的數據流到DEST中 如果DEST存在:   如果DEST是非目錄文件:則覆蓋目標文件; 如果DEST是目錄,就在這個目錄中創建一個同名的文件,把源數據復制到這個文件中。 多源復制: cp [O…

    Linux干貨 2017-08-28
  • LAMP系列之(php-fpm模式)分布三臺機器部署

    LAMP系列之(php-fpm模式)分布三臺機器部署 現在我們需要做一個實驗,就是把apache , php-fpm , mariadb ,分別安裝在3臺機器上,協同工作具體如下: 192.168.42.150 apache 192.168.42.151 php-fpm 192.168.42.152 mariadb 關閉防火墻 關閉selinux 分別給這3…

    Linux干貨 2017-06-03
  • Linux軟件包管理(YUM)及編譯安裝

    YUM 一、yum安裝使用: 1、Yum:rpm的前端程序,用來解決軟件包相關依賴性,可以在多個庫之間定位軟件包,up2date的替代工具 2、yum repository:yum repo,存儲了眾多rpm包,以及包的相關的元數據文件(放置于特定目錄repodata下) 3、yum客戶端配置文件: /etc/yum.conf:為所有倉庫提供公共配置 /et…

    Linux干貨 2016-08-26
欧美性久久久久