文档介绍:支持AFS环境的批作业管理系统
黄秋兰/高能所计算中心
Fabio Hermandez/
2011-07-06
主要内容
系统研究背景及意义
系统设计与实现
系统部署与评价
总结与展望
集群系统概况
登录节点
作业管理系统
计算节点
分布式文件系统
AFS
NFS
Lustre
探测器集群
磁盘池
磁带库
GRASS系统
网格
作业管理系统的问题
系统方面
OpenAFS(Andrew File System)采用Kerberos认证,每个AFS tokens的生命周期有限(默认25小时)
作业管理系统Torque 完全支持工作在采用标准UNIX用户认证的共享文件系统中,比如NFS、Lustre等,但不支持工作在AFS环境中。Torque无法保证用户从AFS的HOME目录提交作业的运行结果写会用户的HOME目录
管理方面
目前集群的所有用户管理和认证都采用AFS认证管理
系统管理需要同时提供AFS和NFS系统的在线服务,不是长久之计
如何解决?
方案一:放弃AFS系统,所有用户目录$HOME都采用NFS
软件库的共享及并发访问问题,如BOSS软件的Gaudi库等
方案二:集成Torque和AFS,使作业管理系统支持AFS环境
集群可以不提供NFS服务
保证用户在AFS的用户目录下提交各种作业类型,都能正确的将运行结果写回用户的AFS目录
采用方案二,设计了PAFSI(PBS and AFS Integration)系统,有效的弥补了Torque的不足
系统总体设计
系统的设计采用客户端/服务器C/S结构,集群中消息的通信机制基于开源的ActiveMQ消息总线机制。
服务器端AFSTokenServer
服务器端AFSTokenServer的组成
运行在AFS的服务器上,负责保存、伪造及修改用户的AFS Tokens
Token-Generator模块
监控集群节点的Tokens请求(节点名、作业ID、作业属主等信息)
验证请求的合法性
伪造合法的Tokens
延长Tokens的生命周期
记录Tokens请求
Token-Dispatcher模块
Tokens的分发,以消息为载体,发送有效的tokens给相应的计算节点,同时修改记录的标志位
请求信息的清理
AFSTokenServer的实现
无需修改AFS的源码
充分利用AFS的开源特性,调用AFS-DEVEL的相关接口,编写自定义的tokens接口
实现的接口有:
forgeToken
activateToken
extendToken
服务器端对Tokens的操作,只需用户提供JOBID,JOBOWNER信息(不需要用户提供任何密码),即可完成有效的tokens伪造
采用ActiveMQ实现与客户端的消息通信,服务器端以消息为载体,发送有效的tokens给相应的计算节点
客户端AFSTokenClient
客户端的实现主要是对Torque PBS的pbs-mom模块扩展
运行在所有计算节点上,负责请求、接收、保存并设置作业运行环境以激活用户的AFS Tokens
当调度到新作业时,向服务器端发送tokens请求,( JOBID,JOBOWNER,HOSTNAME)
接收从AFSTokenServer端以消息形式发送过来的Tokens,并保存
设置作业运行环境以激活tokens
PBS-MOM
jobs
AFSTokenClient
Exist valid tokens?
no
Send tokens request
Receive tokens
Activate tokens
in jobs’ environment
Create PAG
yes