数据节点

数据节点维护模式

师成师成· 更新于 2026-09-28· 阅读 8 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

维护模式(Maintenance Mode)是 Apache Ozone 中的一项功能,允许你将某个 Datanode 暂时下线以进行维护操作(例如硬件升级、软件更新),而不会触发即时的数据复制。与旨在永久地将 Datanode 及其数据从集群中移除的下线(decommissioning)不同,维护模式是为临时停机而设计的。

处于维护模式期间,Datanode 不会接收新的写入,但如果容器状态健康且在线,仍然可以提供读取服务。该 Datanode 上的现有数据将保持原位,只有当它在维护模式中停留超过可配置的超时时间后,才会触发其数据的复制。这样可以在计划内停机时避免不必要的数据移动,从而减少网络开销和集群负载。

Datanode 在维护期间会经历以下运行状态:

  1. IN_SERVICE:Datanode 完全正常运行,参与数据的写入和读取。
  2. ENTERING_MAINTENANCE:Datanode 正在切换到维护模式,将避免向其写入新数据。
  3. IN_MAINTENANCE:Datanode 处于维护模式,不会向其写入数据。如果该 Datanode 在此状态停留的时间超过配置的维护窗口,其数据将开始复制到其他 Datanode,以确保数据的持久性。

命令行用法

要将 Datanode 置于维护模式,请使用 ozone admin datanode maintenance 命令。你可以为维护期指定一个持续时间;如果未指定,则会使用默认的持续时间(该默认值可配置)。

要查看 Datanode 的当前状态(包括其运行状态),可以执行以下命令:

ozone admin datanode list

要为一个或多个 Datanode 启动维护模式:

ozone admin datanode maintenance [-hV] [-id=<scmServiceId>] [--scm=<scm>] [--end=<hours>] [--force] [<hosts>...]
  • <hosts>:以空格分隔的主机名或 IP 地址列表,用于将这些 Datanode 置于维护模式。
  • --end=<hours>:可选。在指定的小时数后自动结束维护。默认情况下,必须手动结束维护。
  • --force:可选。强制尝试将 Datanode 置于维护模式。

要将 Datanode 退出维护模式并使其恢复为 IN_SERVICE 状态,可以使用 recommission 命令:

ozone admin datanode recommission [-hV] [-id=<scmServiceId>] [--scm=<scm>] [<hosts>...]

配置属性

以下属性通常在 ozone-site.xml 中设置,与维护模式相关:

属性默认值描述
hdds.scm.replication.maintenance.replica.minimum2节点进入维护模式所必须保持可用的容器副本最小数量。如果将节点置于维护模式会使某个容器的可用副本数低于此级别,则该节点将保持在 ENTERING_MAINTENANCE 状态,直到创建了新的副本。
hdds.scm.replication.maintenance.remaining.redundancy1节点进入维护模式所必须保持可用的组内冗余容器数量。如果将节点置于维护模式会使冗余度低于此值,则该节点将保持在 ENTERING_MAINTENANCE 状态,直到创建了新的副本。对于 Ratis 容器,默认值 1 确保至少有两个副本在线,即还可以再丢失 1 个副本而不会导致数据不可用。对于 EC 容器,则至少有 dataNum + 1 个副本在线,即还可以再丢失 1 个副本而不会导致数据不可用。目前仅 EC 容器使用此设置,Ratis 容器使用 hdds.scm.replication.maintenance.replica.minimum。对于 EC,如果节点处于维护模式,那么当部分数据副本离线时,很可能需要执行重建读取。这对客户端是透明的,但会影响读取性能。

指标

以下 SCM 指标与所有被跟踪节点的数据节点退役和维护相关。

  • DecommissioningMaintenanceNodesTotal:该指标报告当前处于退役或维护模式的数据节点总数。
  • RecommissionNodesTotal:该指标报告当前正在重新投入服务(即从退役或维护模式返回 IN_SERVICE 状态)的数据节点总数。
  • PipelinesWaitingToCloseTotal:该指标报告被跟踪节点中存在等待关闭管道的数据节点总数。
  • ContainersUnderReplicatedTotal:该指标报告被跟踪节点中副本数不足的容器总数。
  • ContainersUnClosedTotal:该指标报告被跟踪节点中未完全关闭的容器总数。
  • ContainersSufficientlyReplicatedTotal:该指标报告被跟踪节点中副本数充足的容器总数。

以下 SCM 指标按节点统计数据节点的退役和维护情况。

  • UnderReplicatedDN:特定主机上副本数不足的容器数量
  • PipelinesWaitingToCloseDN:特定主机上等待关闭的管道数量
  • SufficientlyReplicatedDN:特定主机上副本数充足的容器数量
  • UnclosedContainersDN:特定主机上未完全关闭的容器数量
  • StartTimeDN:特定主机开始退役的时间戳

评论

登录后参与评论

正在加载评论…