基于容器构建高性能计算集群

2019-04-27 01:43杨寅冬
青年与社会 2019年8期
关键词:容器

摘 要:容器作为物理资源的逻辑抽象,资源占用少、部署方便,适合工作负载突变的互联网应用模式,如何解决HPC环境下的软件依赖问题,一直是计算系统管理员需要解决的问题。将服务发现的自动扩展特性与轻量级虚拟化工具Docker集成,在物理集群硬件上构建虚拟集群。通过对计算环境的隔离,弥补高性能计算环境对软件的依赖。通过实验证明,通过引入容器技术,可以解决高性能计算集群软件依赖问题。

关键词:高性能计算;容器;自动伸缩;服务发现

容器技术是一种操作系统层虚拟化技术,与传统的虚拟机技术不同,容器以进程的形式运行在宿主机操作系统中,具有快速部署、轻便灵活的优点,而高性能计算(HPC)是一项成熟的技术,它强调针对数字处理应用程序的并行性能。在HPC环境和应用程序中采用Docker工具是未来计算密集型应用程序和数据密集型应用程序资源集成的重要解决方案。

在传统的HPC集群中,我们经常会遇到软件版本和系统特性的冲突,如操作系统、库、内核等。为了解决这些问题,在计算资源上安装并提供了许多版本的软件或库。因此,这种方法将增加计算资源的系统/中间件的复杂性,进而损害系统的稳定性。系统管理员必须投入大量的精力来处理这种情况,而用户将面临复杂的应用程序移植环境。

为了解决这个问题,我们的工作提出了通过Docker容器构建一个虚拟HPC集群。利用容器技术的隔离特性,可以构造一个独立于其他集群实例的虚拟HPC集群。还可以根据需要扩展集群的规模。

一、容器在高性能计算中的应用

(一)HPC高性能能计算

目前,HPC集群通常运行在基于Unix/ linux的操作系统上,通过消息传递库(如消息传递接口)和共享内存指令(如用于并行计算作业的OpenMP)高速互连交换信息。一般来说,计算节点之间的带宽是影响并行计算性能的主要因素。通常使用网络的无限带宽或10gb级作为互连。互连越快,性能就越好。

(二)docker容器

Docker是一个开源项目,它是一个轻量级OS级虚拟化解决方案的实现。Docker采用的核心技术是Linux容器(LXC)和多层文件系统UnionFS(统一文件系统)。在LXC时代,IT技术人员使用cgroup、namespace和chroot来提供操作系统级虚拟化。但是,体系结构过于复杂,难以复制或重用。

Docker的目标是解决这个问题。通过封装,IT技术人员只需要关注容器的管理。Docker引擎将负责剩下的工作。应用程序环境完成后,可以将系统配置打包到Docker映像中,该映像可以在Docker Hub中发布和共享。因此,这些工作可以在社区之间共享,并节省大量重复的开发工作。反过来,应用程序的软件构建和部署可以加快。通过简单地遵循将软件和应用程序封装到服务中并通过容器进行部署的标准来部署软件和应用程序已经成为一种新的趋势。Docker引擎还将处理容器的互连和服务状态。这种系统架构被称为“微服务”。

通过采用容器技术,实现了一个具有自伸缩功能的虚拟HPC集群原型。证明了虚拟高性能计算的可行性集群,还可以使用此原型在特定应用程序的HPC基础设施之上构建定制的虚拟HPC集群。然而,性能一直是并行计算的一个重要问题。我们打算进一步研究这个原型的性能,包括HPC容器之间互连的影响。此外,为了方便该方法的使用,为了实现HPC-as-a-Service (HaaS)的目标,需要一个更强大的容器管理工具,如Docker Swarm或Kubernetes等容器集群架构。

参考文献

[1] https://github.com/hashicorp/consul-template.

[2] Containers & docker: How secure are they?https://blog.docker.com/2013/08/containers-docker-how-secure-are-they.Accessed,25,October,2014.

[3] Device whitelist controller. https://www.kernel.org/doc/Documentation/cgroups/devices.txt. [Accessed 12 October 2014].

[4] A.Kivity,Y.Kamay,D.Laor,and U.Lublin. KVM:the linux virtual machine monitor.In Proceedings of the Linux Symposium, volume 1,pages 225–230.2007.

[5] D.Merkel. Docker:Lightweight linux containers for consistent development and deployment. Linux J. 2014(239), Mar. 2014.

[6] P.Padala, X.Zhu,Z.Wang,S.Singhal,andK.G.Shin.Performance evaluation of virtualization technologies for server consolidation. HP Laboratories,2007.

[7] 韓菲,张海飞,丁宏,张超峰,翁敏华,黄义煊.基于高性能计算的联想智能超算平台LiCO的设计与实现[J].软件工程,2019,22(02):38-41.

[8] 戴霖,高小渭,吴骞华.高性能计算平台构建技术研究[J].通讯世界,2019,26(01):127-129.

[9] 游伟倩,张予倩,盛乐标.高性能计算集群系统中的LDAP用户管理应用[J].电子技术与软件工程,2018(16):129-131.

作者简介:杨寅冬(1986.12- ),男,汉族,本科,实验师,安徽邮电职业技术学院计算机系,研究方向:计算机操作系统。

猜你喜欢
容器
Different Containers不同的容器
人心像一个容器
难以置信的事情
怎样量出4升水
液体对容器底及容器对桌面的压力和压强
直干蓝桉容器育苗基质的选择
氦容器的加工制造及安装