如何创建共享一个Extent的文件?

4

Linux程序员手册页面fallocate(2)指出:

如果在mode中指定了FALLOC_FL_UNSHARE标志,则共享文件数据范围将变为文件私有,以确保后续的写入不会由于空间不足而失败。通常,这将通过对文件中所有共享数据执行写时复制操作来完成。并非所有文件系统都支持此标志。

这很酷,但是… 如何首先创建共享文件数据范围


还可以参考fallocate (2) man页面和Stack Overflow上的fallocate vs posix_fallocate - jww
1个回答

3

当基础文件系统支持reflinks(例如:XFS和BTRFS),并且您使用--reflink标志执行cp或使用ioctl_ficlonerange(2)系统调用时,将创建共享数据范围。

查看内核代码时,我发现只有在XFS的情况下才处理FALLOC_FL_UNSHARE_RANGE,所以也许当前fallocate的此标志仅适用于XFS。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接