GPFS集群客户端机器回收
一、回收前的准备工作
-
信息收集与确认
-
数据备份与迁移
- 若客户端本地存储有与 GPFS 相关的配置文件(如
/etc/gpfs目录下的文件)或临时数据,需先备份至其他节点或存储介质。 - 若客户端作为数据访问节点,需确认其负责的数据已迁移至其他节点,或业务已切换至替代节点。
- 若客户端本地存储有与 GPFS 相关的配置文件(如
二、客户端脱离 GPFS 集群的操作步骤
-
卸载 GPFS 文件系统
- 在待回收客户端上执行卸载命令,确保所有文件系统均已卸载:
bash
umount /gpfs # 替换为实际挂载点,若有多个需逐一卸载 - 验证卸载结果:
mount | grep gpfs应无输出
- 在待回收客户端上执行卸载命令,确保所有文件系统均已卸载:
-
停止 GPFS 客户端服务
- 停止客户端的 GPFS 守护进程:
bash
mmshutdown -N 客户端主机名 # 可在集群管理节点执行,或直接在客户端本地执行 - 确认服务已停止:
mmgetstate -N 客户端主机名显示 “down” 状态。
- 停止客户端的 GPFS 守护进程:
-
从集群中删除客户端节点
- 在 GPFS 集群管理节点(通常是主节点)执行命令,将客户端从集群中移除:
bash
mmdelnode -N 客户端主机名 # 移除节点配置 - 验证删除结果:
mmlsnode命令输出中不应再包含该客户端。
- 在 GPFS 集群管理节点(通常是主节点)执行命令,将客户端从集群中移除:
-
清理客户端本地残留文件
- 删除 GPFS 相关的配置文件和日志(可选,若机器需彻底回收):
bash
rm -rf /etc/gpfs/* /var/log/gpfs/* /var/lib/gpfs/* - 卸载 GPFS 内核模块(若系统重启后无需保留):
bash
rmmod gpfs # 需确保无进程占用,否则可能失败
- 删除 GPFS 相关的配置文件和日志(可选,若机器需彻底回收):
三、回收后的验证与集群维护
-
集群状态检查
- 在管理节点执行以下命令,确认集群整体状态正常:
bash
mmgetstate -a # 检查所有节点状态是否为“active”mmlsmount all -L # 确认文件系统挂载正常mmhealth node show # 检查节点健康状态
- 在管理节点执行以下命令,确认集群整体状态正常:
-
资源释放确认
- 确认客户端占用的集群资源(如 IP、网络端口、配额等)已释放,可通过集群监控工具(如 GPFS 自带的
mmmon或第三方监控)验证。
- 确认客户端占用的集群资源(如 IP、网络端口、配额等)已释放,可通过集群监控工具(如 GPFS 自带的
-
文档更新
- 更新集群节点清单、网络拓扑图等文档,移除已回收客户端的信息,确保资产记录与实际一致。
四、注意事项
-
避免误操作
- 执行
mmdelnode命令时需谨慎,确保指定的主机名正确,避免删除重要节点(如管理节点、存储节点)。 - 若客户端同时是集群的 NSD(Network Shared Disk)节点,需先迁移 NSD 服务,不可直接删除(需额外步骤处理存储资源)。
- 执行
-
处理异常情况
- 若卸载文件系统失败(提示 “设备忙”),需排查并终止占用进程(
fuser -k /gpfs强制终止)。 - 若
mmshutdown失败,可尝试强制停止:pkill -9 gpfs后再清理进程。
- 若卸载文件系统失败(提示 “设备忙”),需排查并终止占用进程(
-
权限与依赖
- 操作需使用 root 权限或具有 GPFS 管理员权限的账号(如
gpfsadm)。 - 若客户端属于某个节点组或有网络依赖(如 RDMA 配置),删除后需检查节点组配置(
mmlsnodeclass)是否仍合理。
- 操作需使用 root 权限或具有 GPFS 管理员权限的账号(如
通过以上步骤,可安全地将 GPFS 客户端机器从集群中回收,同时保障集群的持续稳定运行。回收后建议观察集群状态 1-2 个业务周期,确认无异常影响。
查看GPU服务其上有没有任务命令
在 Linux 系统中,查看 GPU 服务器上是否有运行中的任务(尤其是 GPU 相关任务),可以通过以下命令实现,不同工具适用于不同场景(如 NVIDIA GPU、AMD GPU 等,其中 NVIDIA 工具最常用):
一、NVIDIA GPU 任务查看(最常用)
如果服务器使用的是 NVIDIA 显卡,推荐使用官方工具 nvidia-smi(需安装 NVIDIA 驱动),功能全面且直观。
-
基础命令:
nvidia-smi
直接在终端执行,会显示当前 GPU 的使用率、内存占用、以及正在运行的进程(任务):bash
nvidia-smi输出中关键信息:
- Processes 部分:列出所有占用 GPU 的进程,包含进程 ID(PID)、用户名、占用的 GPU 内存等。
- 若该部分为空,说明当前无 GPU 任务运行。
-
实时监控 GPU 任务(动态刷新)
若需要持续观察任务变化,可加上-l参数(间隔秒数,默认 5 秒):bash
nvidia-smi -l 3 # 每3秒刷新一次 -
筛选特定信息(如仅显示进程)
结合grep过滤无关内容,只查看运行中的任务:bash
nvidia-smi | grep -A 10 \"Processes\" # 显示Processes及后续10行内容
二、通过系统进程查看(适用于所有 GPU 类型)
即使不依赖 GPU 厂商工具,也可通过系统进程命令间接判断是否有任务在使用 GPU(尤其是结合 GPU 相关的应用特征)。
-
查看所有进程及资源占用
使用ps或top命令,结合 GPU 相关的应用名称(如python、pytorch、tensorflow、cuda等)筛选:bash
ps -ef | grep -E \"python|pytorch|tensorflow|cuda\" # 筛选可能使用GPU的进程top # 实时查看系统进程,按`Shift+P`按CPU占用排序,`Shift+M`按内存排序 -
通过 PID 关联 GPU 使用
若已知某个进程可能占用 GPU,可通过nvidia-smi查看其是否在 GPU 上运行:bash
nvidia-smi -p 进程ID # 查看指定PID的GPU占用情况
三、AMD GPU 任务查看
若服务器使用 AMD 显卡,可通过 rocm-smi(ROCm 平台工具)查看:
bash
rocm-smi # 类似nvidia-smi,显示GPU状态及进程信息
四、总结
- 首选命令:
nvidia-smi(NVIDIA GPU)或rocm-smi(AMD GPU),直接显示 GPU 任务。 - 辅助命令:
ps、top结合应用特征筛选,适合确认系统级任务是否关联 GPU。


