文件系統(tǒng)管理也就是分區(qū)管理苛让。
二啤贩、文件系統(tǒng)
1唯欣、Linux文件系統(tǒng)的特性:
- super block(超級塊):記錄整個文件系統(tǒng)的信息混萝,包括block與inode的總量遗遵,已經(jīng)使用的inode和block的數(shù)量,未使用的inode和block的數(shù)量逸嘀,block與inode的大小车要,文件系統(tǒng)的掛載時間,最近一次的寫入時間厘熟,最近一次的磁盤檢驗時間等屯蹦。
-
date block(數(shù)據(jù)塊,也稱作block):用來實際保存數(shù)據(jù)的(相當(dāng)于柜子的隔斷)绳姨,block的大械抢健(1KB,2KB或4KB->默認(rèn))和數(shù)量在格式化后就已經(jīng)決定飘庄,不能改變脑蠕,除非重新格式化(制作柜子的時候,隔斷大小就已經(jīng)決定跪削,不能更改谴仙,除非重新制作柜子)。
每個blcok只能保存一個文件的數(shù)據(jù)碾盐,要是文件數(shù)據(jù)小于一個block塊晃跺,那么這個block的剩余空間不能被其他文件使用;要是文件數(shù)據(jù)大于一個block塊毫玖,則占用多個block塊掀虎。
Windows中磁盤碎片整理工具的原理就是把一個文件占用的多個block塊盡量整理到一起凌盯,這樣可以加快讀寫速度。 - inode(i節(jié)點烹玉,柜子門上的標(biāo)簽驰怎,128字節(jié)):用來記錄文件的權(quán)限(r,w二打、x)县忌,文件的所有者和屬組,文件的大小继效,文件的狀態(tài)改變時間(ctime)症杏,文件的最近一次讀取時間(atime),文件的最近一次修改時間(mtime)莲趣,文件的數(shù)據(jù)真正保存的block編號鸳慈。每個文件需要占用一個inode。
2喧伞、Linux常見文件系統(tǒng)
- ext:Linux中最早的文件系統(tǒng)走芋,由于在性能和兼容性上具有很多缺陷,現(xiàn)在已經(jīng)很少使用潘鲫。
- ext2:是ext文件系統(tǒng)的升級版本翁逞,Red Hat Linux 7.2版本以前的系統(tǒng)默認(rèn)都是ext2文f系統(tǒng)。于1993年發(fā)布溉仑,支持最大16TB的分區(qū)和最大2TB的文件(1TB=1024GB-1024× 1024KB)挖函。
- ext3:ext2文件系統(tǒng)的升級版本,最大的區(qū)別就是帶日志功能浊竟,以便在系統(tǒng)突然停止時怨喘,提高文件系統(tǒng)的可靠性。支持最大16TB的分區(qū)和最大2TB的文件振定。
- ext4:是ext3文件系統(tǒng)的升級版必怜。ext4在性能、伸縮性和可靠性方面進行了大量改進后频。ext4的變化可以說是翻天覆地的梳庆,比如向下兼容ext3、最大1EB文件系統(tǒng)和16TB文件卑惜、無限數(shù)量子目錄膏执、Extents連續(xù)數(shù)據(jù)塊概念、多塊分配露久、延遲分配更米、持久預(yù)分配、快速FSCK毫痕、日志校驗征峦、無日志模式纸巷、在線碎片整理、inode增強眶痰、默認(rèn)啟用barrier等。它是CentOS6.x的默認(rèn)文件系統(tǒng)梯啤。(說這么多竖伯,意思就是ext4文件系統(tǒng)比前三個強很多)
- xfs:XFS最早針對IRIX操作系統(tǒng)開發(fā),是一個高性能的日志型文件系統(tǒng)因宇,能夠在斷電以及操作系統(tǒng)崩潰的情況下七婴,保證文件系統(tǒng)數(shù)據(jù)的一致性察滑。它是一個64位的文件系統(tǒng)打厘,后來進行開源并且移植到了Linux操作系統(tǒng)中,目前CentOS 7.x將XFS+LVM作為默認(rèn)的文件系統(tǒng)贺辰。據(jù)官方所稱户盯,XFS對于大文件的讀寫性能較好。
(以上都是Linux系統(tǒng)中的文件系統(tǒng)饲化,知道越新越好就可以了莽鸭。 ) - swap:swap是Linux中用于交換分區(qū)的文件系統(tǒng)(類似于Windows中的虛擬內(nèi)存),當(dāng)內(nèi)存不夠用時吃靠,使用交換分區(qū)暫時替代內(nèi)存硫眨。一般大小為內(nèi)存的2倍,但是不要超過2GB巢块,它是Linux的必需分區(qū)礁阁。
- NFS:NFS是網(wǎng)絡(luò)文件系統(tǒng)(Network File System)的縮寫,是用來實現(xiàn)不同主機之間文件共享的一種網(wǎng)絡(luò)服務(wù)族奢,本地主機可以通過掛載的方式使用遠程共享的資源姥闭。
- iso9660:光盤的標(biāo)準(zhǔn)文件系統(tǒng)。Linux要想使用光盤歹鱼,必須支持iso9660文件系統(tǒng)泣栈。
- fat:就是Windows下的fat16文件系統(tǒng),在Linux中識別為fat弥姻。
- vfat:就是Windows下的fat32文件系統(tǒng)南片,在Linux中識別為vfat。支持最大32GB的分區(qū)和最大4GB的文件庭敦。
- NTFS:就是Windows下的NTFS文件系統(tǒng)疼进,不過Linux默認(rèn)是不能識別NTFS文件系統(tǒng)的,女果需要識別秧廉,則需要重新編譯內(nèi)核才能支持伞广。它比fat32文件系統(tǒng)更加安全拣帽,速度更快支持最大2TB的分區(qū)和最大64GB的文件
- ufs:Sun公司的操作系統(tǒng)Solaris和SunOS所采用的文件系統(tǒng)。(用不著嚼锄,了解一下即可)
- proc:Linux中基于內(nèi)存的虛擬文件系統(tǒng)减拭,用來管理內(nèi)存存儲目錄/proc。(了解一下即可)
- sysfs:和proc一樣区丑,也是基于內(nèi)存的虛擬文件系統(tǒng)拧粪,用來管理內(nèi)存存儲目錄/sysfs。(了解一下即可)
- tmpfs:也是一種基于內(nèi)存的虛擬文件系統(tǒng)沧侥,不過也可以使用swap交換分區(qū)可霎。(了解一下即可)
三,整理一下對文件系統(tǒng)的認(rèn)識
我們以前說一個分區(qū)宴杀,會分成兩個部分癣朗,一小部分為上半部分,下面大部分為下半部分旺罢。
上半部分會分成一個一個i節(jié)點信息旷余,理論上每個文件都會有自己唯一的i節(jié)點信息(如果遇到硬鏈接,兩個文件的i節(jié)點就會一樣)扁达。
下半部分會分成一個一個block(數(shù)據(jù)塊)荣暮,在Linux系統(tǒng)下默認(rèn)是4KB,用于存儲數(shù)據(jù)罩驻。
如下圖:
今天上邊說了Linux文件系統(tǒng)穗酥,上邊的圖要稍微變一下。
在我們的電腦上一般一個分區(qū)100GB惠遏,block塊默認(rèn)是4KB砾跃,所以100GB大小的分區(qū),要有2500萬+個block塊节吮〕楦撸可以說是一個非常大的數(shù)字,這樣會非常不好管理透绩。
我們真正分區(qū)中系統(tǒng)文件的結(jié)構(gòu)是如下
首先一個分區(qū)翘骂,會在一個分區(qū)的開頭,用一部分很小的空間帚豪,組成一個超級塊碳竟。超級塊的作用看上邊,每個分區(qū)都會有一個超級塊狸臣。
查看超級塊信息莹桅,用下面命令。
[root@localhost ~ ] # dumpe2fs -h + 分區(qū)號(/dev/sda1)
然后該分區(qū)中的block塊太多了烛亦,就在該分區(qū)中形成一些塊組诈泼。在塊組中懂拾,在進行上面形式的劃分。
查看塊組信息
[root@localhost ~ ] # dumpe2fs + 分區(qū)號(/dev/sda1)
Linux文件系統(tǒng)結(jié)構(gòu)如下: