OM HA 配置
Ozone Manager (OM) 高可用性确保负责键空间管理的元数据管理节点不存在单点故障。在 HA 模式下,内部状态通过 RAFT(基于 Apache Ratis)在多个 Ozone Manager 实例之间进行复制。
info
有关 OM HA 的概念性信息,请参阅 OM HA 文档。
配置
一个 Ozone 配置文件(ozone-site.xml)可以支持多个 Ozone HA 集群。为了在可用的 HA 集群之间进行选择,每个集群都需要一个逻辑名称,该名称可以解析为各 Ozone Manager 的 IP 地址(和域名)。
这个逻辑名称称为 serviceId,可以在 ozone-site.xml 中进行配置。
<property>
<name>ozone.om.service.ids</name>
<value>cluster1</value>
</property>对于每个已定义的 serviceId,都需要为其中的每台服务器定义一个逻辑配置名称。
<property>
<name>ozone.om.nodes.cluster1</name>
<value>om1,om2,om3</value>
</property>定义的前缀可用于指定每个 OM 服务的地址:
<property>
<name>ozone.om.address.cluster1.om1</name>
<value>host1</value>
</property>
<property>
<name>ozone.om.address.cluster1.om2</name>
<value>host2</value>
</property>
<property>
<name>ozone.om.address.cluster1.om3</name>
<value>host3</value>
</property>::: warning
集群搭建完成后,不支持再更新 OM 服务 ID,这会导致 OM 启动过程中断。此值在初次部署后应视为不可更改。
定义好的 serviceId 可在客户端接口中代替单个 OM 主机使用。
例如使用 o3fs:// 时:
:::
hdfs dfs -ls o3fs://bucket.volume.cluster1/prefix/或者使用 ofs://:
hdfs dfs -ls ofs://cluster1/volume/bucket/prefix/OM 引导启动
要将非高可用的 OM 转换为高可用模式,或向现有的高可用 OM 环中添加新的 OM 节点,需要对新的 OM 节点执行引导启动。
在引导启动新的 OM 节点之前,必须先更新所有现有 OM 的磁盘配置文件(ozone-site.xml),在其中加入新 OM 的配置信息,例如 nodeId、地址、端口等。注意,现有 OM 无需重启,它们会在收到来自正在执行引导启动的节点的请求时,自动从磁盘重新加载配置。
要引导启动一个 OM,需要执行以下命令:
ozone om [global options (optional)] --bootstrapbootstrap 命令首先会验证所有 OM 是否都已更新配置文件,若不是则命令将失败。可以使用 force 选项跳过此检查。当某个现有 OM 已宕机或无响应时,force 选项允许继续执行 bootstrap。
ozone om [global options (optional)] --bootstrap --force请注意,如果 OM 进程没有更新配置,在引导(bootstrap)过程中使用 force 选项可能会导致 OM 进程崩溃。
OM 领导者转移
ozone admin om transfer 命令允许你手动将 Ozone Manager(OM)Raft 组的领导权转移给指定的 OM 节点,或随机选择的一个跟随者。
用法
ozone admin om transfer -id <OM_SERVICE_ID> -n <NEW_LEADER_ID>
ozone admin om transfer -id <OM_SERVICE_ID> -r-id, --service-id:指定 Ozone Manager 服务 ID。-n, --newLeaderId, --new-leader-id:要将领导权转移至的 OM 节点 ID(例如om1)。-r, --random:随机选择一个跟随者来转移领导权。
示例
在服务 ID 为 cluster1 的集群中,将领导权转移至 om2:
ozone admin om transfer -id cluster1 -n om2将领导权转移给任意跟随者:
ozone admin om transfer -id cluster1 -rOM 服务角色列表
ozone admin om roles 命令会列出所有 Ozone Manager 及其各自的 Raft 服务器角色(leader、follower 或 candidate)。
用法
ozone admin om roles [-id <OM_SERVICE_ID>] [--json | --table]-id, --service-id:(可选)指定 Ozone Manager 服务 ID。--json:(可选)以 JSON 格式格式化输出。--table:(可选)以表格格式格式化输出。
示例
列出 cluster1 的 OM 角色:
ozone admin om roles -id cluster1示例输出:
om1 : LEADER (host1)
om2 : FOLLOWER (host2)
om3 : FOLLOWER (host3)以表格形式列出 OM 角色:
ozone admin om roles -id cluster1 --table示例表格输出:
Ozone Manager Roles
-------------------
Host Name | Node ID | Role
-------------------
host1 | om1 | LEADER
host2 | om2 | FOLLOWER
host3 | om3 | FOLLOWER
-------------------参考资料
- Ozone Manager 高可用性 - 概念概述
- SCM 高可用性配置 - Storage Container Manager 高可用性配置
评论
登录后参与评论
KnowForge