shiva-tabletserver剔除磁盘/增加新盘操作

  其他常见问题
内容纲要

概要描述

硬件损坏是常态,当在 ArgoDB 集群中出现磁盘损坏需要剔除坏盘、添加新盘时,可以参考本文操作。

  1. 检查集群中是否存在单副本的表,如果存在,需要检查该表的副本是否存在于缩容的磁盘上
  2. 一次只能处理一个磁盘,等待完成后在处理第二个磁盘
  3. 动态缩容(不停服)是从shiva2.2 版本开始支持的,之前的版本不支持

详细说明

磁盘操作大致涉及到以下几个步骤:

  1. 停止 tablet-server 角色
  2. shiva api 方式剔除坏盘
  3. 在 Manager 页面修改配置,将坏盘从配置中删除,并配置服务
  4. 在 Manager 页面修改配置,在配置中添加新磁盘,并配置服务
  5. 启动 tablet-server 角色
  6. 触发副本恢复

不停服的情况下,剔除坏盘时,只需要操作2、3、6,后续在可以重启的时候,再重启一下 tablet-server。

停服的情况下,如果只是剔除坏盘时,只需要操作1、3、5即可;
停服的情况下,剔除坏盘,并添加新的磁盘时,只需要操作1、3、4、5即可;

操作步骤

1、在不重启Tabletserver时进行磁盘的动态缩容

1、通过 api 查看server id 和磁盘 id

curl -XGET "http://172.22.37.173:4567/server?pretty"
通过 server 找到server id,以及通过数据目录信息,找到 store id,比如这里是找到 gts-argo52x-171 节点的server id 为 3c97b53710d744ce808d7b6813707879;
/shiva-tabletserver-tddms1/data 目录对应的 store id 为 0;

file

1、然后通过 shiva restful api 禁用磁盘

curl -X DELETE "http://《ip》:《port》/server/《server》/store/《store_id》?pretty&server_id="
  • ip 和 port是 WebUI 的地址和端口号
  • store_id 是磁盘的标识
  • server 是 tabletserver 的主机名和port
  • server_id 是 tabletserver 的唯一标识

具体例子:

curl  -X DELETE "http://172.22.37.173:4567/server/gts-argo52x-171:8002/store/0?pretty&server_id=3c97b53710d744ce808d7b6813707879"

2、触发副本恢复。curl -XPOST "《ip》:《port》/cluster/gc"

  • ip 和 port 是 WebUI 的地址和端口号
curl -XPOST "http://172.22.37.173:4567/cluster/gc?pretty"

file

3、通过 warning api 查看副本迁移情况,等待under replica降到0

curl -XGET "http://172.22.37.173:4567/warning?pretty"

file

4、将坏盘从manager的配置路径中删除,配置服务

file

file

file

2、通过重启Tabletserver完成磁盘的缩容

1、将需要剔除的磁盘从manager的配置路径中删除

2、点击 "配置服务"

3、重启tablet server以重新加载配置

4、通过webui等待tabletserver处于active状态

file

5、触发副本恢复
命令参考:curl -XPOST "《ip》:《port》/cluster/gc"

  • ip是WebUI的地址和端口号
  • port是WebUI的端口号

6、查看Webui副本迁移情况,等待under replica降到0。如果长时间等待后,under replica 依然无法降到0,请联系研发协助解决。

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。