据我理解,空洞可能作为元数据维护在inode中,但实际磁盘并未填充空白零。
有人能用现实生活示例解释一下,在文件中的空洞可以有什么用处吗?
空洞是否与软预分配相同?从磁盘使用情况的角度来看,即使实际磁盘空间未被使用,但该空间也不可用于其他进程。
据我理解,空洞可能作为元数据维护在inode中,但实际磁盘并未填充空白零。
有人能用现实生活示例解释一下,在文件中的空洞可以有什么用处吗?
空洞是否与软预分配相同?从磁盘使用情况的角度来看,即使实际磁盘空间未被使用,但该空间也不可用于其他进程。
有空洞的文件通常被称为稀疏文件。
当程序需要访问广泛的地址(偏移量),但不太可能触及所有潜在块时,它们是非常有用的。这可以被虚拟化产品用于存储虚拟磁盘。比如你配置了一个20 GB的虚拟机硬盘,但它不会很快填满数据。创建一个20 GB的稀疏文件,只使用几个磁盘块,然后让虚拟机以低速率创建文件系统和存储文件,会更快。
一旦某些块被清空(即填充了null字节),大型稀疏文件的大小也可以被减小。进行此操作的稀疏文件感知程序可以将其从文件中删除(即在文件中打孔),而不是实际写入块,因为空闲块在被程序读取时返回零。
稀疏文件与预分配相反,它们被称为薄配置或可能也被称为磁盘超额配置。这允许创建比实际硬件支持更多的“虚拟磁盘空间”,并在必要时添加更多的磁盘,以仅在需要时扩展文件系统。