基于Amazon弹性计算云的高性能计算平台解决方案
作者:李金龙,朱杰,梁殿鹏
来源:《电脑知识与技术》2011年第28期
摘要:该文基于Amazon 弹性计算云(Amazon EC2),结合Platform LSF(Load Sharing Facility)集群调度中间件和Platform Application Center(PAC) 软件,提出了一个在Amazon 弹性计算云上搭建高性能计算平台的解决方案,并为此平台的搭建设计和实现了自动化脚本。与传统的高性能计算平台相比,它实现了计算资源的弹性定制,降低了成本,提高了资源利用率,具有极大的灵活性。
关键词:高性能计算;Amazon 弹性计算云;LSF;PAC
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)28-7024-03 A Solution of HPC Platform based Amazon EC2 LI Jin-long1, ZHU Jie2, LIANG Dian-peng2
(1.Information and Control Engineering School, Xi'an University of Architecture and
Technology, Xi'an 710055, China; 2.Platform Computing (Beijing) Software Corporation Xi'an branch, Xi'an 710071, China)
Abstract: Based on Amazon Elastic Compute Cloud(Amazon EC2), together with Platform LSF and Platform Application Center, the paper propose a solution of building High Performance Computing platform, design and implement a automation script. Compared with traditional High Performance Computing platform, it realizes customization of computing resources elastic lowers the cost, increases resource utilization rate, and have great flexibility. Key words: high performance computing; Amazon EC2; LSF; PAC
随着信息技术的高速发展,高性能计算(High Performance Computing,)作为计算技术的一个分支得到了广泛的关注和快速发展。高性能计算系统的主流体系结构分三种:共享内存(SM,Shared Memory)、连贯缓冲非统一内存寻址(CC-NUMA, Cache-Coherent Non Uniform Memory Access)和集群(Cluster)。目前对HPC影响最大的是集群,集群是高性能计算平台使用最广泛的一种体系结构构。集群是这样一种技术,它由多台计算机通过集群管理软件联系起来,使多台计算机能像一台计算机那样工作或看起来想一台计算机。本文提出高性能计算平台的解决方案,利用Amazon弹性计算云(Elastic Compute Cloud, EC2)平台,结合
龙源期刊网 http://www.qikan.com.cn
Platform Computing 公司的核心集群调度管理中间件LSF(Load Sharing Facility)与PAC(Platform Application Center),使得高性能计算在云上得以实现。 1 LSF集群管理调度中间件与PAC
Platform LSF 是一个企业级的跨平台的集群管理中间件,LSF使负载平衡,分配资源,同时提供对资源的访问。LSF提供了一个资源管理框架,接受作业请求,将作业分发到最合适的资源上运行,监视作业的运行情况[1]。LSF集群一般由一个LSF 主机(Master host)、若干LSF备用主机(Candidates)和许多LSF从机(Slave host)组成,从机的集合也称为资源(Resource)。LSF主机维持着若干个作业队列,并与LSF的从机间歇性的通信,以得到从机的信息。LSF的备用主机是在主机出现故障以后替代主机的。当向集群提交一个作业时,LSF主机先把作业放到对应的队列中,然后按照一定的均衡调度策略,将作业分发到理想的从机上去执行,并跟踪作业的运行。从机会把作业的运行信息和结果传回给主机。
PAC (Platform Application Center) 是运行在LSF基础之上的Web 图形化用户接口,它可以对集群进行简单的配置、监控和管理,最大的特点是,它对一些常用的应用程序进行了封装,形成了应用程序模板,用户可以在图形化的界面提交应用程序作业,如果模板不能满足用户需求,用户只要熟悉html就可以修改或自定义模板。PAC友好的图形化用户界面让用户可以不必关注底层LSF,可以透明地使用集群。 2 Amazon弹性计算云EC2
亚马逊弹性计算云服务(Elastic Compute Cloud, EC2)是亚马逊提供的云计算环境的基本平台。网络数据流的流向非常复杂,企业和个人的网络平台所需的计算能力也随着这些流量增加在不断的变化着。利用亚马逊提供的各种应用接口,用户可以按照自己的需求随时创建、增加或实例[3]。这样用户就可以按照自己的需要的计算能力来付费,消除了购买大量昂贵硬件设施的花费。EC2的基本架构如图1。
图中AMI(Amazon Machine Image,亚马逊机器映像)是一个将操作系统、应用服务和应用程序打包的模板。Instance是由AMI创建的,它运行的是AMI的一个副本,可以使用一个AMI创建多个具有相同属性的Instance。亚马逊免费提供的丰富的AMI,可以在这些AMI的基础上构建我们的AMI,然后用它创建我们需要Instance。Instance有多个类型,它们因处理能力,内存,存储和IO性能等不同而有不同的资费。而每个Instance有两个IP地址:共有IP与私有IP,Instance通过私有IP互相通信,用户通过共有IP远程登录到Instance。EC2采用密钥对(Key Pair)和安全组(Security Group)作为安全容错机制。此外,EC2还提供了丰富的API,利用这些API函数,可以基于EC2开发应用程序[2]。 3 方案详细设计
方案的设计包括两个部分,第一部分是创建AMI,第二部分是搭建高性能计算平台。
龙源期刊网 http://www.qikan.com.cn
3.1 创建AMI
1)生成并访问Instance
选择亚马逊提供的AMI,这里使用搭载CenOS5.5操作系统的AMI来创建Instance。这个过程非常的简单,只要是按照亚马逊的Web Service 页面上的提示一步一步进行操作,需要注意的是密钥对(Key Pair)和安全组(Security Group),需要创建并下载这个密钥对和使用缺省的安全组。这样就可以通过SSH(Secure Shell)和密钥对远程访问Instance。
2)创建文件与上传LSF和PAC安装包
登录成功后,首先在/root目录下创建userdata文件,这个文件用来保存搭建平台时用户输入的一些参数,接下来就上传LSF和PAC的安装包。 3)自动化脚本amisetup.sh设计与编写
自动化脚本是在生成Instance后自动运行的脚本,它读取用户在搭建平台时输入的一些参数(数据和参数将在下一节用户接口做详细的介绍),按照用户的参数的不同进行不同的处理。图2是amisetup.sh脚本运行的流程图: 4)生成新的AMI
上面的三步做好以后,就可以应用EC2的命令ec2-bundle-vol、ec2-upload-bundle和ec2-register分别进行打包、上传和注册新的AMI,亚马逊会产生一个AMI的ID,如ami-xxxxxxxx,以后就可以使用这个AMI来创建Instance。 3.2 搭建高性能计算平台
此方案提供了两种搭建高性能计算平台的接口:通过亚马逊web service 界面搭建高性能计算平台与通过我们设计的auto-launch 脚本创建HPC平台,下面详细介绍这两种接口。 1)通过web service 界面搭建高性能计算平台
由于在从机上安装LSF时需要指定主机的主机名,所以通过web service 界面搭建高性能计算平台时需要二次创建过程,第一次即使创建LSF主机,第二次创建LSF备用主机和从机。过程如下:
A. 登录Amazon web service 界面http://aws.amazon.com/console/
龙源期刊网 http://www.qikan.com.cn
B. 点击launch instance,选择要使用的AMI,设置Number of Instances(虚拟机实例的数量)与Availability Zone(区域),在User Data中指明ExistingMasterInternalIP、rootInitialPasswd、lsfadminInitialPasswd和NumOfMasterCandidates,其中
ExistingMasterInternalIP是主机的主机名,在第二次的创建中,通过指定这个参数,备用主机和从机可以加入到主机管理的集群中; rootInitialPasswd与lsfadminInitialPasswd是root用户和LSF管理员的初始密码设置;NumOfMasterCandidates是在第二次创建中备用主机的数量。 C. 创建ssh 的Key Pair并下载到本地,选择Security Group,最后选择创建实例。 D. 当这个Instance在页面上显示为running时,就可以通过http://主机公有IP:8080登录到PAC图形化用户界面,使用PAC提供的应用程序模板提交和运行作业。 2)通过auto-launch 脚本创建HPC平台
通过web service 界面搭建平台,图形化的用户接口方便了用户的操作,但是每次都要两次创建过程,显得有一点复杂。为此设计了一个auto-launch 命令行脚本,该脚本使用Python语言编写并调用了亚马逊EC2的API,在脚本运行时加进所需要的参数,就可以一次性的创建我们需要的高性能计算平台。脚本的执行流程如图3。 脚本的使用方法如下: hpclaunch
-? --help打印帮助文档和使用方法
-i, --ami 创建Instance使用的AMI ID(必选参数)。
-t,--inst-type 指定EC2 Instance的类型,可以是以下几种类型:
'm1.large','m1.xlarge','m2.xlarge', 'm2.2xlarge','m2.4xlarge',和'c1.xlarge'默认选择的是'm1.large' -n,--num Instance的数目,缺省值1. -m, --max 在Instance中主机和备用
主机的数目,缺省为1,表示只有一个主机,没有备用主机。 -k,--keypair 指定密钥对(key pair)(必选参数)。
-g,--group,[, ...]. 指定Instance运行的安全组(security group),缺省值为默认安全组。 -a, --accesskey 亚马逊的注册账号(必选参数)
龙源期刊网 http://www.qikan.com.cn
-s,--secrte-accesskey亚马逊的注册账号的密码(必选参数) -z, --zone Instance运行的地理区域(必选参数) -p, --keypair-path 密钥对的路径(必选参数)
--root-passwd 指定instance的root用户密码,缺省条件下,将使用随机密码
--lsfadmin-passwd 指定instance的LSF管理员(lsfadmin)密码(必选参数),用户将用这个账号和密码登陆PAC图形化用户界面。 --log-level
登录日志的级别,包括DEBUG, ERROR, FATAL,INFO,NOTSET, WARN, WARNING,缺省条件下是INFO。
例如:我们在命令行键入:
$ hpclaunch --ami AMI-ID --num 10 --max 2 --keypair EC2-KEYPAIR --lsfadmin-passwd 12345 --root-passwd 12345 --keypair-path ~/EC2-KEYPAIR-FILE --zone US-EAST-1A
将会在EC2上创建10个m1.large型的机器,一个为LSF主机,一个为LSF备用主机,其余8个为LSF从机。搭建成功后会显示如下信息: Installation succeeded:
There are total [10] instances have been launched, 8 compute nodes Master host: ec2-50-16-46-220.compute-1.amazonaws.com Master host IP: 50.16.46.220 You can access PAC WEB via URL:
http://ec2-50-16-46-220.compute-1.amazonaws.com:8080
使用浏览器打开最后一行的URL进入PAC的登录界面,登录成功后,就可以运行应用程序任务。 4 结束语
在共有云上搭建高性能计算平台,与传统的搭建在服务器机房上的高性能平台相比,最大的优点可以根据需要动态扩展,缩小集群,在不使用的时候,可以删除集群,这大大降低了成
龙源期刊网 http://www.qikan.com.cn
本,提高了资源的利用率。对于有短时间有较大计算量需求的个人、学校、小型实验室和中小企业具有很高的参考价值。 参考文献:
[1] Platform Computing.Platform LSF Foundations[Z].2011. [2] Amazon.Amazon Elastic Compute Cloud User Guide API Version[EB/OL].Http://aws.amazon. com/documentation/ec2/. [3] 刘鹏.云计算[M].北京:电子工业出版社,2010.
因篇幅问题不能全部显示,请点此查看更多更全内容