以前谈过怎么快速为qemu生成磁盘文件,后来发现fallocate可以很好的做这件事。这个东西底层的实现不知道是什么情况,至少可以:a.只让文件看起来有那么大,磁盘空间COW分配;b.一次把磁盘空间分配完。对于大文件来说,后者似乎要更好,因为文件在磁盘上完全是连续的。这样制造出的文件内容全为0,某种程度上来说,fallocate是touch的增强版。
标题将fallocate与punch hole放在了一起。今天偶然看到punch hole 就是用fallocate实现的(http://lwn.net/Articles/415889/)。前段时间与某人谈起未来的工作,某人说ext4还是btrfs上,punch hole尚未实现。接口都留好了,只需要有人来做了。很是怀疑这个信息已经过时了。。。