以下是 Lustre 文件系统日常高频管理命令的汇总,结合常见场景进行分类和示例说明:


1. 文件系统状态检查

场景: 检查 Lustre 文件系统整体健康状态、节点状态、存储池使用情况等。

  • 查看所有 Lustre 目标状态

    lctl dl   # 列出所有 Lustre 设备(MGS、MDS、OSS、OST 等)
    lfs check all  # 检查文件系统一致性
    
  • 查看文件系统挂载信息

    lfs df -h  # 类似 df,显示所有 OST 的空间使用情况
    lfs osts   # 列出所有 OST 的状态
    
  • 检查 MDS 和 OSS 节点状态

    lctl get_param mdt.*.status  # 查看所有 MDT 状态
    lctl get_param obdfilter.*.status  # 查看所有 OST 状态
    

2. 存储配额管理

场景: 限制用户/组在指定目录下的存储使用量。

  • 设置用户/组配额

    lfs setquota -u username -b 100G -B 200G /mnt/lustre  # 设置用户软/硬限制
    lfs setquota -g groupname -b 500G -B 1T /mnt/lustre   # 设置组配额
    
  • 查看配额使用情况

    lfs quota -u username /mnt/lustre  # 查看用户配额
    lfs quota -g groupname /mnt/lustre # 查看组配额
    

3. 文件分布与条带化

场景: 优化大文件读写性能,控制文件在多个 OST 上的分布。

  • 查看文件条带化信息

    lfs getstripe /mnt/lustre/file.dat  # 查看文件的条带化配置
    
  • 设置文件条带化参数

    lfs setstripe -c 4 -s 1M /mnt/lustre/new_file  # 创建文件时指定 4 个条带,每个条带 1MB
    
  • 递归设置目录默认条带

    lfs setstripe -c 2 -s 4M /mnt/lustre/dir  # 设置目录下新文件默认使用 2 条带
    

4. 故障排查与恢复

场景: 处理 OST/MDT 离线、客户端连接异常等问题。

  • 强制 OST 恢复

    lctl --device ost-name activate  # 重新激活离线 OST
    lctl set_param osc.*.max_rpcs_in_flight=32  # 调整客户端 RPC 并发数(网络不稳定时)
    
  • 查看错误日志

    lctl dk /var/log/lustre/log  # 导出内核日志(需先启用 debug)
    lctl get_param fail_loc  # 查看错误注入点(调试用)
    
  • 修复文件系统元数据

    e2fsck -f /dev/ost_device  # 修复 OST 元数据(需先卸载)
    

5. 性能监控

场景: 监控读写吞吐量、延迟、客户端连接状态等。

  • 实时性能统计

    lctl get_param job_stats  # 查看客户端作业统计
    lctl get_param osc.*.stats  # 查看 OSC 层统计
    
  • 查看网络吞吐量

    lnetctl net show -v  # 查看 LNet 网络状态和吞吐量
    
  • 监控客户端连接

    lctl list_nids  # 查看本机 NID(LNet 网络标识)
    lctl get_param mgs.*.live.*  # 查看活跃客户端连接
    

6. 空间管理

场景: 清理大文件、查找碎片化文件或孤儿文件。

  • 查找大文件

    lfs find /mnt/lustre -size +100G  # 查找大于 100GB 的文件
    
  • 释放已删除文件占用的空间

    lctl set_param obdfilter.*.sync=1  # 强制同步 OST 缓存(清理孤儿文件)
    
  • 查看 OST 空间碎片

    lfs df -i  # 查看 OST/MDT 的 inode 使用情况
    

7. 动态配置调整

场景: 动态调整参数优化性能或修复问题。

  • 调整客户端缓存

    lctl set_param llite.*.max_cached_mb=4096  # 设置客户端缓存为 4GB
    
  • 修改文件系统超时时间

    lctl set_param timeout=600  # 设置全局超时时间为 600 秒
    

8. 客户端管理

场景: 管理客户端挂载和连接。

  • 查看客户端挂载点

    lfs mounts  # 显示所有 Lustre 客户端挂载点
    
  • 强制卸载客户端

    lctl network down  # 关闭 LNet 网络(极端情况使用)
    

常用命令速查表

场景 命令示例
查看 OST 状态 lfs osts
设置用户配额 lfs setquota -u user1 -b 50G -B 100G /mnt/lustre
查看文件条带化 lfs getstripe /mnt/lustre/file
强制 OST 恢复 lctl --device ost-OST0000 activate
监控实时性能 watch -n 1 "lctl get_param job_stats"
查找占用空间大的目录 lfs find /mnt/lustre/dir -type d -print | xargs lfs du | sort -n -k1

注意事项

  1. 高危操作前备份:如 e2fsck 或修改条带化参数前,确保数据已备份。
  2. 避免直接操作底层设备:如 /dev/ost*/dev/mdt*,需通过 Lustre 工具管理。
  3. 监控日志:Lustre 日志通常位于 /var/log/lustre,定期检查 messageskernel 日志。

通过以上命令和场景示例,可以覆盖 Lustre 文件系统日常管理的核心需求。

posted on 2025-04-03 10:28  LeeHang  阅读(231)  评论(0)    收藏  举报