关于文件系统以前不知道的几个细节

关于文件系统以前不知道的几个细节 2010/7/12 12:33:02 Chapter 8: data block (資料區塊) data block 是用來放置檔案內容資料地方,在 Ext2 檔案系統中所支援的 block 大小有 1K, 2K 及 4K 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode 的記錄啦。 不過要注意的是,由於 block 大小的差異,會導致該檔案系統能夠支援的最大磁碟容量與最大單一檔案容量並不相同。 因為 block 大小而產生的 Ext2 檔案系統限制如下:(註2) Block 大小 1KB 2KB 4KB 最大單一檔案限制 16GB 256GB 2TB 最大檔案系統總容量 2TB 8TB 16TB 你需要注意的是,雖然 Ext2 已經能夠支援大於 2GB 以上的單一檔案容量,不過某些應用程式依然使用舊的限制, 也就是說,某些程式只能夠捉到小於 2GB 以下的檔案而已,這就跟檔案系統無關了! 舉例來說,鳥哥在環工方面的應用中有一套秀圖軟體稱為PAVE(註3), 這套軟體就無法捉到鳥哥在數值模式模擬後產生的大於 2GB 以上的檔案!害的鳥哥常常還要重跑數值模式... 除此之外 Ext2 檔案系統的 block 還有什麼限制呢?有的!基本限制如下: 原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化); 每個 block 內最多只能夠放置一個檔案的資料; 承上,如果檔案大於 block 的大小,則一個檔案會佔用多個 block 數量; 承上,若檔案小於 block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)。 如上第四點所說,由於每個 block 僅能容納一個檔案的資料而已,因此如果你的檔案都非常小,但是你的 block 在格式化時卻選用最大的 4K 時,可能會產生一些容量的浪費喔!我們以底下的一個簡單例題來算一下空間的浪費吧! 例題: 假設你的Ext2檔案系統使用 4K block ,而該檔案系統中有 10000 個小檔案,每個檔案大小均為 50bytes,請問此時你的磁碟浪費多少容量? 答: 由於 Ext2 檔案系統中一個 block 僅能容納一個檔案,因此每個 block 會浪費『 4096 - 50 = 4046 (byte)』,系統中總共有一萬個小檔案,所有檔案容量為:50 (bytes) x 10000 = 488.3Kbytes,但此時浪費的容量為:『 4046 (bytes) x 10000 = 38.6MBytes 』。想一想,不到 1MB 的總檔案容量卻浪費將近 40MB 的容量,且檔案越多將造成越多的磁碟容量浪費。 什麼情況會產生上述的狀況呢?例如 BBS 網站的資料啦!如果 BBS 上面的資料使用的是純文字檔案來記載每篇留言, 而留言內容如果都寫上『如題』時,想一想,是否就會產生很多小檔案了呢? 好,既然大的 block 可能會產生較嚴重的磁碟容量浪費,那麼我們是否就將 block 大小訂為 1K 即可? 這也不妥,因為如果 block 較小的話,那麼大型檔案將會佔用數量更多的 block ,而 inode 也要記錄更多的 block 號碼,此時將可能導致檔案系統不良的讀寫效能。 所以我們可以說,在您進行檔案系統的格式化之前,請先想好該檔案系統預計使用的情況。 以鳥哥來說,我的數值模式模擬平台隨便一個檔案都好幾百 MB,那麼 block 容量當然選擇較大的!至少檔案系統就不必記錄太多的 block 號碼,讀寫起來也比較方便啊!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值