注意
本文档适用于 Ceph 的开发版本。
MDS 状态
元数据服务器 (MDS) 在 CephFS 的正常运行期间会经历几种状态。例如,某些状态表示 MDS 正在从上一个 MDS 实例的故障转移中恢复。在这里,我们将记录所有这些状态,并附带状态图以可视化转换。
状态描述
常见状态
up:active
这是 MDS 的正常运行状态。它表示 MDS 及其在文件系统中的级别可用。
up:standby
MDS 可用于接管失败的级别(另请参阅 术语)。一旦可用,监视器会自动将处于此状态的 MDS 分配给失败的级别。
up:standby_replay
MDS 正在跟踪另一个 up:active MDS 的日志。如果活动 MDS 发生故障,拥有处于重放模式的备用 MDS 是可取的,因为 MDS 正在重放实时日志并将更快地接管。备用重放 MDS 的缺点是它们不能用于接管任何其他发生故障的 MDS,只能接管它们所跟踪的 MDS。
不太常见或过渡状态
up:boot
此状态在启动期间广播给 Ceph 监视器。此状态永远不可见,因为监视器会立即将 MDS 分配给可用级别或命令 MDS 作为备用运行。此处记录此状态是为了完整性。
up:creating
MDS 正在通过构建一些按级别元数据(例如日志)并进入 MDS 集群来创建新级别(可能是级别 0)。
up:starting
MDS 正在重新启动已停止的级别。它打开相关的按级别元数据并进入 MDS 集群。
up:stopping
当级别停止时,监视器命令活动 MDS 进入 up:stopping 状态。在此状态下,MDS 不接受新的客户端连接,将所有子树迁移到文件系统中的其他级别,刷新其元数据日志,如果级别是最后一个(0),则逐出所有客户端并关闭(另请参阅 CephFS 管理命令)。
up:replay
MDS 接管失败的级别。此状态表示 MDS 正在恢复其日志和其他元数据。
up:resolve
如果 Ceph 文件系统具有多个级别(包括此级别),即它不是单个活动 MDS 集群,则 MDS 从 up:replay 进入此状态。MDS 正在解决任何未提交的 MDS 间操作。文件系统中的所有级别必须处于此状态或更晚才能取得进展,即不能有级别失败/损坏或 up:replay。
up:reconnect
MDS 从 up:replay 或 up:resolve 进入此状态。此状态旨在请求客户端重新连接。任何与此级别有会话的客户端都必须在此期间重新连接,可通过 mds_reconnect_timeout 进行配置。
up:rejoin
MDS 从 up:reconnect 进入此状态。在此状态下,MDS 正在重新加入 MDS 集群缓存。特别是,所有元数据上的 MDS 间锁都重新建立。
如果没有要重放的已知客户端请求,MDS 会直接从该状态变为 up:active。
up:clientreplay
MDS 可能会从 up:rejoin 进入此状态。MDS 正在重放已回复但尚未持久(未记录到日志中)的任何客户端请求。客户端在 up:reconnect 期间重新发送这些请求,并且请求再次重放。MDS 在完成重放后进入 up:active。
失败状态
down:failed
没有 MDS 实际持有此状态。相反,它应用于文件系统中的级别。例如
$ ceph fs dump
...
max_mds 1
in 0
up {}
failed 0
...
级别 0 是失败集的一部分,正在等待备用 MDS 接管。如果此状态持续存在,则表示找不到合适的 MDS 守护程序来分配给此级别。这可能是由于备用守护程序不足,或者所有备用守护程序具有不兼容的 compat(另请参阅 升级 MDS 集群)。
down:damaged
没有 MDS 实际持有此状态。相反,它应用于文件系统中的级别。例如
$ ceph fs dump
...
max_mds 1
in 0
up {}
failed
damaged 0
...
级别 0 已损坏(另请参阅 灾难恢复)并放入 damaged 集。作为级别 0 运行的 MDS 发现了无法自动恢复的元数据损坏。需要操作员干预。
down:stopped
没有 MDS 实际持有此状态。相反,它应用于文件系统中的级别。例如
$ ceph fs dump
...
max_mds 1
in 0
up {}
failed
damaged
stopped 1
...
通过减少 max_mds 来停止级别(另请参阅 配置多个活动 MDS 守护程序)。
状态图
此状态图显示了 MDS/级别的可能状态转换。图例如下
颜色
绿色:MDS 处于活动状态。
橙色:MDS 处于尝试变为活动的过渡状态。
红色:MDS 指示导致级别标记为失败的状态。
紫色:MDS 和级别正在停止。
黑色:MDS 指示导致级别标记为损坏的状态。
形状
圆形:MDS 持有此状态。
六边形:没有 MDS 持有此状态(它应用于级别)。
线条
双线形状表示级别“在”。