“Linux 的文件系统(ext4)会将文件分散在整个磁盘,在文件之间留有大量的自由空间”?!

2015-04-17 16:41:38 +08:00
 Tiande

一、标题那句话对吗?
原文:为什么Linux不需要碎片整理?

查了其他资料,没看到提及 文件分散在整个磁盘 的。有额外资料可以提供吗?

难道
$ mkdir dir1/ dir2/
他们的 inode 可能会随机分散到磁盘的不同位置?!
这样存储数据,对机械硬盘来说,读写速度都会减慢吧,即使人察觉不到。

二、在 挂载点的意义 这一节里

/, /boot, /home 为三个不同的 filesystem
[root@www ~]# ls -lid / /boot /home
2 drwxr-xr-x 23 root root 4096 Sep 22 12:09 /
2 drwxr-xr-x 4 root root 1024 Sep 4 18:06 /boot
2 drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home

看到了吧!由于 filesystem 最顶层的目录之 inode 一般为 2 号,因此可以发现 /, /boot, /home 为三个不同的 filesystem 啰! (因为每一行的文件属性并不相同,且三个目录的挂载点也均不相同之故。)

一个文件占用一个 inode ,挂载的三个 filesystem 不是 三个 文件吗,只占用了一个 inode 2?

.˚‧º·(இωஇ)‧º·˚. 我是不是要滚回去重修了 -(:3」∠)-

7575 次点击
所在节点    Linux
23 条回复
wizardforcel
2015-04-20 14:43:20 +08:00
block分散,并不等于inode分散。另外,一个inode只可以描述一个文件,或者目录,但是可以关联多个block。

不同的文件必然存在不同的block里,所以这样对读写不同文件之间没什么效率损耗。但这种储存方式使文件能最大程序的连续,读同一个文件的不同block明显变快了。
extreme
2015-04-21 00:39:42 +08:00
@notnumb 讨论?你想得太简单了,这是一场辩论。
我已经不是第一次辩论,也不会是最后一次。

不是我不承认错误,是你根本没说出任何有力的证据能证明我是错误的或能让我信服的东西。

你抓住一句针对写入的话,将其判断为错误,既然你说我对写入的描述是错误的,你不是应该解释一下的吗?但你却突然扯到读取,缓存,完全不知道你想表达什么, 难道你想说你在进行“侧面描写”?
看你20楼的回复,看了半天,一样不知道你想表达什么,你貌似想说不是碎片导致缓存命中率下降,是随机I/O,但后面又说碎片导致随机I/O,最后又说按顺序的数据可以提高缓存命中率,为什么我觉得你说了那么多,最后的意思还是和我原来说的差不多?你是想把“连续”替换为“顺序”吗?如果是,那你为什么不解释下?

你想说我是错误的,我不反对,但既然你认为我是错误的,那就请你证明我是错误的,并作出解释。

我可不希望看到一些解释得含糊不清,观点不明确,牛头不对马嘴的话,实在恶心人,如果你还想说这种话,那你最好立刻按下Alt with F4,不,是去把电闸拉下!
Mr1028
2015-04-24 16:39:37 +08:00
@dtdnqsb 我也不懂啊。。。。搞底层的好流弊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/184381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX