通用方案:盘古开启数据Rebalance功能

通用方案:盘古开启数据Rebalance功能

更新时间:2020-06-09 10:21:29

1. 概述

本文主要介绍在盘古中手动开启数据Rebalance功能的操作步骤,主要解决盘古机器数据负载不平衡问题。

1.1. 适用范围

  • 专有云V2,盘古

  • 专有云V3,盘古

1.2. 风险说明

在盘古中开启数据Rebalance之后,需要手动停止,建议在执行数据Rebalance操作一段时间后,查看盘古集群机器的磁盘利用率,当盘古集群机器的磁盘利用率接近相等时,手动停止数据Rebalance,否则可能会影响前端的读写操作。

2. 问题描述

盘古会保证数据是均匀存放,当盘古集群扩容新机器时,新加入机器磁盘比较空,旧机器磁盘比较繁忙,就会导致数据倾斜,同时新机器的负载也会较大,或者盘古中设置了黑名单,导致黑名单中的机器无法写入数据,此时建议后台手动开启盘古数据Rebalance来平衡数据。

3. 解决方案

3.1. 环境检查

检查盘古中设置的黑名单

  1. 登录集群AG服务器。
  2. 执行以下命令,检查盘古中黑名单。

    /apsara/deploy/puadmin  upgrade -util -gbcs

    系统显示类似如下,表示盘古中没有设置黑名单。

    GetBlackPlacementChunkservers success, detail:

    如果系统显示有黑名单列表,请确认黑名单合理性,确定是否需要删除黑名单。执行以下下命令,删除盘古中黑名单。

    /apsara/deploy/puadmin upgrade -util -sbcs  " "

检查盘古数据Rebalance是否已经开启

如果当前环境已部署盘古汇聚控制台,请参见Web界面操作。如无该控制台,请参见命令行操作

Web界面操作
  1. 登录盘古汇聚控制台,登录地址如下所示。
    http://[$IP]:8620/
    说明:在专有云V2环境[$IP]为DMSAG的IP地址,在专有云V3环境[$IP]为OPS1的IP。
    系统显示类似如下。
    image.png
  2. 进入集群的Pangu Portal界面,选择数据管理>rebalance,确认当前Rebalance状态为stopped,表示盘古数据Rebalance未开启。
命令行操作
  1. 登录集群AG服务器。

  1. 执行以下命令,检查盘古检查盘古数据Rebalance是否已经开启。

    /apsara/deploy/puadmin rebalance -stat

    系统显示类似如下,表示盘古数据Rebalance没有开启。

    Master Address: nuwa://localcluster/sys/pangu/master
    --
    Error: stat: GetDataRebalanceStatus Fail. ErrorCode:PANGU_MASTER_DATA_REBALANCE_NOT_STARTED

说明:以上两个环境检查通过以后,方可执行后续操作。

3.2. 实施步骤

启动盘古数据Rebalance

Web界面操作

进入集群的Pangu Portal界面,选择数据管理>rebalance,单击启动rebalance

启动后系统显示类似如下。

命令行操作

登录集群AG服务器,以下所有操作命令均在集群AG上执行。

  1. 执行以下命令,重新计算数据分布。

    /apsara/deploy/puadmin rebalance  -expand

    系统显示类似如下,表示重新计算数据分布成功。

    Master Address: nuwa://localcluster/sys/pangu/master
    expansion succeed!
  2. 执行以下命令,启动盘古数据Rebalance。

    /apsara/deploy/puadmin rebalance  -start

    系统显示类似如下,表示盘古数据Rebalance启动成功。

    Master Address: nuwa://localcluster/sys/pangu/master
    Start data rebalance success.

查看盘古数据Rebalance迁移情况并手动停止数据Rebalance

  1. 执行以下命令,查看数据迁移情况。
    /apsara/deploy/puadmin rebalance  -stat
    系统显示类似如下,如图中的Progress 100%,具体以现场实际情况为准。
    Master Address: nuwa://localcluster/sys/pangu/master
    The following status is collected at Thu Apr 19 11:35:37 2018 Total file number 314259, total chunk number 298141 Rebalanced file number 314259, rebalanced chunk number 298141 Progress 100% 1. App : BIGFILE_APPNAME, Total file number 314218, Balanced file number 314218, Total chunk number 296490, Balanced chunk number 296490, Total replica number 898396, Balanced replica number 898396, Progress 100%. 2. App : LOCALFILE_APPNAME, Total file number 41, Balanced file number 41, Total chunk number 1651, Balanced chunk number 1651, Total replica number 4957, Balanced replica number 4957, Progress 100%.
  2. 执行以下命令,查看集群节点的水位。
    df -h
  3. 执行以下命令,停止盘古数据Rebalance。
    说明:Web界面停止盘古数据Rebalance。进入集群的Pangu Portal界面,选择数据管理>rebalance,单击停止rebalance
    /apsara/deploy/puadmin rebalance  -stop

    系统显示类似如下,表示盘古数据Rebalance停止成功。

    Master Address: nuwa://localcluster/sys/pangu/master
    Stop data rebalance success.

Rebalance流控

盘古开启数据Rebalance时,为了防止盘古数据Rebalance时影响前端读写,系统已经设置了默认流量控制。当现场环境带宽比较充足,且前端压力比较小时,我们可以设置pangu_chunkserver的flag(MB/s),适当放大流量控制,加快数据Rebalance。以下操作可在启动盘古数据Rebalance前执行。

Web界面操作
  1. 进入集群的Pangu Portal界面,选择数据管理>replication流控,查看当前流控。
  2. 单击修改,修改replication流控,修改完成后单击确定
  3. 进入集群的Pangu Portal界面,选择数据管理>replication流控,修改replication流控,将其值修改为之前的值,恢复replication默认流控。
命令行操作步骤
  1. 登录集群AG服务器,依次执行以下命令,查看当前流量控制。
    /apsara/deploy/puadmin flag -get pangu_chunkserver_ReplicationMinReadNetThroughput  -c
    /apsara/deploy/puadmin flag -get pangu_chunkserver_ReplicationMaxReadNetThroughput -c /apsara/deploy/puadmin flag -get pangu_chunkserver_ReplicationMinWriteNetThroughput -c /apsara/deploy/puadmin flag -get pangu_chunkserver_ReplicationMaxWriteNetThroughput -c
    说明
    • 默认pangu_chunkserver_ReplicationMinReadNetThroughput为10。

    • 默认pangu_chunkserver_ReplicationMaxReadNetThroughput为30。

    • 默认pangu_chunkserver_ReplicationMinWriteNetThroughput为10。

    • 默认pangu_chunkserver_ReplicationMaxWriteNetThroughput为30。

  2. 依次执行以下命令,修改默认流量控制为300,请根据现场情况设置大小。
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMinReadNetThroughput 300 -c
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMaxReadNetThroughput 300 -c /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMinWriteNetThroughput 300 -c /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMaxWriteNetThroughput 300 -c
  3. 依次执行以下命令,恢复默认流量控制。
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMinReadNetThroughput 10 -c
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMaxReadNetThroughput 30 -c
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMinWriteNetThroughput 10 -c
    /apsara/deploy/puadmin flag -set pangu_chunkserver_ReplicationMaxWriteNetThroughput 30 -c

3.3. 结果验证

登录集群节点,执行以下命令, 查看集群节点的水位,确认水位已均衡。

df -h

4. 回滚方案

盘古数据Rebalance是对数据的优化操作,无需回滚。