Isilon:事件通知:var 分区接近容量,事件 ID:100010001
Summary: 本文讨论了在接近容量时清除 Var 分区的方法。
Symptoms
将发出以下事件
通知之一:
The /var partition is near capacity (95% used) The /var partition is near capacity (85% used) The /var partition is near capacity (75% used)
详细信息
当 /var 分区达到容量的 75%、85% 或 95% 时,将记录一个事件并发送警报。
Cause
/var 文件夹包含群集各种功能的大量日志、诊断文件、配置数据和临时文件。随着时间的推移, /var 文件夹中可能会累积各种额外的文件,并导致其填满。
这 /var/log/wtmp 文件和翻转文件 /var/log/wtmp.0开始, /var/log/wtmp.1,例如,将大小增加到 10 MB 以上。有时,它们会增加到 150 MB。如果您主要使用 CIFS/NFS 来写入备份,则应使用 /var/log/wtmp 文件是记录登录和注销数据的二进制日志文件。日志管理器文件, /etc/newsyslog.conf, 不会以与其他日志文件相同的方式进行归档,因此 /var/log/wtmp 可以增长并填充 /var 目录。
Resolution
下面是 /var 分区的默认内容和更相关子目录的简要说明。除非另有说明,否则不应更改或删除 /var 及其子目录中的内容和数据。
ps9500x3-2# cd /var ps9500x3-2# ls .snap at backups db ifs lib patch spool account audit cache empty journal log preserve tmp agentx authpf crash games journal-peer mail run unbound apache2 backup cron heimdal krb5kdc msgs rwho yp .snap Snapshots. Do not touch. account Account information. Do not touch. agentx Empty but preserved for Agent Extensibility (AgentX) Protocol apache2 Apache Files. Do not touch. at Variable data. Do not touch. audit Audit Files. Do not touch. authpf Authentication gateway. Do not touch. backup System configuration backup files. Do not touch backups Group configuration backups. Do not touch cache System cache. Do not touch. crash Crash files, older files can be deleted if needed cron Cron jobs, do not touch db Database files. Do not touch empty Do not touch. games Empty but preserved. heimdal Kerberos 5 protocol. Do not touch. ifs Do not touch unless directed by support journal System Journal database journal-peer System Journal-peer database krb5kdc Kerberos KDC (Key Distribution Center) lib Likewise database files. Do not touch log Various System log files, can be cleared but zero's out the system logs. mail Mail sub-system files. msgs Message logs patch System patch database. Do not touch preserve Do not touch run Do not touch rwho Do Not Touch spool System Spool files. Do not touch. tmp Healthcheck items and vi recover. Do not touch. unbound Do Not Touch yp Do Not Touch
要关注的两个目录是 /var/crash 和 /var/logs ,因为它们可能会增长并占用 /var 分区中的大部分磁盘空间。
如果不再需要 /var/crash 中较旧的崩溃文件,可以将其删除。
如果日志变得太大,可以将 /var/logs 清零并重置。请记住,重置日志后,将无法再对过去的问题进行故障处理和研究。
查看 /var 分区的 df 输出。根据输出,执行以下一个或多个任务:
ps9500x3-2# df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/root0 1957292 871082 929628 48% / devfs 1 1 0 100% /dev /dev/mirror/var0 978604 51394 848922 6% /var /dev/mirror/var-crash 2946284 10 2710572 0% /var/crash /dev/mirror/keystore 61228 46 56284 0% /keystore /dev/md0 61166 2158 54116 4% /tmp/ufp /dev/md1.uzip 435751 406426 -5535 101% /base OneFS 246327840 2362592 173903776 1% /ifs ps9500x3-2#
轮换日志:
有关如何轮换日志的详细说明,请参阅知识库文章 20315 Isilon:OneFS — 如何轮换节点的系统日志。用于轮换日志的命令:
newsyslog -f
如果 /var 分区恢复到正常使用水平,请查看最近写入日志的列表,以确定某个特定日志是否频繁轮换。轮换可以通过压缩或删除大型日志和旧日志来解决分区已满问题,从而自动减少分区用量。
检查可用索引节点的百分比:
打开与报告错误的节点的 SSH 连接,然后使用“root”帐户登录。运行以下命令:
df -i |grep var |grep -v crash将显示类似以下内容的输出:
Filesystem 1K-blocks Used Avail Capacity iused ifree %iused Mounted on /dev/mirror/var0 1013068 49160 882864 5% 1650 139276 100% /var如果 %iused值 为 90% 或更高,请使用下述方法之一减少 /var分区中的文件数。
识别不属于 /var 分区的文件:
- 在生成警报的节点上,运行以下命令以列出 /var 分区中大于 5 MB 的文件:
find -x /var -type f -size +10000 -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
- 在输出中,查找通常不属于 /var 分区的文件。例如,OneFS 安装程序文件、日志收集或用户创建的文件。
- 删除文件或将其移至 /ifs 目录。
手动从 /var 分区中删除文件:
确定额外文件后,清理 /var 目录所需的命令通常涉及 Make Directory (mkdir)、Copy (cp)、Move (mv) 和 Remove (rm)。在继续作之前,用户应熟悉这些基本的 UNIX/Linux 命令。
在删除文件或从其原始位置移动文件之前,请始终创建文件的备份副本。
创建要将备份数据移动或复制到其中的目录,其中 <dest> 是目标目录。此目录是应首先将要删除的所有文件的备份拷贝复制到的位置。
# mkdir /ifs/data/Isilon_Support/<dest>
根据需要复制、移动或删除文件:
要复制文件或目录,请执行以下作:
# cp <file> /ifs/data/Isilon_Support/<dest>
以递归方式复制目录。
# cp -R <directory> /ifs/data/Isilon_Support/<dest>
要移动文件或目录:
# mv <file> /ifs/data/Isilon_Support/<dest> # mv <directory> /ifs/data/Isilon_Support/<dest>
要移除/删除文件,请执行以下作:
# rm <file>
确定进程是否正在保存大文件打开状态。
使用 fstat 命令列出节点或目录上的打开文件,或者列出进程已打开的文件。打开文件列表可帮助您监视正在写入大型文件的进程。请参阅如何使用 fstat 命令列出节点上的打开文件(文章 21402 Isilon:如何使用 fstat 命令列出节点上的打开文件。
如果上述两个任务均无法解决问题,请转至以下解决方案:
限制滚动文件大小并压缩文件
- 在群集中的任意节点上打开 SSH 连接,并使用“root”帐户登录。
- 运行以下命令创建 /etc/newsyslog.conf 文件的备份:
cp /etc/newsyslog.conf /ifs/newsyslog.conf cp /etc/newsyslog.conf /etc/newsyslog.bak
- 在文本编辑器中打开 /ifs/newsyslog.conf 文件。
- 查找以下行:
/var/log/wtmp 644 3 * @01T05 B
- 将该行更改为:
/var/log/wtmp 644 3 10000 @01T05 ZB这些更改会指示系统在 /var/log/wtmp 文件达到 10 MB 时对其进行翻转,并使用 gzip 压缩文件。
- 保存并关闭 /ifs/newsyslog.conf 文件。
- 运行以下命令将更新后的文件复制到群集中的所有节点:
isi_for_array 'cp /ifs/newsyslog.conf /etc/newsyslog.conf'
- 必要时,按小时和半小时 (/etc/crontab) 使用 cron 作业自动轮换日志文件
#minute hour mday month wday who command # # rotate log files every half-hour, if necessary 0,30 * * * * root newsyslog如果其他日志频繁轮换,或者上述步骤无法解决问题,请联系戴尔技术支持寻求帮助。