【问题标题】:How to create files which share an extent?如何创建共享范围的文件?
【发布时间】:2019-11-19 17:57:39
【问题描述】:

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

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

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

【问题讨论】:

标签: c linux filesystems extent


【解决方案1】:

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

查看内核代码,我看到FALLOC_FL_UNSHARE_RANGE 仅在 XFS 的情况下被处理,所以也许这个 fallocate 标志目前仅适用于 XFS。

【讨论】:

    猜你喜欢
    • 2018-02-27
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    相关资源
    最近更新 更多