注意
本文档适用于 Ceph 的开发版本。
放置组概念
当您执行诸如 ceph -w、ceph osd dump 以及其他与放置组相关的命令时,Ceph 可能会返回包含以下某些术语的值
- Peering
使存储放置组 (PG) 的所有 OSD 就该 PG 中所有对象(及其元数据)的状态达成一致的过程。请注意,就状态达成一致并不意味着它们都拥有最新的内容。
- 活跃集(Acting Set)
负责特定放置组的 OSD 的有序列表(或在某个纪元时负责的 OSD 列表)。
- Up 集(Up Set)
根据 CRUSH,在特定纪元负责特定放置组的 OSD 的有序列表。通常这与“活跃集”相同,除非“活跃集”通过 OSD Map 中的
pg_temp被显式覆盖。- 当前间隔(Current Interval) 或 过去间隔(Past Interval)
在其中,特定放置组的“活跃集”和“Up 集”不变的 OSD map 纪元序列。
- 主 OSD(Primary)
“活跃集”的成员(并且按照惯例是第一个成员),负责协调对等(peering),并且是唯一一个接受客户端发起的对放置组中对象的写入操作的 OSD。
- 副本 OSD(Replica)
放置组的“活跃集”中的非主 OSD(并且被主 OSD识别并“激活”)。
- 迷失 OSD(Stray)
不是当前“活跃集”成员的 OSD,但尚未被告知可以删除其特定放置组副本。
- 恢复
确保放置组中所有对象的副本都存在于“活跃集”中的所有 OSD 上。一旦执行了“对等”,主 OSD 就可以开始接受写入操作,并且“恢复”可以在后台进行。
- PG 信息(PG Info)
有关放置组创建纪元、放置组最近写入的版本、“最后开始纪元”、“最后干净纪元”以及“当前间隔”开头的基本元数据。任何关于放置组的 OSD 间通信都包含“PG 信息”,这样任何知道放置组存在(或曾经存在)的 OSD 也具有“最后干净纪元”或“最后开始纪元”的下限。
- PG 日志(PG Log)
对放置组中对象进行的最近更新的列表。请注意,在“活跃集”中的所有 OSD 确认到某个点之后,这些日志可以被截断。
- 缺失集(Missing Set)
每个 OSD 注意更新日志条目,如果它们暗示对对象内容的更新,则将该对象添加到所需更新列表中。此列表称为该
<OSD,PG>的“缺失集”。- Authoritative History(权威历史记录)
一组完整且完全有序的操作,如果执行这些操作,将使 OSD 的放置组副本保持最新。
- 纪元(Epoch)
(单调递增的)OSD map 版本号
- 最后开始纪元(Last Epoch Start)
特定放置组的“活跃集”中的所有节点就“权威历史”达成一致的最后一个纪元。此时,“对等”被认为是成功的。
- up_thru
在主 OSD 成功完成“对等”过程之前,它必须通过让监视器在 osd map 中设置其“up_thru”来通知监视器,它在当前 OSD map“纪元”中处于活动状态。这有助于“对等”忽略先前因一系列故障(例如下面的第二个间隔)而从未完成“对等”的“活跃集”
活跃集 = [A,B]
活跃集 = [A]
活跃集 = [] 紧随其后(例如,同时发生故障,但交错检测)
活跃集 = [B] (B 重启,A 未重启)
- 最后干净纪元(Last Epoch Clean)
特定放置组的“活跃集”中的所有节点完全最新的最后一个“纪元”(包括放置组日志和对象内容)。此时,“恢复”被认为是完成的。