2021-02-12 分類(lèi): 網(wǎng)站建設(shè)
了解Linux文件系統(tǒng)的知識(shí)
在最新版本的Centos Linux系統(tǒng)已經(jīng)采用xfs文件系統(tǒng)作為默認(rèn)的文件系統(tǒng),但是想詳細(xì)了解Linux文件系統(tǒng)的知識(shí)還得從最傳統(tǒng)的文件系統(tǒng)(filesystem)ext2說(shuō)起。而文件系統(tǒng)都是建立在磁盤(pán)上面,因此磁盤(pán)(硬盤(pán))的有關(guān)知識(shí)也應(yīng)該了解清楚。在Linux系統(tǒng)中比較重要的有關(guān)文件系統(tǒng)的知識(shí)就是inode(i節(jié)點(diǎn))、數(shù)據(jù)區(qū)塊(block)以及超級(jí)區(qū)塊(superblock)等相關(guān)的文件系統(tǒng)知識(shí)。
㈠磁盤(pán)的物理組成
一個(gè)物理磁盤(pán)的組成主要有圓形的碟片(數(shù)據(jù)存放的地方,一般現(xiàn)在的磁盤(pán)都由很多碟片所組成),磁頭(磁頭跟機(jī)械臂相連,通過(guò)它讀取碟片上的數(shù)據(jù)),旋轉(zhuǎn)馬達(dá)(跟碟片相連帶動(dòng)碟片一起運(yùn)動(dòng)以方便磁頭讀取在碟片上的數(shù)據(jù)),物理磁盤(pán)如圖3-1所示。
對(duì)于碟片上的內(nèi)容我們是這樣定義的:
①扇區(qū)(Sector)為最小的物理存儲(chǔ)單位,并且會(huì)根據(jù)設(shè)計(jì)的不同,扇區(qū)的容量主要有512B和4KB兩種格式;
②柱面(Cylinder),由扇區(qū)組成的一個(gè)圓,早期的分區(qū)以柱面為單位,現(xiàn)在一般都是以扇區(qū)為單位,每一個(gè)扇區(qū)都有一個(gè)號(hào)碼標(biāo)記。
③目前的分區(qū)格式主要有兩種:MBR分區(qū)表和GPT分區(qū)表;在MBR分區(qū)表中最重要的為第1扇區(qū)的內(nèi)容,在MBR的第1扇區(qū)內(nèi)有如下的內(nèi)容:
主引導(dǎo)記錄(Master boot record,簡(jiǎn)稱(chēng)MBR),分區(qū)表(partition table),其中主引導(dǎo)記錄占用446個(gè)字節(jié),而分區(qū)表占用64個(gè)字節(jié),2個(gè)校驗(yàn)字節(jié),共512字節(jié)。這種分區(qū)模式只支持小于2TB容量的磁盤(pán)。
GPT分區(qū)表支持的容量多達(dá)2TB以上,并且分區(qū)數(shù)較多。
在Linux系統(tǒng)中設(shè)備都是由文件名來(lái)表示,磁盤(pán)的名字一般為/dev/sd[a-p]的格式,第1個(gè)磁盤(pán)的名字為/dev/sda,而如果對(duì)其進(jìn)行分區(qū)操作,那么分區(qū)后的文件名則為/dev/sd[1-128],如果僅分為2個(gè)分區(qū)則有兩個(gè)文件名/dev/sda1和/dev/sda2等。
如果是虛擬磁盤(pán)則文件名為/dev/vd[a-p]等格式,如果是磁盤(pán)軟陣列其文件名則為/dev/md[0-128],如果做成LVM磁盤(pán)陣列則為/dev/VGNAME/LVNAME,其中VGNAME為卷組名,LVNAME為邏輯卷名。
特別說(shuō)明現(xiàn)在的磁盤(pán)容量都很大,大于2TB以上一般應(yīng)該采用GPT格式的分區(qū)表,但是磁盤(pán)容量比較少也可以使用MBR分區(qū)表,建議采用GPT格式的分區(qū)表。
㈡文件系統(tǒng)的特性
磁盤(pán)分區(qū)完成一般都要對(duì)磁盤(pán)分區(qū)進(jìn)行格式化(format)操作,格式化的過(guò)程就是創(chuàng)建文件系統(tǒng)(filesystem)的過(guò)程(把物理磁盤(pán)分成一塊塊的數(shù)據(jù)區(qū)塊)。而每一種文件系統(tǒng)它管理的文件屬性及權(quán)限設(shè)置又是不相同的,因此保存數(shù)據(jù)的方式及保護(hù)措施也不相同。并且不同的操作系統(tǒng)它們的文件系統(tǒng)格式有可能是不相通的,不能相互進(jìn)行訪問(wèn)操作等,如Linux系統(tǒng)的文件系統(tǒng)就不與windiws文件系統(tǒng)相通,但也有可能支持同屬性的文件系統(tǒng)存在,也可以進(jìn)行交流數(shù)據(jù)。
在Linux系統(tǒng)中傳統(tǒng)的文件系統(tǒng)是ext2(Linux second extended file system,ext2fs),傳統(tǒng)的文件系統(tǒng)一般都是一個(gè)分區(qū)格式化為一個(gè)文件系統(tǒng),也就是一個(gè)分區(qū)就是一個(gè)文件系統(tǒng),但是現(xiàn)在出現(xiàn)了很多新的技術(shù),也可以將一個(gè)分區(qū)格式化為多個(gè)文件系統(tǒng),或者把幾個(gè)分區(qū)合并成一個(gè)文件系統(tǒng)(LVM,RAID)等,因此,現(xiàn)在我們多采用一個(gè)能掛載數(shù)據(jù)的點(diǎn)稱(chēng)為一個(gè)文件系統(tǒng)而不是一個(gè)分區(qū)。
文件系統(tǒng)與操作系統(tǒng)有關(guān),一般情況下,操作系統(tǒng)的文件除了保存實(shí)際的數(shù)據(jù)內(nèi)容之外,通常都會(huì)包含有許多的屬性(如權(quán)限,文件的擁有者、同組用戶(hù)、文件的一些時(shí)間參數(shù)等)。文件系統(tǒng)通常會(huì)把文件內(nèi)容與文件的屬性分別存放到不同的數(shù)據(jù)區(qū)塊中,在Linux系統(tǒng)中權(quán)限與屬性放置到inode(i節(jié)點(diǎn))中,實(shí)際的數(shù)據(jù)保存在數(shù)據(jù)區(qū)塊中,除此之外,會(huì)使用一個(gè)超級(jí)區(qū)塊(Super block)來(lái)保存整個(gè)文件系統(tǒng)的相關(guān)信息,包括inode數(shù)、整個(gè)磁盤(pán)的數(shù)據(jù)區(qū)塊的總量,已經(jīng)使用的數(shù)據(jù)區(qū)塊,剩余的數(shù)據(jù)區(qū)塊等信息。
區(qū)塊與inode的相關(guān)知識(shí):
在Linux系統(tǒng)中,每個(gè)i節(jié)點(diǎn)與區(qū)塊都有編號(hào)(Number),超級(jí)區(qū)塊記錄的都是文件系統(tǒng)的整體信息,如上所示。i節(jié)點(diǎn)(inode)記錄文件的屬性,一個(gè)文件占用一個(gè)inode,并記錄此文件的數(shù)據(jù)區(qū)塊位置(號(hào)碼),一般的區(qū)塊就是保存數(shù)據(jù)的實(shí)際內(nèi)容,如果文件很大占用一個(gè)區(qū)塊的容量以上(一般都是占用多個(gè)區(qū)塊的內(nèi)容),也就是說(shuō)一個(gè)文件的容量如果超過(guò)區(qū)塊的容量會(huì)使用多個(gè)區(qū)塊來(lái)保存文件的內(nèi)容。
當(dāng)我們對(duì)磁盤(pán)進(jìn)行格式化操作時(shí),分配的區(qū)塊跟磁盤(pán)容量有關(guān)也跟設(shè)置的區(qū)塊的大小有關(guān),區(qū)塊分得大所能儲(chǔ)存的文件數(shù)相對(duì)來(lái)說(shuō)就少,這是因?yàn)槊恳粋€(gè)文件都會(huì)占用一個(gè)區(qū)塊,而文件太大會(huì)占用多個(gè)區(qū)塊。如圖3-2所示。
從上所知每一個(gè)i節(jié)點(diǎn)(inode)與數(shù)據(jù)區(qū)塊都會(huì)有編號(hào),而每一個(gè)文件都會(huì)占用一個(gè)i節(jié)點(diǎn)(inode)如果是大文件還會(huì)占用多個(gè)區(qū)塊,而inode除了保存文件的屬性之外,還保存(記錄)數(shù)據(jù)所在的區(qū)塊號(hào)碼,因此,只要能找到i節(jié)點(diǎn)(inode)就能夠找到我們所需要的文件實(shí)際數(shù)據(jù)了,采用i節(jié)點(diǎn)來(lái)記錄文件所在的數(shù)據(jù)區(qū)塊號(hào)碼提高了文件的訪問(wèn)效率,i節(jié)點(diǎn)就像是文件的檢索數(shù)據(jù)庫(kù)。不同的文件系統(tǒng)由于工作的方式不同,讀取文件的效率也是不相同的?,F(xiàn)在來(lái)比較一下Linux系統(tǒng)的ext2文件系統(tǒng)讀取數(shù)據(jù)方式與windows系統(tǒng)里的FAT文件系統(tǒng)讀取數(shù)據(jù)方式的不同。Linux讀取數(shù)據(jù)的方式我們稱(chēng)為索引式文件系統(tǒng)(indexed allocation),而FAT讀取數(shù)據(jù)的方式我們稱(chēng)為連鎖式。如圖3-3所示。
如圖3-3所示,對(duì)于采用索引方式的文件系統(tǒng),找文件時(shí)先找到i節(jié)點(diǎn),因?yàn)閕節(jié)點(diǎn)保存了這個(gè)文件所在的所有區(qū)塊號(hào)碼,從而同時(shí)直接找到文件儲(chǔ)存的所有數(shù)據(jù),效率很高。而FAT文件系統(tǒng)的每一個(gè)區(qū)塊都會(huì)保存前一區(qū)塊的號(hào)碼,例如,這個(gè)文件是保存在數(shù)據(jù)區(qū)塊2、7、10、14這4個(gè)區(qū)塊中,它的動(dòng)作是依次2→7→10→14寫(xiě)入?yún)^(qū)塊,讀取時(shí)也是一個(gè)一個(gè)區(qū)塊的讀取,效率相對(duì)來(lái)說(shuō)說(shuō)慢,這是因?yàn)楫?dāng)時(shí)間久了之后,數(shù)據(jù)會(huì)比較離散,有可能一個(gè)文件中的數(shù)據(jù)保存有在最前面的磁盤(pán)區(qū)塊,也有最后面的區(qū)塊,區(qū)塊之間距離相差好大,磁盤(pán)在讀取時(shí),磁頭移動(dòng)范圍很大,會(huì)造成數(shù)據(jù)讀取變慢,而索引文件系統(tǒng)它會(huì)直接找到所需的文件數(shù)據(jù),基本不會(huì)出現(xiàn)這種問(wèn)題,而FAT文件系統(tǒng)就不一樣了,文件的讀取是依次讀取,這是因?yàn)樵诿總€(gè)區(qū)塊中都保存有前一個(gè)區(qū)塊的號(hào)碼,因此,F(xiàn)AT文件系統(tǒng)通過(guò)碎片整理后可以提高文件的訪問(wèn)速度。
分享文章:了解Linux文件系統(tǒng)的知識(shí)
文章地址:http://jinyejixie.com/news/100518.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、外貿(mào)建站、網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容