Shifter: 面向高性能计算的容器(3)

Shifter 提供基本的卷 (volume) 管理功能,可以将主机目录映射到容器中。但是目前难以自动将网络存储映射进容器。我们可以利用 Shifter 提供的可定制回调脚本 sitePreMountHook 来处理。用户可以通过自定义脚本,将网络文件系统挂载到容器里面。

LSF 中使用 Shifter

Shifter 是一个命令行工具,因此可以直接在作业提交中使用,作为作业命令行的一部分。

清单 6. 提交作业

1

2

 

$ bsub shifter --image=busybox ./job.sh

Job <1> is submitted to default queue <normal>.

 

LSF 提供了一种更透明的容器使用方式。系统管理员配置 Shifter 的应用描述文件 (application profile)定制应用所使用的容器镜像名。用户直接提交作业到应用描述就可以将应用运行在容器里面。

清单 7. 查看 Application Profile 并提交作业

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

$ bapp -l container

 

APPLICATION NAME: container

 -- Container application profile to running jobs in Shifter with ubuntu image

 

STATISTICS:

   NJOBS    PEND      RUN    SSUSP    USUSP      RSV

       0        0        0        0        0        0

 

PARAMETERS:

 

CONTAINER: shifter [image (ubuntu)]

 

$ bsub -app container ./job.sh

Job <1> is submitted to default queue <normal>.

 

这种对用户的透明性为管理员提供了灵活管理方式。管理员可以根据需要,为作业配置不同的容器实现。LSF 不仅仅支持 Shifter,同时提供了 Docker 和 Singularity 的支持,只需要配置相应的应用描述就可以了。

结论

Shifter 是一种适用于高性能计算环境的开源容器技术。它简单易用,通过重用 Docker 镜像,提供了便捷的软件部署能力和丰富的现存软件镜像集。Shifter 通过网络文件系统统一管理本地镜像,本地主机以只读方式映射使用镜像,减少对网络文件系统原数据访问的频率,充分发挥网络存储性能。容器本身通过轻量级的命名空间隔离,减少容器之间的影响,便于和集群管理系统软件的集成使用。不过,在容器的隔离性,存储管理和镜像管理工具上,还有不少的局限,需要进一步增强。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/59069fa37b5a2447f0353d5e4ca3b8d5.html