应急预案:专有云环境中磁盘空间不足的排查方法

应急预案:专有云环境中磁盘空间不足的排查方法

更新时间:2020-08-13 19:36:13

1. 概述

本文主要介绍在专有云环境中,磁盘空间不足的排查方法。

1.1. 适用范围

  • 专有云V2企业版,ECS
  • 专有云V3企业版,ECS

1.2. 用户告知

  • 适用平台:x86、ARM
  • 授权级别:L1(一线驻场工程师)
  • 临时或固化方案:临时
  • 操作复杂度:低
  • 预估执行时长:20分钟
  • 业务影响:否
    说明:此方案为排查方案,不影响业务,具体清理视不同产品决定。
  • 风险等级:低

2. 问题描述

磁盘使用率达到100%,导致数据无法写入,从而导致应用不达终态。

3. 解决方案

3.1. 环境检查

一般情况是日志大文件没有进行切割,定位日志大文件,请联系阿里云技术支持咨询对应产品的日志轮转策略。

3.2. 实施步骤

通过lsof、df和du命令排查

  1. 登录异常服务器,执行以下命令,查看磁盘空间使用情况。
    df -h
    系统显示类似如下。
  2. 执行以下命令,查看是否存在已删除未释放的句柄文件。
    lsof | grep -i deleted | sort -k 7 -nr |head -30
    系统显示类似如下。

    说明:上图中,第7列为空间占用大小,单位为Bytes。
  3. 根据df命令查询的结果,进入磁盘使用率高的目录下,使用du命令查看目录下磁盘使用的具体情况。
    du -hx --max-depth=1 | grep G |sort -rn
    系统显示类似如下。
  4. 执行以下操作,查看Crond服务状态。
    • 5U、6U系统执行以下命令。
      service crond status
      系统显示类似如下。
    • 7U系统执行以下命令。
      systemctl status crond
      系统显示类似如下。

使用SupportTools工具排查

磁盘使用情况查询方法
  1. SupportTools_v1.2.2.tar.gz文件上传至待排查磁盘的机器中,建议存放到空间相对空闲的挂载目录下。
  2. 进入上传文件所在的目录,执行以下命令,解压SupportTools_v1.2.2.tar.gz文件。
    tar -xf SupportTools_v1.2.2.tar.gz
  3. 执行以下命令,进入指定目录。
    cd SupportTools
  4. 执行以下命令,通过SupportTools工具排查磁盘使用情况。
    cd misc/ ; /home/tops/bin/python disk_usage_query_tool_v1.2.py -d [$Path]
    说明:[$Path]为需要排查的目录。
    系统显示类似如下。
Docker宿主机vfsdir和overlay目录的排查方法
  1. 解压该工具包后,执行以下命令,进入指定目录。
    cd SupportTools/misc
  2. 执行以下命令,获取帮助。
    /home/tops/bin/python findDockerHostLargeLogFiles.py -h
  3. 查询overlay使用-o参数,查询vfsdir使用-v参数,本文以-v参数为例,命令如下。
    说明:执行命令时,需要输入查询路径对应的编号,然后输入两次y,最后得出查询结果。
    /home/tops/bin/python findDockerHostLargeLogFiles.py -v
    系统显示类似如下。

3.3. 结果验证

此方案为排查步骤,具体日志文件占用情况和清理方法视不同产品而决定。

4. 回滚方案

排查步骤,无需回滚。