Linux雲計算架構 檔案系統詳解

2021-10-08 02:39:34 字數 4685 閱讀 2201

# 磁碟內部不是真空的,但空氣很乾淨。

# 磁碟分扇區,是邏輯化資料的需要,能更好的管理硬碟空間。

# 硬碟的儲存容量=磁頭數(盤面數)×磁軌(柱面)數×每道扇區數×每道扇區位元組數

# 外圈資料讀取快,內圈資料讀取慢

# 磁碟寫資料、windows的c盤、linux的boot分割槽都在磁碟的外圈,要求讀寫速度快。

linux檔案系統由三部分組成:檔名、inode、block

linux檔案系統: ext3、ext4、xfs

windows檔案系統: fat32、ntfs

# inode包含檔案的元資訊,具體來說有以下內容:

①檔案的位元組數

②檔案擁有者的 user id

③檔案的 group id

④檔案的讀、寫、執行許可權

⑤檔案的時間戳,共有三個:

ctime指檔案屬性上一次修改的時間

mtime指檔案內容上一次修改的時間

atime指檔案上一次訪問的時間。

⑥鏈結數,即有多少檔名指向這個inode

⑦檔案資料 block 的位置

# 檢視檔案的inode資訊

[root@master ~]

# stat /etc/passwd

檔案:"/etc/passwd"

大小:2262 塊:8 io 塊:4096 普通檔案

許可權:(0644/-rw-r--r--) uid:( 0/ root) gid:( 0/ root)

環境:system_u:object_r:passwd_file_t:s0

最近訪問:2020-07-14 22:26:24.741000178 +0800

最近更改:2020-06-23 17:54:17.315020864 +0800

最近改動:2020-06-23 17:54:17.315020864 +0800

# inode詳解

# inode號唯一標識乙個檔案

# 由於檔案的實際內容和inode都會占用硬碟空間,在格式化時,作業系統自動將硬碟分為兩個區域。乙個是資料區,存放資料,另乙個是inode區,存放inode所包含的資訊。

# 在格式化時,inode節點的總數已經給定,用完了,就不能建立檔案了。

# 每個inode節點的大小,一般是128位元組或256位元組。

# 假定在一塊1gb的硬碟中,每個inode節點的大小為128位元組,每1kb就設定乙個inode,那麼inode table的大小就會達到128mb,佔整塊硬碟的12.8%。

# inode資料量設定大一些:可以建立多個檔案。占用空間比較大

# inode資料量設定小一些:可以建立很少檔案。占用空間比較小

# 系統內部識別檔案的過程:

# 首先,系統找到這個檔名對應的inode號碼;

# 其次,通過inode號碼,獲取inode資訊;

# 最後,根據inode資訊,找到檔案資料所在的block,讀出資料。

# 查詢乙個普通檔案的inode號碼

[root@master ~]

# ls -i a.txt

67394033 a.txt

# 查詢乙個目錄檔案的inode號碼

[root@master ~]

# ls -id /etc

33554497 /etc

# 查詢系統中的inode的總數

[root@master ~]

# df -i

檔案系統 inode 已用(i) 可用(i) 已用(i)% 掛載點

devtmpfs 228628 394 228234 1% /dev

tmpfs 232906 1 232905 1% /dev/shm

tmpfs 232906 935 231971 1% /run

tmpfs 232906 16 232890 1% /sys/fs/cgroup

/dev/sda1 524288 341 523947 1% /boot

tmpfs 232906 6 232900 1% /run/user/42

tmpfs 232906 17 232889 1% /run/user/0

/dev/sr0 0 0 0 - /run/media/root/centos 7 x86_64

# block詳解【windows中稱作 簇】

# block,也可以叫做io塊

# block是真正儲存資料的地方。

# block是檔案系統中最小的儲存單位

# 扇區是磁碟中最小的儲存單位

# block設定大:效率高,利用率低。

# block設定小:效率低,利用率高。

# 檢視系統block的大小

[root@master ~]

# stat a.txt | grep io

大小:47 塊:8 io 塊:4096 普通檔案

# 成功建立檔案有兩個前提:①所在分割槽有剩餘空間 ②所在分割槽有剩餘索引節點

# 若存在剩餘空間,但不存在剩餘的索引節點,則不能成功建立檔案。

[root@master ~]

# df -h

檔案系統 容量 已用 可用 已用% 掛載點

devtmpfs 894m 0 894m 0% /dev

tmpfs 910m 0 910m 0% /dev/shm

tmpfs 910m 11m 900m 2% /run

tmpfs 910m 0 910m 0% /sys/fs/cgroup

/dev/sda1 1014m 179m 836m 18% /boot

tmpfs 182m 8.0k 182m 1% /run/user/42

tmpfs 182m 24k 182m 1% /run/user/0

/dev/sr0 4.3g 4.3g 0 100% /run/media/root/centos 7 x86_64

[root@master ~]

# df -i

檔案系統 inode 已用(i) 可用(i) 已用(i)% 掛載點

devtmpfs 228628 394 228234 1% /dev

tmpfs 232906 1 232905 1% /dev/shm

tmpfs 232906 936 231970 1% /run

tmpfs 232906 16 232890 1% /sys/fs/cgroup

/dev/sda1 524288 341 523947 1% /boot

tmpfs 232906 6 232900 1% /run/user/42

tmpfs 232906 17 232889 1% /run/user/0

/dev/sr0 0 0 0 - /run/media/root/centos 7 x86_64

# 解決辦法

①刪除部分快取檔案,釋放一部分的inode。

②備份部分快取檔案,刪除檔案,釋放出inode。然後新建乙個目錄,重新掛載乙個新分割槽,下次寫資料寫入新分割槽的掛載目錄下。

# 一塊新分割槽,在格式化後,inode總數已經固定了,可以通過-i引數指定inode的數量。

# 當伺服器宕機後,重啟報錯時,若要修復檔案系統才好用,具體用法可以上網搜,這裡只給出方法。

# 用之前了解清楚,請示領導才好用

輸入root密碼

fsck -f -y /dev/sda1 # 修復引導分割槽檔案系統

fsck -f -y /dev/sda3 # 修復/dev/sda3對應的檔案系統

reboot

兩篇部落格的學習,對linux檔案系統的學習已經足夠了。

檔案系統 檔案系統的架構

vfs是具體檔案系統的抽象,依靠超級塊 inode dentry以及檔案這些結構來發揮作用,檔案系統的架構就體現在這些結構的使用方式中。1 超級塊作用分析 1 2 所有的dentry都指向乙個dentry hashtable dentry hashtable是乙個樹組,每乙個樹組成員都是hash鍊錶...

當前Linux檔案系統架構下的檔案系統新需求

這裡討論一下在不改變當前linux檔案系統架構下,對linux檔案系統的新需求。第一需求,緩解檔案系統修復極度緩慢的問題。通過標記部分元資料為unused或者clean有助於減少修復檔案系統時需要檢查的資料總量。fsck的多種實現已經高度優化,但是仍然可能有更多的提公升空間。簡單來說,對檔案系統修復...

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...