自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux的文件系統(tǒng)的基本原理及常見類型

系統(tǒng) Linux
今天我們將對Linux下的文件系統(tǒng)進(jìn)行整體的介紹,讓大家對文件系統(tǒng)有個(gè)概括的了解。

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

[[316692]]

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

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

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

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

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

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

  • 格式化磁盤,由于Linux支持很多種文件系統(tǒng),我們在使用磁盤之前需要使用某種文件系統(tǒng)進(jìn)行格式化。比如格式化為Ext4文件系統(tǒng),mkfs.ext4 /dev/sdc。
  • 掛載文件系統(tǒng),格式化后并不能馬上使用,需要掛載到目錄樹上才可以使用。具體命令是mount /dev/sdc /mnt/ext4_test。

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

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

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

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

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

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

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

另一個(gè)方面,除了對磁盤數(shù)據(jù)管理的文件系統(tǒng)外,還有一些網(wǎng)絡(luò)文件系統(tǒng)。也就是說,這些文件系統(tǒng)看似在本地,但其實(shí)數(shù)據(jù)是在遠(yuǎn)程的專門的設(shè)備上??蛻舳耸峭ㄟ^一些網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)數(shù)據(jù)的傳輸?shù)摹1热鏝FS和GlusterFS等等文件系統(tǒng)。

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

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

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

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

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

偽文件系統(tǒng)是對傳統(tǒng)文件系統(tǒng)的延伸。偽文件系統(tǒng)并不會持久化數(shù)據(jù),而是在內(nèi)存中的文件系統(tǒng)。它以文件系統(tǒng)的形態(tài)實(shí)現(xiàn)用戶與內(nèi)核數(shù)據(jù)的交互。比如我們常見的偽文件系統(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ù)存儲在遠(yuǎn)端的文件系統(tǒng)。網(wǎng)絡(luò)文件系統(tǒng)通常分為客戶端和服務(wù)端,其中客戶端類似本地文件系統(tǒng),而服務(wù)端則是對數(shù)據(jù)進(jìn)行管理的系統(tǒng)。網(wǎng)絡(luò)文件系統(tǒng)的使用與本地文件系統(tǒng)沒有任何差別,只需要執(zhí)行mount命令掛載即可。網(wǎng)絡(luò)文件系統(tǒng)種類也很多,比如NFS、CephFS和Gluster等。

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

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

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

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

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

責(zé)任編輯:趙寧寧 來源: itworld123
相關(guān)推薦

2010-09-08 15:25:15

Linux系統(tǒng)分區(qū)

2010-06-18 17:28:37

Linux Anacr

2010-08-20 13:29:33

OFDM

2020-03-21 14:57:14

手機(jī)定位智能手機(jī)APP

2013-04-07 14:09:55

Android應(yīng)用基本

2015-01-19 15:47:02

FCoE一體化

2012-01-12 14:37:34

jQuery

2009-02-24 09:43:00

IP電話原理

2010-03-17 13:35:02

2011-11-29 12:17:00

2016-08-18 00:04:09

網(wǎng)絡(luò)爬蟲抓取系統(tǒng)服務(wù)器

2019-11-28 10:45:28

ZooKeeper源碼分布式

2020-11-26 13:54:03

容器LinuxDocker

2016-08-17 23:53:29

網(wǎng)絡(luò)爬蟲抓取系統(tǒng)

2021-02-08 21:40:04

SockmapBPF存儲

2010-02-04 14:25:27

2010-09-26 17:13:31

2020-12-15 11:37:18

語音通話網(wǎng)絡(luò)拓?fù)?/a>音頻

2009-12-22 15:39:36

IPPBX技術(shù)

2020-12-29 16:55:44

ZooKeeper運(yùn)維數(shù)據(jù)結(jié)構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號