王 珊
(山西财经大学实验中心,山西 太原 03006)
高校作为科学研究的主力军之一,承担着大量的科研工作,但是由于计算问题的规模日益增大,教师进行科研时普通的计算机已经无法满足对计算作业的高性能及多元化需求,需使用高性能计算(High Performance Computing,HPC)资源。但是高性能计算实验室建设成本较高,且各学院之间资源共享性差,如何充分利用高性能计算实验室的计算、存储、网络等资源,如何提高高性能计算的管理效率成为了目前建设高性能实验室需要考虑的问题。
云计算对资源的管理具有按需分配、安全可靠、可扩展性强、资源可控等特点,改变了传统的实验室资源管理模式,因此云计算的出现,为目前高校高性能实验室的建设提供了一种新的方案。
高性能计算所需的底层基础设施、服务器、应用软件等大都成本高昂,建设一个高性能计算实验室需要耗费大量资金。传统的高性能计算实验室一旦建成便成为学院独立资源,各学院之间共享性差,如果多个学院都需要建设高性能计算实验室,势必会消耗巨大的建设成本。同时传统的高性能计算应用场景复杂,用户必须进行专门培训才能使用高性能计算资源进行作业计算,其操作复杂性导致用户使用不便。
传统的高性能实验室共享性差,各学院之间无法相互使用,存在闲置资源浪费。同时传统的高性能计算管理软件在进行任务作业时,用户作业一旦分配到请求的节点上,便独占该节点,在用户作业未完成的情况下,即使该用户作业目前用不到该节点的全部物理资源,其他的用户也无法使用直至该用户作业全部完成,这势必造成资源利用率低下,使其往往无法达到最佳性能[1]。
传统的高性能计算机在执行计算任务时,一旦某台物理服务器出现故障,则该服务器上的所有作业将会被中断,用户不得不重新部署计算作业,这势必会耽误实验进程,给用户造成不便。而且随着计算任务在集群上运行的时间越长,其作业被中断的概率就会越大,使得用户进行作业计算时的数据和服务安全性无法保证。
云计算(Cloud Computing)是一种基于互联网的计算方式,利用虚拟化技术将计算、存储、网络等资源集成为一种类似于“云”的可配置的虚拟化资源池,使用户无需关心底层构造,按需获取想要的软硬件资源和服务。
简单来说,云计算就是把许多计算、存储、网络等资源集合起来,通过虚拟化软件进行自动化管理,让每一个用户都可以通过网络使用到庞大的计算资源和数据中心。
利用云计算技术建设高校高性能计算云实验室具有如下优势:
1) 成本优势。学校建设校级高性能计算云实验室,各学院老师均可以通过网络访问高性能计算云资源进行作业,避免重复建设,有效降低建设成本。同时高性能计算云可以根据用户的作业情况动态调整计算资源,在用户释放虚拟机后能动态调整剩余虚拟机至同一台物理服务器上,节约数据中心用电,降低运行成本。
2) 易用性好。高性能计算云具有良好的用户交互界面,底层计算、存储、网络等资源对用户透明,用户无须关心这些资源采取的设备型号、复杂的内部结构、实现的方法和地理位置。支持多用户、多任务使用。同时通过虚拟机镜像的保存可以为用户提供特定的操作系统和运行环境,用户无需重复搭建便可进行作业计算,从而使用户脱离复杂的环境配置工作,专注进行科学研究,具有良好的易用性。
3) 可靠性高。高性能计算云通过网络冗余机制实现高可靠性,一旦某台物理服务器发生故障,系统会自动将该服务器上的虚拟机迁移至正常的物理服务器上,任务运行不会中断,具有较高的容错性。同时系统还会对底层的CPU、存储、网络等资源进行全方位监控,用户数据实时存储云端,用户也可以使用快照技术对虚拟机进行备份,确保数据安全。
4) 支持弹性管理。对实验室管理人员来讲,资源池可以无限地增减和更换设备,统一管理、动态调度以满足不同用户的需求。对用户来讲,“云”的规模可以动态伸缩,当用户在进行高性能计算作业时,虚拟计算集群可以随着计算量的变化灵活地扩大或者缩小集群规模,支持资源弹性管理。同时在高性能计算云中,用户的虚拟机具有隔离性,用户可以对其虚拟机上的操作系统和运行环境进行任意修改,而不影响底层物理服务器的参数配置。
云计算技术提供三种服务类型,分别为基础设施即服务(Infrastructure as a Service,IaaS)、平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。表1对这三种服务类型进行了详细对比[2]。
表1 IaaS、PaaS、SaaS比较
可以看出,PaaS是在虚拟的硬件架构之上,在软件之下为不同的开发及应用提供服务,与其他的服务最根本的区别是PaaS提供的是一个基础平台,而不是某种应用,它能够提供定制化研发的中间件平台,同时涵盖数据库和应用服务器等。结合高校高性能计算云实验室将要满足不同学院不同专业教师和学生多元化需求的特点,因此PaaS服务类型非常适用于高校高性能计算云实验室的建设。
通过对云计算技术和高性能计算的深入研究,结合高校实验室的具体情况,基于PaaS服务类型建立分层次的高性能计算云平台,如图1所示,高校高性能计算云平台的系统架构由下往上分为四层:分别是资源层、数据层、服务管理层和应用层[3]。
图1 系统架构图
资源层:该层为高性能计算云平台的最底层,提供各种软硬件资源。硬件资源主要包括集群功能节点、高性能计算专用节点、存储系统、网络系统等,形成硬件资源池,可以满足各类计算要求。软件资源除了必须的编译环境和并行库以外,还包括HPC基础软件环境、集群管理软件、集群监控软件、并行文件系统、节点操作系统等,形成软件资源池。该层通过虚拟化技术为上层提供资源服务。
数据层:该层为高性能计算云平台的中间层,对数据的查询、修改、增加、删除和存储等操作提供支持。高性能计算不仅要处理海量的数据,在计算过程中也会产生海量的数据,对这些数据的处理和存储就显得十分重要,因此该层的海量数据存储与处理技术对整个平台起着十分关键的作用[4]。
服务管理层:该层为高性能计算云平台的核心层,管理资源层的各类软件和硬件资源,为应用层提供计算服务。主要包括高性能计算并行计算服务管理、日志服务管理、高性能计算调度管理、安全服务管理及数据传输服务管理等。其中高性能计算调度管理包括基于优先级的资源分配策略、多级别资源分配策略、自适应资源分配策略等,合理调度可以有效提高整体的资源利用效率。
应用层:该层是整个高性能计算云平台与用户的交互层,为用户提供人机交互的图形化界面,向用户提供高性能计算服务。用户通过访问接口登录高性能计算云平台,提交资源申请,管理员分配虚拟机,用户上传程序代码和数据进行计算,计算完成后,将结果输出到用户指定的文件夹,用户可直接进行下载[5]。
利用云计算技术建设高校高性能计算云实验室可以很好地解决传统高校高性能计算操作复杂、资源利用率低下、可靠性不高等问题,改变了传统的高性能计算实验室运维方式,极大地方便了教师进行科研工作,能很好地推进高校的科研事业发展。本文重点就高校高性能计算云平台的体系架构设计进行了研究,但是在实际建设过程中虚拟化技术、海量数据处理技术以及资源调度策略等关键技术的应用还需要更进一步的研究。