简介
IBM Spectrum Scale(原IBM GPFS)有大量的排故和性能调优文档,GPFS官方排故指南内容丰富(已上传:GPFS Problem Determination Guide V4.2),但大多操作需要在IBM技术人员指导下进行。
这里根据个人经验,总结一些常用的操作,具体命令执行前请查阅官方文档或获取官方技术支持。
GPFS 日志
最基本的排故第一步,查看GPFS日志
/var/adm/ras/mmfs.log.latest
GPFS 快照(snap)
GPFS快照包含了当前GPFS的基本信息(常用于提交给技术人员排故),执行命令为
/usr/lpp/mmfs/bin/gpfs.snap -a
这会将生成快照的命令分发到所有节点上,并收集大量GPFS信息数据。
如果你只想在快照中收集部分节点的信息,可以使用
/usr/lpp/mmfs/bin/gpfs.snap -N hpc-gpfs1i,<nodes>,<nodes>,<...>
如果仅需要单个节点的快照信息,登录该节点后输入(较少用)
/usr/lpp/mmfs/bin/gpfs.snap -z
节点挂起时GPFS快照
如果需要对挂起(hanging)的节点收集GPFS快照,可以注释gpfs.snap命令中的“df -k”。
# diff -urN gpfs.snap.orig gpfs.snap
--- gpfs.snap.orig 2012-07-19 11:32:25.000000000 -0400
+++ gpfs.snap 2012-07-19 11:33:14.000000000 -0400
@@ -382,7 +382,7 @@
typeset file
print "Gathering common data."
- runCommand "df_k" "df -k" 5
+# runCommand "df_k" "df -k" 5
runCommand "gpfs_executables" "$ls -l /usr/lpp/mmfs/bin" 5
runCommand "ipcs_a" "ipcs -a" 5
runCommand "ls_dev" "$ls -l /dev" 5
GPFS dump/saferdump
通过GPFS dump可以将GPFS内部的详细状态转储到文件,从而对GPFS状态进行深入分析
/usr/lpp/mmfs/bin/mmfsadm saferdump all > /tmp/mmfs/$(uname -n).$(date +%s).gpfs.saferdump.all'
如果GPFS文件系统中有“锁”,saferdump可能无法执行,这种情况下可以直接使用dump命令
/usr/lpp/mmfs/bin/mmfsadm dump all > /tmp/mmfs/$(uname -n).$(date +%s).gpfs.dump.all'
除了dump所有信息以外,也可以指定dump的信息类型,例如dump GPFS waiters,因为GPFS性能问题常常是因为waiters.
for i in $(seq 1 4); do ssh hpc-mgmt${i} mmfsadm dump waiters 1; done
GPFS trace
如果要追踪GPFS的操作,可以使用GPFS trace。但trace命令会生成大量数据,如果排故结束,务必停止trace。
在特定节点启动trace
/usr/lpp/mmfs/bin/mmtracectl --start -N hpc-gpfs1i,<nodes>,<nodes>,<...>
在特定节点停止或关闭trace
/usr/lpp/mmfs/bin/mmtracectl --stop -N hpc-gpfs1i,<nodes>,<nodes>,<...>
/usr/lpp/mmfs/bin/mmtracectl --off -N hpc-gpfs1i,<nodes>,<nodes>,<...>