从一开始标准UNIX / Linux系统支持稀疏文件,这是一个文件,其中包含未使用的空间,直到需要时才分配。 通过一个C程序来生成一个文件,定位到2G,写一个字节,closures文件。 做一个ls -l显示的大小是2G ….但是ls -ls显示块的大小接近一个字节的文件。 如果你逻辑地访问该文件(即cp sparse_file xxx),结果文件xxx确实将包含一个完全分配的2G字节。
过去我已经创build了稀疏文件,作为一些应用程序的testing工具。 但是,他们的存在造成了一些问题。
重要的问题是在“转储”程序之外,备份程序和通用程序在逻辑上访问这些types的文件,因此对于1字节的稀疏文件,获得具有0数据的2G备份。 当我这样做的时候,这导致了一些不安的备份人员。
对于这种情况有什么好的解决办法?
GNU Tar具有–sparse ( -S )选项,使得使用备用文件变得简单。
使用能够正确检测和处理稀疏文件的备份程序。 他们周围有很多人(杰里米对S的焦油build议),只是把它作为备份系统评估的清单项目。
基于rsync的备份程序应该能够处理空间文件就好了(rsync有–sparce / -S选项)
对于稀疏文件,明星程序比GNU tar要快得多。 处理这些文件时需要使用-sparse选项。 对于简单的复制使用cp –sparse = auto