搜索

11.8. Ceph BlueStore BlueFS

download PDF

BlueStore 块数据库将元数据作为键值对存储在 RocksDB 数据库中。块数据库驻留在存储设备上的一个小型 BlueFS 分区。BlueFS 是一个最小的文件系统,旨在保存 RocksDB 文件。

BlueFS 文件

以下是 RocksDB 生成的三种文件类型:

  • 控制文件,如 CURRENTIDENTITYMANIFEST-000011
  • DB 表文件,如 004112.sst
  • 提前写入日志,如 000038.log

此外,还有一个内部的隐藏文件,充当 BlueFS replay 日志 ( ino 1), 它充当目录结构、文件映射和操作日志。

回退层次结构

使用 BlueFS,可以将任何文件放在任何设备上。文件的部分甚至可以位于不同的设备上,即 WAL、DB 和 SLOW。顺序是 BlueFS 放置文件。只有在主存储耗尽时,文件才会放入次要存储,仅当次要存储耗尽时。

特定文件的顺序是:

  • 提前写入日志:WAL、DB、SLOW
  • Replay log ino 1: DB, SLOW
  • 控制和 DB 文件:DB、SLOW

    • 在用尽空间时控制和 DB 文件顺序:SLOW

      重要

      控制和 DB 文件顺序的例外。当 RocksDB 检测到您在 DB 文件上运行的空间不足时,它会直接通知您将文件放入 SLOW 设备。

11.8.1. 查看 bluefs_buffered_io 设置

作为存储管理员,您可以查看 bluefs_buffered_io 参数的当前设置。

对于 Red Hat Ceph Storage,默认将 bluefs_buffered_io 选项设为 True。这个选项使 BlueFS 能够在某些情况下执行缓冲的读取,并允许内核页面缓存作为辅助缓存进行读取,如 RocksDB 块读取。

重要

不建议更改 bluefs_buffered_io 的值。在更改 bluefs_buffered_io 参数前,请联系您的红帽支持团队。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • Ceph 监控节点的根级别访问权限.

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  2. 您可以通过三种不同的方式查看 bluefs_buffered_io 参数的当前值:

方法 1

  • 查看存储在配置数据库中的值:

    示例

    [ceph: root@host01 /]# ceph config get osd bluefs_buffered_io

方法 2

  • 查看为特定 OSD 存储在配置数据库中的值:

    语法

    ceph config get OSD_ID bluefs_buffered_io

    示例

    [ceph: root@host01 /]# ceph config get osd.2 bluefs_buffered_io

方法 3

  • 查看运行值的 OSD 的运行值与配置数据库中存储的值不同:

    语法

    ceph config show OSD_ID bluefs_buffered_io

    示例

    [ceph: root@host01 /]# ceph config show osd.3 bluefs_buffered_io

11.8.2. 查看 Ceph OSD 的 Ceph BlueFS 统计信息

使用 bluefs stats 命令查看并置和非并置 Ceph OSD 的与 BluesFS 相关的信息。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 对象存储配置为 BlueStore。
  • 对 OSD 节点的 root 级别访问权限。

流程

  1. 登录到 Cephadm shell:

    示例

    [root@host01 ~]# cephadm shell

  2. 查看 BlueStore OSD 统计信息:

    语法

    ceph daemon osd.OSD_ID bluefs stats

    collocated OSD 示例

    [ceph: root@host01 /]# ceph daemon osd.1 bluefs stats
    
    1 : device size 0x3bfc00000 : using 0x1a428000(420 MiB)
    wal_total:0, db_total:15296836403, slow_total:0

    非并置 OSD 示例

    [ceph: root@host01 /]# ceph daemon osd.1 bluefs stats
    
    0 :
    1 : device size 0x1dfbfe000 : using 0x1100000(17 MiB)
    2 : device size 0x27fc00000 : using 0x248000(2.3 MiB)
    RocksDBBlueFSVolumeSelector: wal_total:0, db_total:7646425907, slow_total:10196562739, db_avail:935539507
    Usage matrix:
    DEV/LEV     WAL         DB          SLOW        *           *           REAL        FILES
    LOG         0 B         4 MiB       0 B         0 B         0 B         756 KiB     1
    WAL         0 B         4 MiB       0 B         0 B         0 B         3.3 MiB     1
    DB          0 B         9 MiB       0 B         0 B         0 B         76 KiB      10
    SLOW        0 B         0 B         0 B         0 B         0 B         0 B         0
    TOTALS      0 B         17 MiB      0 B         0 B         0 B         0 B         12
    MAXIMUMS:
    LOG         0 B         4 MiB       0 B         0 B         0 B         756 KiB
    WAL         0 B         4 MiB       0 B         0 B         0 B         3.3 MiB
    DB          0 B         11 MiB      0 B         0 B         0 B         112 KiB
    SLOW        0 B         0 B         0 B         0 B         0 B         0 B
    TOTALS      0 B         17 MiB      0 B         0 B         0 B         0 B

    其中:

    0 :这指的是专用的 WAL 设备,即 block.wal

    1: 这指的是专用的 DB 设备,即 block.db

    2: 这指的是主块设备,即 blockslow

    设备大小 :它代表设备的实际大小。

    使用: 表示总使用量。它不仅限于 BlueFS。

    注意

    DB 和 WAL 设备仅由 BlueFS 使用。对于主设备,也包含来自存储的 BlueStore 数据的使用量。在上例中,2.3 MiB 是 BlueStore 的数据。

    wal_total,db_total,slow_total: 这些值重新迭代上面的设备值。

    db_avail :如果需要,这个值代表可以从 SLOW 设备获取多少字节。

    使用列表
    • rows WAL,DB,SLOW: 描述特定文件要放置的位置。
    • LOG :描述 BlueFS replay log ino 1
    • WAL,DB,SLOW: 描述数据实际放置的位置。这些值以分配单位为单位。因为性能的原因,WAL 和 DB 有较大的分配单元。
    • * / *:与虚拟设备 new-dbnew-wal 相关的虚拟设备,它们用于 ceph-bluestore-tool。它应始终显示 0 B
    • REAL :显示实际使用量(以字节为单位)。
    • FILES :显示文件计数。

    MAXIMUMS :此表从用量列表中捕获每个条目的最大值。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.