LINUX下EXT3檔案系統大小有2T限制

2021-08-13 13:55:24 字數 885 閱讀 7720

因為ext3的inode使用32的位址指標以及3次間接指標,這樣單個檔案的大小最多為2^10*2^10*2^10*2^11,也就是2的41次方,即在32系統上並使用4k塊大小時,單個檔案最多是8tb。由於使用32位的位址長度,ext3最多支援的磁碟大小為2^31*4k,即8tb(inode號是有符號int的變數,所以是2^31)。 

由於當今磁碟陣列的發展,已經出現了超過8tb的磁碟陣列,於是最近核心郵件列表裡火了一把關於ext3擴充套件的討論,這就是ext4。 

看了一下,那幫ext3/ext2的開發者們使用了如下了inode替換了原來的ext3_inode結構

原來的inode使用15個指標指向檔案存放的塊,其中最後三個是間接索引;現在ext4使用稱為擴充套件的inode替代了原來的ext3_inode,即ext3_extent。 

extent的空間佔3個位元組,這樣原來的15個指標空間可以存放5個extent,如果檔案足夠連續的話,就可以存放5×2^16byte(320kbyte)大小的檔案。原來的ext3在不使用間接索引的時候,只能存放48kbyte大小的檔案,這樣extent就減少了小檔案(不大不小檔案?)的指標索引次數,加快了訪問時間。 

當檔案超過一定大小時,extent也使用間接索引,不過與ext3不同的是,extent的間接索引次數沒有限制,不像ext3最多只能做3次間接索引。 

注意ee_len欄位,它是16位的,也就是說它的乙個塊組最大是64k,而不是4k。這樣大量減少了查詢時間,ext4開發者解釋說,「現在檔案存放傾向於使用連續的塊,這樣做是不會讓費空間的」。 

另乙個重要的字段是:ee_start和ee_start_hi,他們共同組成48位的磁碟塊索引, 

這樣可以支援1024 pb大小的裝置,在未來數十年,足夠了! 

但是ext4有乙個缺點,那就是舊核心不能識別使用ext4的磁碟。 

Linux下Ext2與Ext3檔案系統的區別

ext2 是 gnu linux 系統中標準的檔案系統,其特點為訪問檔案的效能極好,對於中小型的檔案更顯示出優勢,這主要得利於其簇快取層的優良設計。其單一檔案大小與檔案系統本身的容量上限與檔案系統本身的簇大小有關,在一般常見的 x86 電腦系統中,簇最大為 4kb,則單一檔案大小上限為 2048gb...

ext3檔案系統反刪除利器 ext3grep

linux作為企業級伺服器,資料的安全性至關重要,任何資料德爾丟失和誤刪都是不可容忍的!最近我接觸到一款軟體 ext3grep,它可以恢復誤刪的資料,下面簡單講解一下這個軟體。ext3grep的恢復原理 利用ext3grep恢復檔案時並不依賴特定文字格式。首先ext3grep通過檔案系統的root ...

ext3檔案系統反刪除利器 ext3grep

linux作為企業級伺服器,資料的安全性至關重要,任何資料德爾丟失和誤刪都是不可容忍的!最近我接觸到一款軟體 ext3grep,它可以恢復誤刪的資料,下面簡單講解一下這個軟體。ext3grep的恢復原理 利用ext3grep恢復檔案時並不依賴特定文字格式。首先ext3grep通過檔案系統的root ...