什么是文件孔以及它如何使用?

时间:2012-12-21 00:08:27

标签: linux file filesystems

根据我的理解,漏洞可能在inode中保存为元数据,但实际磁盘未填充空零。

  1. 有人可以解释现实生活中的例子,文件中的漏洞是否有用?

  2. 孔是否与 soft 预分配相同?从diskusage的角度来看,即使没有使用实际磁盘空间,但该空间也不可用于其他进程。

2 个答案:

答案 0 :(得分:13)

带孔的文件通常称为稀疏文件。

当程序需要访问各种地址(偏移量)但不太可能触及所有可能的块时,它们很有用。虚拟化产品可以使用它来存储虚拟磁盘。假设您配置了一个20 GB磁盘的虚拟机,但它不会快速充满数据。创建一个20 GB的稀疏文件要快得多,该文件一开始只使用几个磁盘块,然后让VM创建一个文件系统并以低速度存储文件。

当一些大型稀疏文件被空白(即填充空字节)时,它的大小也会减小。执行它的稀疏文件识别程序可以,而不是实际写入块,从文件中删除它们(即在文件中打孔)具有非常相同的效果,因为未分配的块在由程序读取时返回零。

稀疏文件与预分配相反,它们是所谓的精简配置或者也可能称为磁盘过量使用。这样可以创建比实际硬件支持更多的“虚拟磁盘空间”,并且只在必要时添加更多磁盘来扩展文件系统。

答案 1 :(得分:1)

在减少磁盘空间使用(它们可用空间更多)的意义上,漏洞是“有用的”。他们在任何其他意义上都不使用。当一个包含大块零的稀疏文件时,作为文件系统表示的一部分存在漏洞是“有用的”。

孔与预分配没有任何关系。在文件实际具有该数据之前,预分配会在磁盘上为文件中的数据提供空间。孔是数据的表示 ...特别是仅由零组成的块。