• 首页 > 
  • 通用方案:专有云V3.3之前环境如何配置盘古预留空间

通用方案:专有云V3.3之前环境如何配置盘古预留空间

KB: 110370

 · 

更新时间:2020-12-31 15:12

1. 概述

本文主要介绍在专有云V3.3之前环境中,如何配置盘古预留空间。

方案总览

类别 内容
国产化
风险等级(方案执行的影响)
操作方式 灰屏
操作复杂度
预估执行时长 1小时
客户业务的影响
可监控性 不支持
有效性(重启、重拉、补丁、升级、扩容等配置是否丢失) 固化
数据修订(变更是否涉及增删改操作)
执行灰度策略 请向产品侧咨询,明确灰度策略
首次发布时间 N/A
预计完成时间 N/A

1.1. 适用范围

  • 专有云版本:V3.*
  • 产品,OSS、NAS、OTS(包括天基集群,混布Inner-OTS),其它产品线无需操作。
    说明:适用于专有云V3.0.0~V3.3.0环境,包含V3.0.0,不包含V3.3.0环境。

1.2. 风险说明

安全级别 说明 本文所属级别
L0 包含高危操作,必须研发稳定性审批。  
L1 包含危险操作,需要研发审批。
L2 一般操作,风险低,无需研发审批。  
L3 查询或无风险操作,无需研发审批  

经确认,将预留10%的磁盘空间。如果集群空间不足,直接预留磁盘空间,可能会导致集群不可写入。在执行本方案操作前,请确保集群的使用量在80%以下,如果不满足,请终止操作。

说明:集群使用率的计算请参见补充说明

2. 问题描述

盘古集群如果被写满,将需要进行停服操作。对OSS和NAS等产品,需要额外的空间才能进行删除操作,因此需要先进行扩容操作,再进行删除操作,此过程恢复服务的时间很长。为了避免这种情况,需要修改pangu的配置,保留一部分空间,避免盘古被写满,出现无法写入的情况。此时可以通过修改pangu_chunkserver和pangu_master的一个Flag,让数据可以继续写入,从而优化集群被写满时的故障恢复速度。

3. 解决方案

3.1. 环境检查

确认Flag的取值

  1. 登录集群AG服务器,执行以下命令,获取磁盘大小。

    说明:如果集群中磁盘的规格不同,则以最小的磁盘为准。

    /apsara/deploy/puadmin lscs |grep -v SSDCache|grep TotalSize: |awk '{print $6}' |tr ":" ' ' |awk '{print $2}' |sort | uniq
  2. 要修改的值为上一步返回值的10%,且取整数。比如返回值为1863,则取180即可。如果返回值有多个,则在执行以上命令时,请删除uniq去重命令,统计每个数值的个数,然后联系阿里云技术支持决定取值。

检查盘古服务

如果项目的部署中有Pangu Portal,请参见Web界面操作,如无Pangu Portal,请参见命令行操作

Web界面操作
  1. 通过以下地址登录盘古汇聚控制台,选择相应集群查看集群大盘节点信息的Master信息。
    http://[$IP]:8620/
    说明:[$IP]为OPS1的IP。
    image.png
  2. 在产品Portal页面,单击配置变更输入相关Flag,单击提交,进行查询。
命令行操作
  1. 登录集群AG服务器,确认/apsara/deploy/puadmin文件存在。
  2. 执行以下命令,获取Primary和Secondary角色信息。
    puadmin gems
    系统显示类似如下,盘古服务正常。
  3. 执行以下命令,查看并记录Flag配置,以备后续回滚方案使用。
    puadmin flag -get pangu_chunkserver_ChooseDiskFreeSpaceHardLimit -c

检查集群终态

持久化配置需重新Rolling,请确认修改配置前该集群已达终态,避免因其他服务角色未到终态导致意外情况。

获取集群pangu服务使用的模板

在集群配置页面,根据集群配置,找到对应集群pangu服务使用的模板。

 image.png

3.2. 实施步骤

以下操作以OSS集群为例。

下载模板

  1. 登录OPS1服务器,如何登录OPS服务器请参见专有云如何登录OPS服务器
  2. 执行以下命令,进入指定目录。
    cd /cloud/tool/tianji/
  3. 执行以下命令,导出服务模板。
    ./tianji_clt service_template -g -t [$Template_Name] --dir [$Project]-[$Service_Name]_template -s [$Service_Name] --config /cloud/data/bootstrap_controller/BootstrapController#/bootstrap_controller/tianji_dest.conf

    说明

    • [$Template_Name]为模板名称。
    • [$Service_Name]为服务名,如pangu。
    • [$Project]为产品名,如ECS、ODPS。
    系统显示类似如下。
  4. 执行如下命令,备份导出的模板。
    cp -r oss-pangu_template /home/admin/oss-pangu_template_bak20181022

编辑模板

  1. 执行以下命令,进入指定目录。
    cd oss-pangu_template
  2. 执行以下命令,进入指定目录。
    cd user/pangu_chunkserver

    说明:若提示没有pangu_chunkserver目录,则在user目录下,执行mkdir pangu_chunkserver命令,创建此目录。

  3. 创建pangu_chunkserver_flag.json文件,添加需要修改的Flag及对应值,如下所示。
    {
    "pangu_chunkserver_ChooseDiskFreeSpaceHardLimit": "200"
    }

    说明

    • JSON格式,除最后一行无逗号外,其他行必须以逗号结尾。
    • 此处的Flag数值为举例使用,现场根据实际环境设置。
  4. 执行以下命令,进入指定目录。
    cd user/pangu_master

    说明:若提示没有pangu_master目录,则在user目录下,执行mkdir pangu_chunkserver命令,创建此目录。

  5. 创建pangu_master_flag.json文件,添加需要修改的Flag及对应值,如下所示。
    {
         "pangu_master_FreeDiskLimit": "230"
    }

    说明

    • JSON格式,除最后一行无逗号外,其他行必须以逗号结尾。
    • 此处的Flag数值为举例使用,现场根据实际环境设置。

上传模板

  1. 执行以下命令,进入指定目录。
    cd /cloud/tool/tianji
  1. 执行以下命令,提交更新服务模板。
    ./tianji_clt service_template -u -m "[$Remarks]" -t [$Template_Name] --dir [$Project]-[$Service_Name]_template -s [$Service_Name] --config /cloud/data/bootstrap_controller/BootstrapController#/bootstrap_controller/tianji_dest.conf

    说明:[$Remarks]为备注信息。

    系统显示类似如下。

批量引用模板

模板修改完成后,通过以下操作将模板应用到集群上。

  1. 登录天基控制台,选择运维>服务运维,模糊查询pangu,在搜索结果中单击右侧的管理
  2. 选择服务模板,模糊查询TMPL-PANGU-OSS-0.16-HYBRID,在搜索结果中单击右侧的更多,在下拉菜单中选择批量使用模板
  3. 在批量应用模板升级页面,选择服务实例,单击确定
  4. 通过预览功能,确认该模板为前面步骤所修改的内容。
    • 查看pangu_chunkserver_flag.json文件。
    • 查看pangu_master_flag.json文件。
    • 配置详情页面,查看置对比。

      注意:非上述图中所示,请联系阿里云技术支持进行确认。
  5. 弹出操作确认提示框,输入提示信息后,单击确认升级
  6. 选择任务>运行任务,查看Rolling任务状态,等待Rolling完毕。

3.3. 结果验证

  1. 登录天基控制台,Rolling成功后,选择service>pangu>user>pangu_chunkserver>pangu_chunkserver_flag.json,确认集群配置文件中已生效。
    image.png
  2. Rolling成功后,选择service>pangu>user>pangu_master>pangu_master_flag.json,确认集群配置文件中已生效。
  3. 登录集群AG服务器,依次执行以下命令,检查Flag配置。
    puadmin flag -get pangu_chunkserver_ChooseDiskFreeSpaceHardLimit -c
    puadmin flag -get pangu_master_FreeDiskLimit -m
    系统显示类似如下,本文截图中Flag的值仅为示例,具体请以实际计算的值为准。
    image.png

    如果项目的部署中有Pangu Portal在产品Portal页面,单击配置变更输入相关Flag,单击提交,进行查询。
    image.png

4. 回滚方案

  1. 参见实施步骤 ,还原之前修改的Flag及对应值,并提交Rolling
  2. 如果采取删除模板配置方式回滚,在Rolling成功后,需在集群AG上执行以下命令,使用set参数手动设置Flag值。
    • pangu_chunkserver设置
      1. 执行以下命令,设置Flag的值。
        /apsara/deploy/puadmin flag -set pangu_chunkserver_ChooseDiskFreeSpaceHardLimit  10  -c
      2. 设置后执行以下命令,重启一台ChunkServer节点。
         killall chunkserver
      3. 使用get参数查询Flag值,确认回滚成功。
        /apsara/deploy/puadmin flag -get pangu_chunkserver_ChooseDiskFreeSpaceHardLimit  -c
    • pangu_master设置
      1. 执行以下命令,设置Flag的值。
        /apsara/deploy/puadmin flag -set pangu_master_FreeDiskLimit  15  -m 
      2. 设置后执行以下命令,重启一台pangu_master节点。
        注意:重启pangu_master Secondary节点需要阿里云技术支持进行确认。
         killall pangu_master
      3. 使用get参数查询Flag值,确认回滚成功。
        /apsara/deploy/puadmin flag -get pangu_master_FreeDiskLimit  15  -m 

5. 补充说明

集群使用量的计算方法如下:

登录集群AG服务器,执行以下命令,获取磁盘大小。

/apsara/deploy/puadmin lscs |grep -v SSDCache|grep TotalSize: |awk '{print $6}' |tr ":" ' ' |awk '{print $2}' |sort | uniq

说明:

  • 如果集群中磁盘的规格不同,则以最小的磁盘为准。
  • 需要修改的值为返回值的10%,且取整数。比如返回值为1863,则取180即可。如果返回值有多个,则在执行以上命令时,请删除去重命令uniq,统计每个数值的个数,然后联系阿里云技术支持决定取值。

例如:

  • pangu_chunkserver端空间预留的Flag:pangu_chunkserver_ChooseDiskFreeSpaceHardLimit调整为180G。
  • pangu_master端空间预留的Flag:pangu_master_FreeDiskLimit调整为180+50=230G。

如果返回值有多个请删除uniq去重参数统计每种数值的个数,请联系阿里云技术支持咨询取值。

注意:pangu_master端预留的空间要比pangu_chunkserver端预留的空间大50G,如不清楚,请联系阿里云技术执行进行确认。