> 技术文档 > GPFS集群客户端机器回收

GPFS集群客户端机器回收


一、回收前的准备工作

  1. 信息收集与确认

    • 记录待回收客户端的基本信息:主机名、IP 地址、所属节点组、挂载的 GPFS 文件系统(可通过mmlsnodemmlsmount命令查询)。
    • 确认该客户端是否仍在使用:检查是否有活跃进程访问 GPFS 文件系统(如lsof | grep /gpfs)、是否有定时任务或应用依赖。
    • 与业务方沟通,确保回收操作不会影响正在运行的业务,确定停机窗口期。
  2. 数据备份与迁移

    • 若客户端本地存储有与 GPFS 相关的配置文件(如/etc/gpfs目录下的文件)或临时数据,需先备份至其他节点或存储介质。
    • 若客户端作为数据访问节点,需确认其负责的数据已迁移至其他节点,或业务已切换至替代节点。

二、客户端脱离 GPFS 集群的操作步骤

  1. 卸载 GPFS 文件系统

    • 在待回收客户端上执行卸载命令,确保所有文件系统均已卸载:

      bash

      umount /gpfs # 替换为实际挂载点,若有多个需逐一卸载
    • 验证卸载结果:mount | grep gpfs 应无输出
  1. 停止 GPFS 客户端服务

    • 停止客户端的 GPFS 守护进程:

      bash

      mmshutdown -N 客户端主机名 # 可在集群管理节点执行,或直接在客户端本地执行
    • 确认服务已停止:mmgetstate -N 客户端主机名 显示 “down” 状态。
  2. 从集群中删除客户端节点

    • 在 GPFS 集群管理节点(通常是主节点)执行命令,将客户端从集群中移除:

      bash

      mmdelnode -N 客户端主机名 # 移除节点配置
    • 验证删除结果:mmlsnode 命令输出中不应再包含该客户端。
  3. 清理客户端本地残留文件

    • 删除 GPFS 相关的配置文件和日志(可选,若机器需彻底回收):

      bash

      rm -rf /etc/gpfs/* /var/log/gpfs/* /var/lib/gpfs/*
    • 卸载 GPFS 内核模块(若系统重启后无需保留):

      bash

      rmmod gpfs # 需确保无进程占用,否则可能失败

三、回收后的验证与集群维护

  1. 集群状态检查

    • 在管理节点执行以下命令,确认集群整体状态正常:

      bash

      mmgetstate -a # 检查所有节点状态是否为“active”mmlsmount all -L # 确认文件系统挂载正常mmhealth node show # 检查节点健康状态
  2. 资源释放确认

    • 确认客户端占用的集群资源(如 IP、网络端口、配额等)已释放,可通过集群监控工具(如 GPFS 自带的mmmon或第三方监控)验证。
  3. 文档更新

    • 更新集群节点清单、网络拓扑图等文档,移除已回收客户端的信息,确保资产记录与实际一致。

四、注意事项

  1. 避免误操作

    • 执行mmdelnode命令时需谨慎,确保指定的主机名正确,避免删除重要节点(如管理节点、存储节点)。
    • 若客户端同时是集群的 NSD(Network Shared Disk)节点,需先迁移 NSD 服务,不可直接删除(需额外步骤处理存储资源)。
  2. 处理异常情况

    • 若卸载文件系统失败(提示 “设备忙”),需排查并终止占用进程(fuser -k /gpfs 强制终止)。
    • mmshutdown失败,可尝试强制停止:pkill -9 gpfs 后再清理进程。
  3. 权限与依赖

    • 操作需使用 root 权限或具有 GPFS 管理员权限的账号(如gpfsadm)。
    • 若客户端属于某个节点组或有网络依赖(如 RDMA 配置),删除后需检查节点组配置(mmlsnodeclass)是否仍合理。

通过以上步骤,可安全地将 GPFS 客户端机器从集群中回收,同时保障集群的持续稳定运行。回收后建议观察集群状态 1-2 个业务周期,确认无异常影响。

查看GPU服务其上有没有任务命令

在 Linux 系统中,查看 GPU 服务器上是否有运行中的任务(尤其是 GPU 相关任务),可以通过以下命令实现,不同工具适用于不同场景(如 NVIDIA GPU、AMD GPU 等,其中 NVIDIA 工具最常用):

一、NVIDIA GPU 任务查看(最常用)

如果服务器使用的是 NVIDIA 显卡,推荐使用官方工具 nvidia-smi(需安装 NVIDIA 驱动),功能全面且直观。

  1. 基础命令:nvidia-smi
    直接在终端执行,会显示当前 GPU 的使用率、内存占用、以及正在运行的进程(任务):

    bash

    nvidia-smi

     

    输出中关键信息:

    • Processes 部分:列出所有占用 GPU 的进程,包含进程 ID(PID)、用户名、占用的 GPU 内存等。
    • 若该部分为空,说明当前无 GPU 任务运行。
  2. 实时监控 GPU 任务(动态刷新)
    若需要持续观察任务变化,可加上 -l 参数(间隔秒数,默认 5 秒):

    bash

    nvidia-smi -l 3 # 每3秒刷新一次
  3. 筛选特定信息(如仅显示进程)
    结合 grep 过滤无关内容,只查看运行中的任务:

    bash

    nvidia-smi | grep -A 10 \"Processes\" # 显示Processes及后续10行内容

二、通过系统进程查看(适用于所有 GPU 类型)

即使不依赖 GPU 厂商工具,也可通过系统进程命令间接判断是否有任务在使用 GPU(尤其是结合 GPU 相关的应用特征)。

  1. 查看所有进程及资源占用
    使用 ps 或 top 命令,结合 GPU 相关的应用名称(如pythonpytorchtensorflowcuda等)筛选:

    bash

    ps -ef | grep -E \"python|pytorch|tensorflow|cuda\" # 筛选可能使用GPU的进程top # 实时查看系统进程,按`Shift+P`按CPU占用排序,`Shift+M`按内存排序
  2. 通过 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 任务。
  • 辅助命令pstop 结合应用特征筛选,适合确认系统级任务是否关联 GPU。