坏了就是坏了

事由

VIOS 系统盘损坏出现问题,计划对一个 VIOS 进行重装,重装前收集一些相关信息。

使用了 HMC 内的 Configuration > Virtual Resources > Virtual Storage Management 查看 VIOS 磁盘链路。
查询命令执行了几分钟还是未完成,由于查询完成前窗口无法关闭(关了会自动重新打开),故直接注销了 HMC 图形界面。
片刻后听到系统发来对应 VIOS file system 满了的消息。

分析和解决

登录分区 df 查看,发现根目录已满。

# df -g
Filesystem  GB blocks    Free %Used   IUsed IUsed% Mounted on
/dev/hd4         2.00    0.00  100%   12800    89% /
...

VIOS 的文件系统占用到 100%,会导致不可预知的后果。
根目录(/)满了会导致无法执行 padmin 相关命令、使用 LPM 功能、登录 padmin 用户等。
无法执行 padmin 命令的例子如下:

$ mkvdev -vdev hdisk100 -vadapter vhost12
Some error messages may contain invalid information
for the Virtual I/O Server environment.
mkdev: 0514-548 Cannot perform the requested function because
    the / filesystem is full or is out of inodes.

来源:https://www.ibm.com/support/pages/diagnosing-full-file-systems-powervm-vios

解决了文件系统爆满的问题后,继续看是哪些文件占满了根目录。

在 HMC 上执行磁盘查询的当天,根目录下出现了了多个 .stderr 标准错误输出,几个文件直接撑爆了根目录。

应急解决方法:root 权限 (padmin) 执行扩容:

chfs -a size=+ 5G /

注意:VIOS 的 /home 目录不支持扩容。

ps aux 筛选对应时间节点的进程 kill 掉。find /<full_file_system_name> -ctime 1 亦可查看一天之内发生更改的文件。
du -sh /var/* | sort -nr 按大小排序文件。然而 AIX 只能用 du -sm

观察空间占用是否还会继续上升。继续上升可能进程是由 hmc 不停尝试发起的,建议在 hmc kill 掉对应进程和父进程。

HMC 的查询虚拟存储命令会直接在对应的分区以 root 用户执行 /usr/ios/cli/ioscli 系列命令。

这次是因为 VIOS 使用的系统磁盘已经损坏,文件系统出现问题,执行 /usr/ios/cli/ioscli 系列命令会不断发生错误。

如果命令不结束(看起来注销掉 HMC 的图形界面并不会结束已经开始执行的命令?)或者不断重试执行,会导致文件系统不断的被填满,最终导致无可用空间,需要结束对应 hmc 命令后重启 VIOS。

hmc 查询执行的命令:
图形界面 > Serviceability > Console Events Logs

不知道是否可用的:
Users and Security > Users and Roles -> Manage Users and Tasks
Find the task and select it then "Terminate"

Last modification:March 16, 2023
If you think my article is useful to you, please feel free to appreciate