linux文件系統(tǒng)基礎(chǔ)知識(shí)
利用直接指針、單級(jí)間接指針、二級(jí)間接指針、三級(jí)間接指針可保存的最大文件大小為:
1024*12+1024*256+1024*256*256+1024*256*256*256=16843020 KB,約 16GB
若數(shù)據(jù)塊大小為2048B,指針占4B,則最大文件大小為: 2048*12+2048*512+2048*512*512+2048*512*512*512=268,960,792 KB 約 268GB
若數(shù)據(jù)塊大小為4096B,指針占4B,則最大文件大小為: 4096*12+4096*1024+4096*1024*1024+4096*1024*1024*1024=4,299,165,744 KB ,約 4TB
注: 命令 tune2fs -l /dev/sda5 可查看文件系統(tǒng)
ext2文件系統(tǒng)最大文件名長(zhǎng)度: 255個(gè)字符
ext2文件系統(tǒng)的缺點(diǎn):
ext2在寫入文件內(nèi)容的同時(shí)并沒(méi)有同時(shí)寫入文件meta-data, 其工作順序是先寫入文件的內(nèi)容,然后等空閑時(shí)候才寫入文件的meta-data。若發(fā)生意外,則文件系統(tǒng)就會(huì)處于不一致狀態(tài)。
在重新啟動(dòng)系統(tǒng)的時(shí)候,linux會(huì)啟動(dòng) fsk ( file system check) 的程序,掃描整個(gè)文件系統(tǒng)并試圖修復(fù),但不提供保證。
9、ext3文件系統(tǒng):
ext3基于ext2的代碼,所以磁盤格式與ext2相同,使用相同的元數(shù)據(jù)。
ext2文件系統(tǒng)無(wú)損轉(zhuǎn)化為ext3文件系統(tǒng): tune2fs -j /dev/sda6
日志塊設(shè)備( Journaling block device layer,JBD)完成ext3文件系統(tǒng)日志功能。JBD不是ext3文件系統(tǒng)所特有的,它的設(shè)計(jì)目標(biāo)是為了向一個(gè)塊設(shè)備添加日志功能。
當(dāng)一個(gè)文件修改執(zhí)行時(shí),ext3文件系統(tǒng)代碼將通知JBD,稱為一個(gè)事務(wù)(transaction)。發(fā)生意外時(shí),日志功能具有的重放功能,能重新執(zhí)行中斷的事務(wù)。
日志中的3種數(shù)據(jù)模式:
1)、data=writeback :不處理任何形式的日志數(shù)據(jù),給用戶整體上的最高性能
2)、data=odered :只記錄元數(shù)據(jù)日志,但將元數(shù)據(jù)和數(shù)據(jù)組成一個(gè)單元稱為事務(wù)(transaction) 。此模式保持所句句的可靠性與文件系統(tǒng)的一致性,性能遠(yuǎn)低于data=writeback模式,但比data=journal模式快
3)、data=journal :提供完整的數(shù)據(jù)及元數(shù)據(jù)日志,所有新數(shù)據(jù)首先被寫入日志,然后才被定位。意外發(fā)生過(guò)后,日志可以被重放,將數(shù)據(jù)與元數(shù)據(jù)帶回一致狀態(tài)。這種模式整體性能最慢,但數(shù)據(jù)需要從磁盤讀取和寫入磁盤時(shí)卻是3種模式中最快的。
ext3文件系統(tǒng)最大文件名長(zhǎng)度: 255個(gè)字符
ext3文件系統(tǒng)的優(yōu)點(diǎn):可用性、數(shù)據(jù)完整性、速度、兼容性
10、ReiserFS文件系統(tǒng)
ReiserFS文件系統(tǒng)是由Hans Reiser和他領(lǐng)導(dǎo)的開發(fā)小組共同開發(fā)的,整個(gè)文件系統(tǒng)完全是從頭設(shè)計(jì)的,是一個(gè)非常優(yōu)秀的文件系統(tǒng)。也是最早用于Linux的日志文件系統(tǒng)之一。
ReiserFS的特點(diǎn)
先進(jìn)的日志機(jī)制
ReiserFS有先進(jìn)的日志(Journaling/logging)功能 機(jī)制。日志機(jī)制保證了在每個(gè)實(shí)際數(shù)據(jù)修改之前,相應(yīng)的日志已經(jīng)寫入硬盤。文件與數(shù)據(jù)的安全性有了很大提高。
高效的磁盤空間利用
Reiserfs對(duì)一些小文件不分配inode。而是將這些文件打包,存放在同一個(gè)磁盤分塊中。而其它文件系統(tǒng)則為每個(gè)小文件分別放置到一個(gè)磁盤分塊中。
獨(dú)特的搜尋方式
ReiserFS基于快速平衡樹(balanced tree)搜索,平衡樹在性能上非常卓越,這是一種非常高效的算法。ReiserFS搜索大量文件時(shí),搜索速度要比ext2快得多。Reiserfs文件系統(tǒng)使用B*Tree存儲(chǔ)文件,而其它文件系統(tǒng)使用B+Tree樹。B*Tree查詢速度比B+Tree要快很多。Reiserfs在文件定位上速度非常快。
在實(shí)際運(yùn)用中,ReiserFS 在處理小于 4k 的文件時(shí),比ext2 快 5 倍;帶尾文件壓縮功能(默認(rèn))的ReiserFS 比ext2文件系統(tǒng)多存儲(chǔ)6%的數(shù)據(jù)。
支持海量磁盤
ReiserFS是一個(gè)非常優(yōu)秀的文件系統(tǒng),一直被用在高端UNIX系統(tǒng)上,可輕松管理上百G的文件系統(tǒng),ReiserFS文件系統(tǒng)最大支持的文件系統(tǒng)尺寸為16TB。這非常適合企業(yè)級(jí)應(yīng)用中。
優(yōu)異的性能
由于它的高效存儲(chǔ)和快速小文件I/O特點(diǎn),使用ReiserFs文件系統(tǒng)的PC,在啟動(dòng)X窗口系統(tǒng)時(shí),所花的時(shí)間要比在同一臺(tái)機(jī)器上使用ext2文件系統(tǒng)少1/3。另外,ReiserFS文件系統(tǒng)支持單個(gè)文件尺寸為4G的文件,這為大型數(shù)據(jù)庫(kù)系統(tǒng)在linux上的應(yīng)用提供了更好的選擇。
評(píng)論