# 组建存储集群

组建存储集群,包含三类节点。

  • observer,有数据但不参与选举
  • slave,有数据且参与选举
  • witness,无数据但参与选举

observer节点有数据但不参与选举,witness无数据但参与选举,slave有数据且参与选举。

集群基本运维操作如下。

  • 启动/关闭节点
  • 新增和移除节点至管理后台-Group
  • 分片内新增和移除节点
  • 接流/摘流

# 启动/关闭节点

# 启动节点

observer和slave部署参考服务部署-Bitalostored

初始raft配置很重要,配置错误会导致无法加入集群。

  • raft_cluster.cluster_id,与分片cluster_id保持一致
  • raft_nodehost.node_id,与分片已有节点不同(包括已移除节点)
  • raft_nodehost.init_raft_addrlist,与初始节点值保持一致(即使初始节点已移除)
  • raft_nodehost.init_raft_nodelist,与初始节点值保持一致
  • raft_cluster.is_witness,witness为true,否则为false
  • raft_cluster.is_observer,observer为true,否则为false

slave最初均是observer节点,待完成全量数据同步后,再提升为slave节点,配置同observer(is_observer=true)。

# 关闭节点

关闭方式如下。

  • shutdown命令
  • kill {pid}

该操作平滑关闭进程,完成关闭后,Bitalosdashboard探活该节点失败,管理后台-Group节点背景变为红色,再次启动后恢复。

# 新增和移除节点

# 新增节点至管理后台-Group

管理后台-Group,点击“AddServer”按钮,填入参数如下。

  • 节点所在云或机房
  • 节点类型(observer/witness)
  • 节点地址
  • 分片id

如新增slave,节点类型选择“observer”。

# 分片内新增节点

  • observer,点击“Mount observer”加入到集群(此时会执行全量同步)
  • witness,点击“Mount witness”加入到集群
  • slave,observer节点全量同步完成后,点击“MountNode”,提升为slave节点

# 分片内移除节点

  • observer,点击“UnmountNode”按钮
  • witness,点击“UnmountNode”按钮
  • slave,点击“UnmountNode”按钮

移除后,节点状态变成“false”。

# 管理后台-Group移除节点

如该节点已加入分片,在操作前,须执行上一步“分片内移除节点”操作

分片移除节点,操作如下。

操作完成后,管理后台-Group不再展示该节点,且删除该节点管理数据

以上两步操作没有先后顺序,推荐先关闭节点再点击“删除”。

# 节点摘流/接流

新增节点在接流之前不承载线上流量。

# 接流

  • 勾选Replica复选框
  • 出现“out of sync”,点击“Sync”按钮

# 摘流

  • 取消勾选Replica复选框
  • 出现“out of sync”,点击“Sync”按钮

# Sync功能

  • 点击“Sync”按钮,会将最新的Bitalostored路由信息同步至Bitalosproxy,摘流后Bitalosproxy不再向该节点发送请求,反之则转发。

# 查询状态

  • info命令,基础配置及服务状态信息,包括资源消耗&raft状态等

  • debuginfo命令,存储结构信息

ZUOYEBANG