注意

本文档适用于 Ceph 开发版本。

CephContext

一个 CephContext 代表 Ceph 集群的单个视图。它包含配置、性能计数器(PerfCounters)和心跳映射。您可以在 src/common/ceph_context.h 中找到有关 CephContext 的更多信息。

通常,您的应用程序中只有一个 CephContext,称为 g_ceph_context。然而,在库代码中,库用户可能会初始化多个 CephContext。例如,如果调用 rados_create 超过一次,就会发生这种情况。

发送日志消息需要 ceph 上下文。为什么?嗯,如果没有 CephContext,我们就不知道哪些日志消息被禁用,哪些被启用。dout 宏隐式引用 g_ceph_context,因此它不能在库代码中使用。在守护进程中使用 dout 和 derr 是可以的,但在库代码中,您必须使用 ldout 和 lderr,并传递您自己的 CephContext 对象。编译器将强制执行此限制。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.