注意
本文档适用于 Ceph 的开发版本。
Filestore 配置参考
注意
自 Ceph 的 Luminous 版本以来,Filestore 已不再是 Ceph 的默认存储后端。自 Ceph 的 Luminous 版本以来,BlueStore 已成为 Ceph 的默认存储后端。然而,Filestore OSD 仍受支持直至 Quincy 版本。Reef 版本不支持 Filestore OSD。请参阅 OSD 后端。有关如何用 BlueStore 后端替换现有 Filestore 后端的说明,请参阅 BlueStore 迁移。
filestore_debug_omap_check
- 描述:
用于同步的调试检查。开销大。仅用于调试。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
扩展属性
扩展属性 (XATTRs) 对 Filestore OSD 至关重要。然而,当底层文件系统用于存储 XATTRs 时,可能会出现某些缺点:有些文件系统对 XATTRs 中可以存储的字节数有限制,在某些情况下,您的文件系统可能会因此比替代的 XATTRs 存储方法运行得更慢。因此,使用与底层文件系统无关的方法存储 XATTRs 可能会提高性能。要实现这种外部方法,请参考以下设置。
如果底层文件系统没有大小限制,那么 Ceph XATTRs 会被存储为 inline xattr,使用文件系统提供的 XATTRs。但如果存在大小限制(例如,ext4 限制总共 4 KB),那么当达到限制时,一些 Ceph XATTRs 将存储在键/值数据库中。更准确地说,当达到 filestore_max_inline_xattr_size 或 filestore_max_inline_xattrs 阈值时,就会开始出现这种情况。
filestore_max_inline_xattr_size
- 描述:
定义可以存储在文件系统(例如 XFS、Btrfs、ext4)中的每个对象的 XATTR 的最大大小。指定的大小不应大于文件系统能够处理的大小。使用默认值 0 会指示 Filestore 使用特定于文件系统的值。
- 类型:
无符号 32 位整数
- 必需:
否
- 默认值:
0
filestore_max_inline_xattr_size_xfs
- 描述:
定义可以存储在 XFS 文件系统中的 XATTR 的最大大小。此设置仅在
filestore_max_inline_xattr_size== 0 时使用。- 类型:
无符号 32 位整数
- 必需:
否
- 默认值:
65536
filestore_max_inline_xattr_size_btrfs
- 描述:
定义可以存储在 Btrfs 文件系统中的 XATTR 的最大大小。此设置仅在
filestore_max_inline_xattr_size== 0 时使用。- 类型:
无符号 32 位整数
- 必需:
否
- 默认值:
2048
filestore_max_inline_xattr_size_other
- 描述:
定义可以存储在其他文件系统中的 XATTR 的最大大小。此设置仅在
filestore_max_inline_xattr_size== 0 时使用。- 类型:
无符号 32 位整数
- 必需:
否
- 默认值:
512
filestore_max_inline_xattrs
- 描述:
定义可以存储在文件系统中的每个对象的 XATTRs 的最大数量。使用默认值 0 会指示 Filestore 使用特定于文件系统的值。
- 类型:
32 位整数
- 必需:
否
- 默认值:
0
filestore_max_inline_xattrs_xfs
- 描述:
定义可以存储在 XFS 文件系统中的每个对象的 XATTRs 的最大数量。此设置仅在
filestore_max_inline_xattrs== 0 时使用。- 类型:
32 位整数
- 必需:
否
- 默认值:
10
filestore_max_inline_xattrs_btrfs
- 描述:
定义可以存储在 Btrfs 文件系统中的每个对象的 XATTRs 的最大数量。此设置仅在
filestore_max_inline_xattrs== 0 时使用。- 类型:
32 位整数
- 必需:
否
- 默认值:
10
filestore_max_inline_xattrs_other
- 描述:
定义可以存储在其他文件系统中的每个对象的 XATTRs 的最大数量。此设置仅在
filestore_max_inline_xattrs== 0 时使用。- 类型:
32 位整数
- 必需:
否
- 默认值:
2
同步间隔
Filestore 必须定期静默写入并同步文件系统。每次同步都会创建一个一致的提交点。创建提交点后,Filestore 能够释放所有到该点的日志条目。更频繁的同步往往会减少同步时间以及需要保留在日志中的数据量。不那么频繁的同步允许后端文件系统合并小的写入和元数据更新,可能会提高同步效率,但也可能增加尾部延迟。
filestore_max_sync_interval
- 描述:
定义 Filestore 同步的最大间隔(以秒为单位)。
- 类型:
Double
- 必需:
否
- 默认值:
5
filestore_min_sync_interval
- 描述:
定义 Filestore 同步的最小间隔(以秒为单位)。
- 类型:
Double
- 必需:
否
- 默认值:
.01
刷写器(Flusher)
Filestore 刷写器强制使用 sync_file_range 将大写入的数据在同步之前写入。理想情况下,此操作可减少最终同步的开销。然而,在实践中,禁用 'filestore_flusher' 在某些情况下似乎可以提高性能。
filestore_flusher
- 描述:
启用 Filestore 刷写器。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
自版本 v.65 起已弃用。
filestore_flusher_max_fds
- 描述:
定义刷写器的最大文件描述符数量。
- 类型:
整数
- 必需:
否
- 默认值:
512
自版本 v.65 起已弃用。
filestore_sync_flush
- 描述:
启用同步刷写器。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
自版本 v.65 起已弃用。
filestore_fsync_flushes_journal_data
- 描述:
在文件系统同步期间刷写日志数据。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
队列
以下设置定义 Filestore 队列大小的限制
filestore_queue_max_ops
- 描述:
定义 Filestore 在阻止新操作排队之前接受的最大正在进行的操作数量。
- 类型:
整数
- 必需:
否。对性能影响最小。
- 默认值:
50
filestore_queue_max_bytes
- 描述:
定义每个操作允许的最大字节数。
- 类型:
整数
- 必需:
否
- 默认值:
100 << 20
超时
filestore_op_threads
- 描述:
定义并行执行的文件系统操作线程数。
- 类型:
整数
- 必需:
否
- 默认值:
2
filestore_op_thread_timeout
- 描述:
定义文件系统操作线程的超时时间(以秒为单位)。
- 类型:
整数
- 必需:
否
- 默认值:
60
filestore_op_thread_suicide_timeout
- 描述:
定义提交操作在取消之前的超时时间(以秒为单位)。
- 类型:
整数
- 必需:
否
- 默认值:
180
B-树文件系统
filestore_btrfs_snap
- 描述:
为
btrfsFilestore 启用快照。- 类型:
Boolean
- 必需:
否。仅用于
btrfs。- 默认值:
true
filestore_btrfs_clone_range
- 描述:
为
btrfsFilestore 启用克隆范围。- 类型:
Boolean
- 必需:
否。仅用于
btrfs。- 默认值:
true
日志
filestore_journal_parallel
- 描述:
启用并行日志记录,
btrfs的默认设置。- 类型:
Boolean
- 必需:
否
- 默认值:
false
filestore_journal_writeahead
- 描述:
启用预写日志记录,XFS 的默认设置。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
filestore_journal_trailing
- 描述:
已弃用。切勿使用。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
其他
filestore_merge_threshold
- 描述:
定义在子目录合并到其父目录之前允许的最小文件数。注意:负值表示禁用子目录合并。
- 类型:
整数
- 必需:
否
- 默认值:
-10
filestore_split_multiple
- 描述:
(filestore_split_multiple * abs(filestore_merge_threshold) + (rand() % filestore_split_rand_factor)) * 16是在子目录拆分为子子目录之前允许的最大文件数。- 类型:
整数
- 必需:
否
- 默认值:
2
filestore_split_rand_factor
- 描述:
添加到拆分阈值的随机因子,以避免太多(开销大)的 Filestore 拆分同时发生。有关详细信息,请参阅
filestore_split_multiple。要更改现有 OSD 的此设置,必须在运行ceph-objectstore-tool apply-layout-settings命令之前使 OSD 脱机。- 类型:
无符号 32 位整数
- 必需:
否
- 默认值:
20
filestore_update_to
- 描述:
将自动升级限制为 Filestore 的指定版本。在您想要避免升级到特定版本的情况下很有用。
- 类型:
整数
- 必需:
否
- 默认值:
1000
filestore_blackhole
- 描述:
丢弃任何新事务,类似于重定向到 NULL。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
filestore_dump_file
- 描述:
定义事务转储存储到的文件。
- 类型:
Boolean
- 必需:
否
- 默认值:
false
filestore_kill_at
- 描述:
在第 n 次机会时注入故障。
- 类型:
String
- 必需:
否
- 默认值:
false
filestore_fail_eio
- 描述:
在 EIO 上失败/崩溃。
- 类型:
Boolean
- 必需:
否
- 默认值:
true