溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

發(fā)布時(shí)間:2021-11-02 17:10:56 來(lái)源:億速云 閱讀:146 作者:柒染 欄目:系統(tǒng)運(yùn)維

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

在計(jì)算機(jī)出現(xiàn)之前其實(shí)就有文件系統(tǒng)的概念了,此時(shí)的文件系統(tǒng)是指用于管理(存儲(chǔ)和檢索等)紙質(zhì)文件的系統(tǒng)。計(jì)算機(jī)及發(fā)明后,文件系統(tǒng)逐漸專指用于管理存儲(chǔ)介質(zhì)的系統(tǒng)。它通過(guò)簡(jiǎn)單的接口給用戶,方便用戶使用存儲(chǔ)設(shè)備。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

Linux操作系統(tǒng)下的文件系統(tǒng)基本上也是如此。當(dāng)我們進(jìn)入Linux操作系統(tǒng)時(shí),首先看到的是各種類型的目錄(參考一篇文章學(xué)會(huì)Linux系統(tǒng)目錄管理)和各種文件。Linux有個(gè)理念就是“一切皆文件”,在Linux操作系統(tǒng)中幾乎所有資源都是以文件的形式呈現(xiàn)的。比如磁盤(pán)是文件,套接字是文件,系統(tǒng)配置項(xiàng)也是文件。所有這些內(nèi)容在Linux都是通過(guò)文件系統(tǒng)來(lái)管理的。

在操作系統(tǒng)中,文件系統(tǒng)的概念得到了延伸。Linux的文件系統(tǒng)分為兩類,一類是真實(shí)的文件系統(tǒng),用于存儲(chǔ)數(shù)據(jù);另一類是偽文件系統(tǒng),這些文件系統(tǒng)并不會(huì)持久化數(shù)據(jù)。今天我們將對(duì)Linux下的文件系統(tǒng)進(jìn)行整體的介紹,讓大家對(duì)文件系統(tǒng)有個(gè)概括的了解。

文件系統(tǒng)的使用

在Linux操作系統(tǒng)中文件系統(tǒng)的使用是非常簡(jiǎn)單的。如果使用的是Ubuntu等有圖形界面的操作系統(tǒng),那么我們可以通過(guò)GUI瀏覽文件系統(tǒng)。這個(gè)跟使用Windows和Mac  OS操作系統(tǒng)很像。從用戶角度來(lái)看,文件系統(tǒng)的文件被組織成樹(shù)形結(jié)構(gòu)。用戶可以自由的創(chuàng)建目錄和文件。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

但是如果是命令行的系統(tǒng),那么就沒(méi)有圖形界面方便了。但是,從組織形式上來(lái)說(shuō),也是樹(shù)形結(jié)構(gòu)。只不過(guò)沒(méi)有那么直觀。如圖我們通過(guò)tree命令可以看到文件系統(tǒng)的內(nèi)容及結(jié)構(gòu)。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

當(dāng)然,上面說(shuō)的都是文件系統(tǒng)已經(jīng)掛載的場(chǎng)景。有些情況下我們有一個(gè)新的磁盤(pán),但并沒(méi)有掛載,這個(gè)時(shí)候怎么才能使用這塊磁盤(pán)呢?方法也是非常簡(jiǎn)單的,只需要做如下幾步:

  • 格式化磁盤(pán),由于Linux支持很多種文件系統(tǒng),我們?cè)谑褂么疟P(pán)之前需要使用某種文件系統(tǒng)進(jìn)行格式化。比如格式化為Ext4文件系統(tǒng),mkfs.ext4  /dev/sdc。

  • 掛載文件系統(tǒng),格式化后并不能馬上使用,需要掛載到目錄樹(shù)上才可以使用。具體命令是mount /dev/sdc /mnt/ext4_test。

完成上述步驟后,/mnt/ext4_test目錄就是新磁盤(pán)的根目錄了,我們可以在其中創(chuàng)建子目錄或者新文件了。從普通用戶的角度來(lái)看,它只是一個(gè)子目錄,并不會(huì)感知到其是一個(gè)新的磁盤(pán),或者文件系統(tǒng)的具體類型。這一點(diǎn)與Windows有比較大的差異。

文件系統(tǒng)的基本原理

在操作系統(tǒng)層面,文件系統(tǒng)是其最關(guān)鍵的子系統(tǒng)之一,其核心功能是對(duì)存儲(chǔ)資源的管理。也就是說(shuō)文件系統(tǒng)是對(duì)磁盤(pán)(還包括光盤(pán)或者磁帶等其它類型的存儲(chǔ)介質(zhì))的空間進(jìn)行管理的。文件系統(tǒng)對(duì)磁盤(pán)空間的管理其實(shí)還是比較簡(jiǎn)單的,就是將大的磁盤(pán)空間切割為很小的區(qū)域(例如4KB),然后通過(guò)對(duì)這些小區(qū)域的分配和釋放來(lái)使用磁盤(pán)空間。

雖然文件系統(tǒng)是一個(gè)樹(shù)形結(jié)構(gòu),但是磁盤(pán)本身的空間卻是一個(gè)扁平的線性存儲(chǔ)空間。以Ext4為例,文件系統(tǒng)將磁盤(pán)劃分為若干個(gè)塊組,每個(gè)塊組又劃分為若干磁盤(pán)塊(可以在格式化時(shí)指定,默認(rèn)是1KB)。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

為了管理這些磁盤(pán)塊,總是需要一些區(qū)域來(lái)記錄哪些磁盤(pán)塊已經(jīng)被使用了,哪些還沒(méi)有被使用。記錄這些數(shù)據(jù)的數(shù)據(jù)通常在磁盤(pán)的特殊區(qū)域,我們稱這些數(shù)據(jù)為文件系統(tǒng)的元數(shù)據(jù)。通過(guò)這些元數(shù)據(jù)文件系統(tǒng)實(shí)現(xiàn)了對(duì)磁盤(pán)空間的管理,最終為用戶提供了簡(jiǎn)單易用的接口(使用接口,非API)。

文件系統(tǒng)的分類

前文我們介紹了基于存儲(chǔ)介質(zhì)的本地文件系統(tǒng),對(duì)其基本原理也做了介紹。其實(shí)文件系統(tǒng)發(fā)展到現(xiàn)在,其種類也豐富多樣。比如基于磁盤(pán)的普通本地文件系統(tǒng)除了Ext4外,還包括XFS、ZFS和Btrfs等等。其中Btrfs和ZFS不僅僅可以管理一塊磁盤(pán),還可以實(shí)現(xiàn)多塊磁盤(pán)的管理,同時(shí)實(shí)現(xiàn)數(shù)據(jù)的冗余管理,這樣可以避免磁盤(pán)故障導(dǎo)致的數(shù)據(jù)丟失。

另一個(gè)方面,除了對(duì)磁盤(pán)數(shù)據(jù)管理的文件系統(tǒng)外,還有一些網(wǎng)絡(luò)文件系統(tǒng)。也就是說(shuō),這些文件系統(tǒng)看似在本地,但其實(shí)數(shù)據(jù)是在遠(yuǎn)程的專門(mén)的設(shè)備上。客戶端是通過(guò)一些網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)數(shù)據(jù)的傳輸?shù)?。比如NFS和GlusterFS等等文件系統(tǒng)。

幾十年的發(fā)展,文件系統(tǒng)的種類也非常多,我們沒(méi)有辦法一一進(jìn)行介紹。今天我們就按照大類對(duì)主要的文件系統(tǒng)進(jìn)行介紹,不足之處還請(qǐng)指教。

1. 本地文件系統(tǒng)

本地文件系統(tǒng)是對(duì)磁盤(pán)空間進(jìn)行管理的文件系統(tǒng)。從呈現(xiàn)形態(tài)上來(lái)看,文件系統(tǒng)就是一個(gè)樹(shù)形的目錄結(jié)構(gòu)。前面我們已經(jīng)介紹了比較多的概念,其本質(zhì)上就是實(shí)現(xiàn)對(duì)磁盤(pán)空間的管理,實(shí)現(xiàn)磁盤(pán)線性空間與目錄結(jié)構(gòu)的轉(zhuǎn)換。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

從普通用戶的角度來(lái)說(shuō),主要方便了對(duì)磁盤(pán)空的使用,降低了使用難度,提高了利用效率。常見(jiàn)的本地文件系統(tǒng)有Ext4、Btrfs、XFS和ZFS等等。

2. 偽文件系統(tǒng)

偽文件系統(tǒng)是對(duì)傳統(tǒng)文件系統(tǒng)的延伸。偽文件系統(tǒng)并不會(huì)持久化數(shù)據(jù),而是在內(nèi)存中的文件系統(tǒng)。它以文件系統(tǒng)的形態(tài)實(shí)現(xiàn)用戶與內(nèi)核數(shù)據(jù)的交互。比如我們常見(jiàn)的偽文件系統(tǒng)包括proc、sysfs和configfs等等。

在Linux操作系統(tǒng)中偽文件系統(tǒng)主要實(shí)現(xiàn)內(nèi)核與用戶態(tài)的交互。比如獲取IPv4協(xié)議的參數(shù),我們只需要

3. 網(wǎng)絡(luò)(分布式)文件系統(tǒng)

網(wǎng)絡(luò)文件系統(tǒng)是一種將數(shù)據(jù)存儲(chǔ)在遠(yuǎn)端的文件系統(tǒng)。網(wǎng)絡(luò)文件系統(tǒng)通常分為客戶端和服務(wù)端,其中客戶端類似本地文件系統(tǒng),而服務(wù)端則是對(duì)數(shù)據(jù)進(jìn)行管理的系統(tǒng)。網(wǎng)絡(luò)文件系統(tǒng)的使用與本地文件系統(tǒng)沒(méi)有任何差別,只需要執(zhí)行mount命令掛載即可。網(wǎng)絡(luò)文件系統(tǒng)種類也很多,比如NFS、CephFS和Gluster等。

在用戶層面,完成掛載后的網(wǎng)絡(luò)文件系統(tǒng)與本地文件系統(tǒng)完全一樣,看不出任何差異,對(duì)用戶是透明的。網(wǎng)絡(luò)文件系統(tǒng)就好像將遠(yuǎn)程的文件系統(tǒng)映射到了本地。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

如圖是將文件系統(tǒng)服務(wù)中文件系統(tǒng)映射到客戶端的示意圖。從用戶的角度只是某個(gè)子目錄,但實(shí)際上讀寫(xiě)請(qǐng)求需要通過(guò)網(wǎng)絡(luò)轉(zhuǎn)發(fā)到服務(wù)端進(jìn)行處理。

4. 集群文件系統(tǒng)

集群文件系統(tǒng)也是一種本地文件系統(tǒng)。與普通本地文件系統(tǒng)的差異在于其后端磁盤(pán)通常是基于網(wǎng)絡(luò)的SAN設(shè)備,且在多個(gè)節(jié)點(diǎn)共享(非絕對(duì))。集群文件系統(tǒng)可以實(shí)現(xiàn)多個(gè)節(jié)點(diǎn)對(duì)磁盤(pán)介質(zhì)的共同訪問(wèn)。

Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢

同時(shí),對(duì)于集群文件系統(tǒng)來(lái)說(shuō),其最大的特點(diǎn)是多個(gè)結(jié)點(diǎn)可以同時(shí)為應(yīng)用層提供文件系統(tǒng)服務(wù)。這種常見(jiàn)特別適合用于應(yīng)用業(yè)務(wù)多活的場(chǎng)景,通過(guò)集群文件系統(tǒng)提供高可用集群機(jī)制,避免宕機(jī)造成的服務(wù)失效情況。

關(guān)于Linux文件系統(tǒng)的基本原理是什么及常見(jiàn)類型有哪些呢問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI