首頁 >系統教程 >Linux >深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

WBOY
WBOY轉載
2023-12-31 22:18:291005瀏覽

Ext

全名為Linux extended file system, extfs,即Linux擴充檔案系統,Ext2就代表第二代檔案擴充系統,Ext3/Ext4以此類推,它們都是Ex​​t2的升級版,只不過增加了日誌功能,且彼此向下相容,所以Ext2被稱為索引式檔案系統,而Ext3/Ext4被稱為日誌式檔案系統。

備註:Linux支援許多檔案系統,包括網路檔案系統(NFS)、Windows的Fat檔案系統。

查看Linux支援的檔案系統:ls -l /lib/modules/$(uname -r)/kernel/fs

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

#查看Linux支援的檔案系統(已載入記憶體):cat /proc/filesystems

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

#核心設計

資料區

這些元素相對穩定,磁碟格式化後,就固定下來了。

1、inode(索引節點)
記錄檔案的權限、屬性和資料所在區塊block的號碼,每個檔案都有且僅有一個的inode,每個inode都有自己的編號,可以把inode簡單地理解為文檔索引。

2、block(資料區塊)
儲存的文件內容,也叫資料區塊(data block),每個block都有自己的編號,Ext2支援的單位block容量僅1k、2k、4k。

備註:為了方便inode的記錄,在磁碟格式化後,block的大小都已經固定了。每一個區塊只能存放一個文件的數據,若文件太大,將佔用多個block;若文件太小,block剩餘空間就不能被使用了,就會導致磁碟空間浪費,所以在磁碟分割後,文件系統格式化前,請先仔細想想檔案系統的預計使用情況。
 

中介資料(metadata)

這些元素是為了維持檔案系統狀態而設計出來的,主要代表的是檔案系統的動態配置訊息,屬於描述性資訊。

1、superblock(超級區塊)

記錄檔案系統(filesystem)的整體訊息,包括inode/block的總量、使用量、剩餘量、大小、以及檔案系統的格式和相關資訊。

備註:整個檔案系統的基本資訊全部記錄在superblock,它的大小一般為1024Bytes,如果它死掉,將會花費大量的時間去補救哦! ! !

2、block group(區塊群組)

試想一下,假如我們的磁碟容量高達數百G,當我們格式後,inode和block會非常龐大,為了便於管理,Ext檔案系統在格式化時,引入了區塊群組(block group)的概念,每個區塊群組都保持獨立inode/block/superblock,擁有固定數量的block,這樣就分成了一群最基礎的子檔案系統。

備註:superblock對於檔案系統太重要了,但檔案系統的superblock又只有一個,所以除了第一個block group含有superblock外,後續block group都可能會含有備份的superblock,目的就是為了避免superblock單點無法救援的問題。

3、block bitmap(區塊對照表)

一個block只能被一個檔案使用,當我們新增檔案時,肯定需要使用新的block來記錄檔案資料。那麼如何快速地知道,哪些block是新的呢?哪些block已經使用了的? block bitmap就是這樣被設計出來,記錄所有使用和未使用的block號碼。同樣的,當我們刪除檔案時,先從block bitmap中找到對應的block號碼,然後更新標誌為未使用,最後釋放block。

inode bitmap(inode 對照表)

#和block bitmap一樣的設計概念,只不過它記錄地是已使用和未使用的inode號碼,這裡就不再敖述了。

group descriptor

#描述每個區段(block group)開始和結束的block號碼,以及說明每個區段(inodemap、blockmap、inode table)分別介於哪些block號碼之間。

列出目前系統所有被格式化的裝置:blkid

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

##挑選一個已格式化好的設備,查看檔案系統的詳細資訊:dumpe2fs /dev/vda1

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)

##備註:透過上面的Magic簽名為0xEF53,說明我們的磁碟分割區是一個的ext2和ext3檔案系統。類似於透過檔案開頭的Magic,可以判斷檔案類型一樣。

总结

Ext家族是Linux支持度最广、最完整的文件系统,当我们格式化磁盘后,就已经为我们规划好了所有的inode/block/metadate等数据,这样系统可以直接使用,不需要再进行动态的配置,这也是它最优秀的特点,不过这也是它最显著的缺点,磁盘容量越大,格式化越慢,centos7.x已经选用xfs作为默认文件系统。

以上是深入了解Linux的標準檔案系統(Ext2/Ext3/Ext4)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除