浅谈Singularity容器

Singularity是一个专为高性能计算(HPC)设计的容器平台,提供可验证的再现性和安全性。与Docker不同,Singularity容器在HPC环境中具有更好的性能和兼容性,允许在不同系统上轻松运行和分享软件。Singularity强调简单、可移植性和可重现性,其工作流确保了在集群和工作站间无缝迁移计算任务。此外,SingularityHub提供了容器的存储和分享服务,促进科研成果的复现和传播。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.容器简介

        简而言之,容器是系统环境的封装。通常,容器技术被设计为解决企业的单一主要实例:微服务虚拟化。

        Docker是最广为人知和使用最多的容器平台主要为网络微服务虚拟化而设计, 方便创建、维护和分发容器图像;容器是可以再生的;易于安装、记录完善、标准化。由于这些优势,Docker得到了广泛的使用 。它对当地和私人资源非常有用。你可以使用Docker-hub 来开发和分享你的作品。如果您需要扩展到本地资源之外,这可能是一条死路!Docker 和其他以企业为中心的容器不是为传统 HPC 设计的,也不高效,甚至不兼容传统 HPC。没有 HPC 中心允许!

2.为什么要使用容器

          Unix 操作系统分为两个主要组件,内核空间和用户空间。内核与硬件对话,并提供核心系统功能。用户空间是大多数人最熟悉的环境。它是应用程序、库和系统服务运行的地方。

       传统上,您使用的操作系统具有内核和用户空间的固定组合。如果您可以访问运行 CentOS 的机器,那么您无法在其上安装为 Ubuntu 打包的软件,因为这些发行版的用户空间不兼容。安装同一软件的多个版本也可能非常困难,这可能需要随着时间的推移支持不同工作流程中的可重复性。

容器将用户空间变成一个可交换的组件。这意味着 Linux 操作系统的整个用户空间部分,包括程序、自定义配置和环境,可以独立于您的系统是否在其下运行 CentOS、Fedora 等。Singularity 容器将您需要的任何内容打包到一个可验证的文件中。

         软件开发人员现在可以将他们的堆栈构建到最适合他们需求的任何操作系统基础上,并创建可分发的运行时环境,这样用户就不必担心他们可能无法在他们的系统上满足的依赖关系和需求。

3.Singularity简介 

        Singularity 是一个容器平台。它允许您创建和运行以可移植和可重复的方式打包软件的容器。您可以在笔记本电脑上使用 Singularity 构建容器,然后在世界上许多最大的 HPC 集群、本地大学或公司集群、单个服务器、云中或大厅下的工作站上运行它。您的容器是单个文件,您不必担心如何在每个不同的操作系统上安装所需的所有软件。

4.为什么要使用Singularity

        Singularity 旨在以简单、可移植和可重现的方式在 HPC 集群上运行复杂的应用程序。它最初是在劳伦斯伯克利国家实验室开发的,很快在其他 HPC 站点、学术站点和其他地方流行起来。Singularity 是一个开源项目,拥有一个由开发人员和用户组成的友好社区。用户群继续扩大,Singularity 现在在许多工作领域的工业和学术界使用。

        Singularity 专注于:

  • 可验证的再现性和安全性,使用加密签名、不可变的容器图像格式和内存解密。
  • 默认情况下集成而不是隔离。默认情况下,轻松利用集群或服务器上的 GPU、高速网络、并行文件系统。
  • 计算的移动性。单一文件 SIF 容器格式易于传输和共享。
  • 一个简单、有效的安全模型。您在容器内部和外部是同一用户,默认情况下无法在主机系统上获得额外权限

5.Singularity容器的工作流

6.虚拟机、容器、Singularity架构比较

6.1虚拟机架构

        在虚拟机中运行的应用程序必须遍历冗余的代码路径和仿真的性能成本。技术已经弥补了许多性能差距,但是在虚拟机上评估应用程序性能时,存在相当大的开销和冗余。容器确实是一种更有效的虚拟化机制,但在隔离方面可能没有同样的信心。

 6.2容器架构

        容器技术利用主机的内核,因此能够运行与本机应用程序具有相同性能特征的被包含的应用程序。理论上有一个小的性能损失,有时被认为是更高效的虚拟机技术.

6.3 Singularity架构 

        Singularity 不是围绕微服务进程隔离的思想设计的。因此,它使用最少数量的名称
空间来实现其主要设计目标。这使得Singularity 比完全隔离的容器平台占用空
间更小,性能潜力更大,集成更容易。

7.Singularity Hub

        Singularity引导定义被提交并推送到 GitHub库(名为“奇点”) GitHub通过一个 web hook与 Singularity Hub通信,它排队等待通过持续集成来构建。一旦建成,最终产品将存储在谷歌云中,可供访问。该容器将被存档,并且可以/应该在您的科学出版物中引用,以便其他人可以复制和利用您的工作。

8.参考资料:

1.Introduction to Singularity — Singularity container 3.6 documentation

2.《SingularityContainers for Science》

https://git.its.aau.dk/CLAAUDIA/docs_aicloud/raw/commit/79165e32ad24cd933dc38bf58c4b60cf6f74f3a0/aicloud_slurm/refs/GMKurtzer_Singularity_Keynote_Tuesday_02072017.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值