.
原则上,
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
号码,读写起来也比½方便啊!
Tips
事实上,现在的磁盘容量都太大了!所以,大概大家都只会选择
4K
block
大小吧!
呵呵!
.
inode table (inode
表格
)
再来讨论一下
inode
这个玩意儿吧!如前所述
inode
的内容在记录文件的属性以及该文件实际数据
是放置在哪几号
block
内!
基本上,
inode
记录的文件数据至少有底下这些:
(
4
)
.
该文件的存取模式
(read/write/excute)
.
该文件的拥有者与群组
(owner/group)
.
该文件的容量;
.
该文件½立或状态改变的时间
(ctime)