引入稀疏文件(sparse file)的目的是有效的利用文件系统空间(磁盘空间)。当文件没有实际数据时,首先将元数据/metadata(代表了空blocks)写入磁盘,而不是用空数据(0)填充磁盘。而当写入数据的时候,整个block被占用。
读取稀疏文件时,文件系统透明地将metadata转化为实际的空blocks,其中填充0.
总之,sparse file是当真正需要的时候才分配空间。这样即提高了磁盘利用率,又能在磁盘空间不足的情况下创建大文件(有时候这也是问题),而且降低了创建文件的时间开销(不需要分配完整的空间、不需要填充数据——初始分配一般填充0)。
当然sparse file也有问题
- 文件系统的空间报告误导人(看上去空间很足、可以创建很多文件)
- 真正写入数据的时候,可能会发现磁盘空间不足