注意

本文档适用于 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_sizefilestore_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

描述:

btrfs Filestore 启用快照。

类型:

Boolean

必需:

否。仅用于 btrfs

默认值:

true

filestore_btrfs_clone_range

描述:

btrfs Filestore 启用克隆范围。

类型:

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

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入