仅限 AOS - 当控制器虚拟机 (CVM) 上的主分区或主 Nutanix 目录已满时该怎么办

仅限 AOS - 当控制器虚拟机 (CVM) 上的主分区或主 Nutanix 目录已满时该怎么办

仅限 AOS - 当控制器虚拟机 (CVM) 上的主分区或主 Nutanix 目录已满时该怎么办

这是机器翻译的文章,请单击此处查看原始英文版本。

描述

重要说明:

  • 如果 /home 分区超出Prism Central VM (PCVM)上的限制,请勿使用此 KB 或清理脚本。有关 PCVM 问题,请参阅KB 5228
  • nutanix用户身份登录 CVM
  • 不要将 Nutanix CVM(控制器 VM)视为普通 Linux 机器。
  • 除非另有说明,否则请勿在任何情况下使用rm -rf 。这将导致数据丢失的情况。
  • 如果您正在运行 LCM-2.6 或 LCM-2.6.0.1,LCM 日志收集会填满 /home 目录,请参阅KB 14671寻找解决方法。
  • 如果在运行 NCC 4.0.0 的集群上收到 /home 分区使用率高警报,也请检查KB 10530
  • 您可以通过Nutanix Insights 支持门户上的发现查看受此警报影响的特定集群
  • 如果您有任何疑问,请联系Nutanix 支持

在两种情况下可能会报告 CVM /home 分区或 /home/nutanix 目录已满:

  • NCC 健康检查 disk_usage_check 报告 /home 分区使用率高于阈值(默认情况下为 75%)。
  • 升级前检查 test_nutanix_partition_space 检查所有节点在 /home/nutanix 目录中是否至少有 5.6 GB 的空间。

Prism 中的test_nutanix_partition_space升级前检查生成了以下错误消息:

控制器虚拟机 [ip] 上的 /home/nutanix 目录空间不足。可用空间 = x GB:预期空间 = x GB

无法计算所需的最小空间

无法获取 cvm [ip] 的磁盘使用情况,很可能是因为无法 ssh 进入 cvm

控制器虚拟机 [ip] 上的 df 输出意外。请参阅 preupgrade.out 了解更多信息

Nutanix 在每个 CVM 的 SSD 层上为其文件和目录预留空间。这些文件和目录位于您登录 CVM 时看到的 /home 文件夹中。/home 文件夹的大小上限为 40 GB,因此 SSD 上的大部分空间可用于用户数据。

由于/home分区的大小有限,可用空间可能会不足,并触发 Prism 警报、NCC 健康检查失败或警告或升级前检查失败。这些防护措施旨在防止/home完全填满,因为这会导致 Stargate 等数据处理服务无响应。多个 CVM 的/home分区 100% 填满的集群通常会导致用户虚拟机停机。

清理 CVM 上未使用的二进制文件和旧日志时,请务必注意,与给定节点关联的每个驱动器上的所有用户数据分区也都安装在 /home 内。这就是为什么我们强烈建议不要使用未记录的命令(如rm -rf /home),因为这也会擦除安装在此路径内的用户数据目录。本文的目的是指导您识别导致 CVM 可用空间不足的文件,并仅删除可以安全删除的文件。

解决方案

注意:最新版本的 AOS 包含旨在优化 /home 空间利用率的增强功能和错误修复。为避免后续出现潜在问题,务必确保您的 AOS 定期更新。

一般指导

  • 检查/home中的空间使用情况。为了适应潜在的 AOS 升级,使用率应低于 70%。使用df -h命令验证/home中的可用空间量。在下面的示例中,CVM xxx12 /home 的使用率为 81%。
nutanix@cvm$ allssh “df -h /home”
================== xxx11 =================
/dev/md2 40G 22G 18G 55% /主页
================== xxx12 =================
/dev/md2 40G 32G 7.4G 81% /主页
================== xxx13 =================
/dev/md2 40G 24G 16G 61% /主页

要进一步按降序细分使用情况,请使用du -h命令和 -d 标志来获取所需的目录级别数。例如,下面的-d 2表示从/home/nutanix/data 中查找两个目录级别,此外,添加head -n 15将显示前 15 个目录,然后可以将其与其他 CVM 进行比较,以查看高使用率来自何处:

nutanix@CVM:~$ allssh "du -h -d 2 -x /home/nutanix/data |sort -h -r |head -n 15"
================== xx.xx.xx.11 =================
17G /主页/nutanix/数据
9.4G /主页/nutanix/数据/日志
4.6G /home/nutanix/data/installer/el7.*
4.6G /主页/nutanix/数据/安装程序
2.5G /主页/nutanix/数据/日志/sysstats
512M /主页/nutanix/数据/ncc/安装程序
================== xx.xx.xx.12 =================
18G /主页/nutanix/数据
9.5G /主页/nutanix/数据/日志
4.6G /home/nutanix/data/installer/el7.*
4.6G /主页/nutanix/数据/安装程序
3.0G /主页/nutanix/数据/日志/sysstats
610M /主页/nutanix/数据/logbay/taskdata

  • 可以使用 logbay 命令(NCC 4.0.0 及以上版本, Nutanix KB 6691 )收集 CVM /home 分区信息。
nutanix@cvm$ logbay collect -t 磁盘使用情况信息
  • 清理/home目录下不需要的文件。

    如果您有任何未完成的案件且尚未进行根本原因分析,请与案件所有者核实这些日志文件是否仍然需要或可以丢弃。

    警告:在应用任何解决方法之前,请确保将知识库 (KB) 文章顶部提到的重要说明保留在手边

方法 1:使用已批准的脚本

下载并运行KB-1540_clean_v12.sh以清除批准目录中的文件。

注意:此脚本适合在 Prism Central VM 上使用。

  1. 从任意 CVM 运行以下命令下载KB-1540_clean_v12.sh
    (MD5:967eb7f5de91bb684f730eb4bb45a16d)
nutanix@cvm:~$ cd ~/tmp
nutanix@cvm:~/tmp$ wget -O KB-1540_clean_v12.sh http://download.nutanix.com/kbattachments/1540/KB-1540_clean_v12.sh
nutanix@cvm:~/tmp$ md5sum KB-1540_clean_v12.sh
967eb7f5de91bb684f730eb4bb45a16d KB-1540_clean_v12.s
  1. 将脚本部署到本地一台云服务器或者集群所有云服务器:
nutanix@cvm:~/tmp$ sh KB-1540_clean_v12.sh

选择要部署的包
1:仅将工具部署到本地 CVM
2:将工具部署到集群内所有CVM
选择(取消=“c”):<==== 1 或 2
  1. 执行脚本以从批准的目录中清除文件。
  • 帮助
nutanix@cvm:~/tmp$ ./nutanix_home_clean.py --help [--no_color]
  • 交互模式
nutanix@cvm:~/tmp$. /nutanix_home_clean.py[--no_color]
  • 非交互模式
nutanix@cvm:~/tmp$ ./nutanix_home_clean.py <命令> <选项> [--no_color]

注意:如果脚本的输出或其颜色看起来不正确,请尝试在运行脚本之前设置环境变量,或使用“--no_color”选项:

nutanix@cvm:~/tmp$ TERM=xterm


交互模式

用户添加的图片

主菜单
所有计划 切换展示计划(全部/相关)
重新可以 重新扫描用法并更新表
列出全部 列出所有目标文件/目录
全部运行 运行或试运行所有计划
全部导出 将所有目标文件/目录导出为 CSV
##: 计划 进入计划项目菜单
计划项目菜单
重新可以 重新扫描并更新表
手术 改变操作(移除/遮蔽/等等)
列表 列出目标文件/目录
运行 试运行此计划
跑步 运行此计划
出口 将目标文件/目录导出到 CSV

非交互模式

用户添加的图片

命令
$ ./nutanix_home_clean.py --scan 扫描并显示用法。
$./nutanix_home_clean.py--列表
$ ./nutanix_home_clean.py --list=<##>
列出所有计划或特定计划的目标文件-##。
$ ./nutanix_home_clean.py --dryrun
$ ./nutanix_home_clean.py --dryrun=<##>
试运行所有计划或特定计划-##。
$./nutanix_home_clean.py--运行
$ ./nutanix_home_clean.py --run=<##>
运行所有计划或特定计划-##。
附加选项
--operation=<操作> 选择操作(移除、庇护)
--sheletedir=<路径> 设置避难地点。
- 是的 用于跳过免责声明和确认。

如果某个项目在“操作”列下被列为“指令”,则您可以通过运行该项目来查看指令。

例如:

 ┌────────────────────────────────────────────────────────┬────────────┬────────┐
│ 清洁计划:关注事项 │ 操作 │ 使用方法 │
├────────────────────────────────────────────────────────┼────────────┼────────┤
│ 5:日志包(logbay)│删除 │ 2.25G│
│10:已下载安装程序│说明│ 824.00M│
│59:可能手动创建的文件│指令│ 3.69G│
├──────────────────────────────────────────────────────────┴────────────┼────────┤
│ 总计 │ 6.74G│
╞═══════════════════════════════════════ ══════════════════════════════╧════════╡
│CVM xxxx │
│ /home 使用量 = 30.99G (80%) >> 建议清理 │
└──────────────────────────────────────────────────────────────────────────────┘

项目 10 和 59 被列为“指令”。要查看项目 10 的指令,请在主菜单上输入“10”,然后在下一个屏幕上输入“R”来运行它。示例输出如下:

 ┌────────────────────────────────────────────────────────┬────────────┬────────┐ │ 清理计划 10 │ 操作 │ 使用 │ │ ═────────────────────────────────────────────────────┼────────────┼────────┤ │10:已下载的安装程序 │ 说明 │ 824.00M│ └────────────────────────────────────────────────┴──────────┴────────┘ 计划 10 菜单(退出、返回、帮助、重新扫描、操作、列表、试运行、运行、导出):R 计划 10 的运行操作:“说明” 计划 10 需要手动操作 --说明 - 这些下载的安装程序可以从 Prism 上的“升级软件”中删除。请在 KB-1540 (http://portal.nutanix.com/kb/1540) 上找到带有“/home/nutanix/software_downloads/”的部分。Prism 或 ncli 无法列出较旧的安装程序文件。如需帮助,请联系 Nutanix 支持。 ┌────────────────────────────────────────────────────────┬────────────┬────────┐ │ 清洁计划 10 │ 操作 │ 使用 │ │ ═────────────────────────────────────────────────────┼────────────┼────────┤ │10:下载安装程序 │ 说明 │ 824.00M│ └──────────────────────────────────────────────────┴────────────┴────────┘

对项目 59 重复上述操作,查看项目 59 的说明。

  1. 故障排除后的清理
    每次故障排除后,应手动删除下载的脚本文件、日志和导出的文件。这些文件的总大小应该很小,不会影响 CVM 的文件系统。当脚本不再需要时,您可以删除以下文件。
    <yymmdd-hhmmss> 是创建日期和时间。
    • 在部署 KB 脚本的 CVM 中( /home/nutanix/tmp/ ):
      KB-1540_clean.sh - 从 KB 下载的文件
      deploytool_yyyymmdd-hhmmss.log - 部署脚本的日志(部署后不需要)
      nutanix_home_clean.py - 主要 KB 脚本
      nutanix_home_clean_config.py-主脚本的配置文件
    • 在集群中其余的 CVM 中 - 如果在步骤 2 中部署到所有 CVM:
      nutanix_home_clean.py - 主要 KB 脚本
      nutanix_home_clean_config.py-主脚本的配置文件
    • 运行 nutanix_home_clean.py 的每个 CVM:
      KB-1540_v12_yyyymmdd_hhmmss_nutanix_home_clean.log - KB 脚本的日志
      KB-1540_v12_yyyymmdd_hhmmss_export_*.csv - 导出的文件(如果已导出)

    以下命令可以删除以上所有内容:

     nutanix@cvm:~/tmp$ allssh'cd ~/tmp/; /usr/bin/rm KB-1540* deploytool_*.log nutanix_home_clean.py nutanix_home_clean_config.py'
    

方法 2:手动方法

请阅读:只有下面所述目录下的文件才可以安全删除。请注意从每个目录中删除文件的具体指导。请勿使用任何其他命令或脚本来删除文件。在任何情况下都不要使用rm -rf

  1. 删除旧日志和核心文件。仅删除以下目录中的文件,而不删除目录本身
  • /主页/nutanix/数据/核心/
  • /主页/nutanix/数据/binary_logs/
  • /主页/nutanix/数据/ncc/安装程序/
  • /主页/nutanix/数据/log_collector/
  • /主页/nutanix/prism/webapps/console/downloads/NCC-logs-*

使用以下语法删除每个目录中的文件:

nutanix@cvm:~$ rm /home/nutanix/data/cores/*


  1. 删除旧 ISO 和软件二进制文件。仅删除以下目录中的文件,而不删除目录本身

在“Cluster Version”下检查当前运行的AOS版本:

nutanix@cvm:~$ ncli 集群信息 | egrep'集群 [名称|版本]'
集群名称:Axxxxa
集群版本:5.10.2
  • /home/nutanix/software_uncompressed/ - software_uncompressed 文件夹仅在预升级运行时使用,升级成功后应将其删除。如果您看到正在运行但当前未升级的集群,则可以安全地删除 software_uncompressed 目录中的所有内容。删除除要升级到的版本之外的所有旧版本。
  • /home/nutanix/foundation/isos/ ——虚拟机管理程序或 Phoenix 的旧 ISO。
  • /home/nutanix/foundation/tmp/ ——可以删除的临时文件。
    使用以下语法删除每个目录中的文件:
     nutanix@cvm:~$ /usr/bin/rm /home/nutanix/foundation/isos/*
    nutanix@cvm:~$ /usr/bin/rm /home/nutanix/foundation/tmp/*
    
  • /主页/nutanix/软件下载/

    如果 software_downloads 目录下的文件对于任何计划的升级都不是必需的,请从Prism Web 控制台 > 设置 > 升级软件中删除它们。同时检查文件服务器虚拟机管理程序NCCFoundation选项卡以找到您可能不需要的下载。下面的示例说明了两个可用于升级的 AOS 版本,每个版本占用大约 5 GB。单击“X”可删除文件。

    软件下载

    如果已选中,请取消选中“启用自动下载”选项。如果不进行监控,集群将下载多个版本,从而不必要地占用主目录中的空间。

  1. 使用df -h重新检查/home中的空间使用情况(参见本文的常规指南)以确认其现在低于 70%。

注意:如果您无法删除文件并出现以下错误且空间未被占用,请联系Nutanix 支持寻求帮助。

nutanix@CVM:~$ sudo rm -f /home/nutanix/data/software_uncompressed/xxx
==> 检测到的系统文件:
/home/nutanix/data/software_uncompressed/xxx
操作不允许。删除系统文件将导致集群不稳定,并可能导致数据丢失。


NC2 集群的重要注意事项:
在一些 NC2 集群实例中,我们观察到 /tmp 接近已满。您可以按照以下步骤清理 ~/tmp 目录。

  1. 通过 SSH 连接到受影响的 CVM 并通过运行“df -h”命令检查磁盘使用情况:
     nutanix@CVM:~$ df -h /tmp
    文件系统大小已使用可用使用率%安装于
    /dev/loop0 240M 236M 0 100% /tmp
    
  2. 在上面的输出中,我们可以看到 /tmp 显示 100%。将目录更改为 ~/tmp 并使用sudo du -aSxh /tmp/* | sort -h对列表进行排序。
     4.0K /tmp/hsperfdata_nutanix 12K /tmp/lost+found 23K /tmp/rc_nutanix_start.1731.log 39K /tmp/rc_nutanix_start.1734.log 78M /tmp/infra-gateway.ntnx-i-02a754840c30b5e66-a-cvm.root.log.ERROR.20230123-201357.3575 78M /tmp/infra-gateway.ntnx-i-02a754840c30b5e66-a-cvm.root.log.INFO.20230123-200932.3575 78M /tmp/infra-gateway.ntnx-i-02a754840c30b5e66-a-cvm.root.log.WARNING.20230123-201357.3575
  3. 从上面收到的输出中,手动删除大于 12K 的文件。例如,查看下面从上面输出中删除的文件。
     nutanix@CVM:~/tmp$ sudo /usr/bin/rm /tmp/infra-gateway.ntnx-i-02a754840c30b5e66-a-cvm.root.log.WARNING.20230123-201357.3575 nutanix@CVM:~/tmp$ sudo /usr/bin/rm /tmp/infra-gateway.ntnx-i-02a754840c30b5e66-a-cvm.root.log.INFO.20230123-200932.3575 nutanix@CVM:~/tmp$ sudo /usr/bin/rm /tmp/.ntnx-i-02a754840c30b5e66-a-cvm.root.log.ERROR.20230123-201357.3575 nutanix@CVM:~/tmp$ sudo /usr/bin/rm /tmp/rc_nutanix_start.1734.log nutanix@CVM:~/tmp$ sudo /usr/bin/rm /tmp/rc_nutanix_start.1731.log
  4. 删除后,您可以使用df -h检查可用空间:
     nutanix@CVM:~/tmp$ df -h /tmp
    文件系统大小已使用可用使用率%安装于
    /dev/loop0 240M 14M 210M 6% /tmp
    
  5. 如您所见,可用空间现在显示为 6%。您可以进一步检查:
     nutanix@CVM:~$ ncc 健康检查硬件检查磁盘检查磁盘使用情况检查--cvm_list= 
       
       
    或者
    nutanix@CVM:~$ ncc health_checks run_all
    

如果在清理已批准目录中的文件后/home使用率仍高于阈值,请联系Nutanix 支持寻求帮助。在任何情况下,您都不应从本文推荐的目录中删除任何其他目录中的文件,因为这些文件可能对 CVM 性能至关重要或可能包含用户数据。

文件ID:HT514182
初始发布日期:09/09/2022
最近修改日期:10/28/2024