大纲 高能所的数据密集型科学计算 Lustre在高能所的部署经验 问题和需求
应用背景:高能物理实验 北京正负电子对撞机上的北京谱仪(BESIII)实验 羊八井宇宙线实验 大型强子对撞机LHC上的ATLAS,CMS实验 大亚湾中微子实验 重建 模拟 实验采集 原始数据 重建数据 分析 实验结果 磁带 磁盘盘
高能所计算存储环境 Document Management 7000 多个CPU内核 约5PB的磁带存储 Web Content Management 集群、网格计算环境 Lustre磁盘存储 登录节点,监控,调度 磁带库 7000 多个CPU内核 约5PB的磁带存储 近2 PB Lustre磁盘存储 登录,监控,调度等服务
I/O特征 数据密集型,高吞吐率(high throughput)计算 大文件,写一次,读多次 读带宽: [ 0.5,6 ] MB/s 没有热点文件 大块读写,跳读
Lustre在高能所的部署 2008.8 开始在生产系统部署Lustre,1.6.5 2010.1 升级到1.8.1.1 2011.7 升级到1.8.5 30个OSS, 300多个OST 近2PB的存储空间,1亿个文件,理论聚合带宽24GB/s
Lustre在高能所的部署 版本 数量 网络连接 存储连接 服务器 2.6.18-194.17.1.el5_lustre.1.8.5, 64位 30 万兆 以太网 4Gb(双口) 直连盘阵 客户端 1.8.5 32位和64位 800 千兆 Computing Cluster 10Gb Ethernet OSS 1 OST OST SATA Disk Array RAID 6(Main) SATA Disk Array RAID 6(extended) MDS OSS N MDT (SAS+RAID10)
Read throughput of single OSS 实际性能 单个OSS 连接 4 个盘阵, 8 个OSTs 每个盘阵大约服务 50个 读写进程 读性能, 225 MB/s/disk array 乘以服务器数量,系统的理论聚合带宽>24 GB/s 20% Read throughput of single OSS IOwait on single OSS 900MB/s 60%
系统管理 文件分布模式 fsck 用户管理 基于目录的quota 磁盘池,区分不同的应用 Stripe=1,针对高吞吐率计算 每年检修一次 错误数据,删除,从备份中恢复 用户管理 crontab脚本,同步用户数据库 基于目录的quota 脚本,每天检查一次
监控 Lustre 底层信息监控 /proc 主机信息监控 ganglia iostat 服务器日志汇总,过滤 syslog-ng
故障报警 磁盘水位报警 : lfs df 服务器连接报警: lctl ping 客户端可用性报警: 写文件到多个OST
已解决的问题 32位服务器OSS频繁死机 双网卡登录节点频繁死机 timeout值太小,造成客户端不稳定 MDS 的可靠性 改成64位操作系统 双网卡登录节点频繁死机 对lnet模块网卡绑定 timeout值太小,造成客户端不稳定 lctl set_param timeout MDS 的可靠性 LVM 快照+定期备份 计划实施DRBD Lustre 客户端内存使用控制 lctl set_param max_cache_mb
已解决的问题(2) 1.8.1.1版本的服务器内存使用控制 服务器死机故障分析 echo 0>/proc/fs/lustre/obdfileter/OSTXXX/read_ahead_cache_enable 服务器死机故障分析 crashdump + kernel-lustre-debuginfo 1.8.1.1,客户端死机后,服务器的CPU出现soft stuck,直到 死机的客户端重启后,才能恢复正常。 升级至1.8.5 以后故障不再重现 个别客户端ptlrpc-recov进程占用CPU 100%,无法杀掉,无 法正常重启
存在的问题 1.8.5 版本存在的bug HP G6服务器无法产生crash dump输出 32位客户端节点频繁死机 导致服务器在读写频繁时会自动重启 HP G6服务器无法产生crash dump输出 可能与1.8.5版本中的cciss硬件驱动有关 G7 服务器上没有 32位客户端节点频繁死机 du, ls –lr 等操作会消耗大量的客户端Normal memory 临时措施,禁用du 操作 等待客户端完全升级至64位
问题和需求 文件副本 OST 自动均衡 元数据服务器的可扩展性 方便统一的监控界面 高效的数据备份策略
Discussion