如何在HPC集群上运行奇点容器?- 错误:无法创建用户命名空间:用户命名空间已禁用

Ziz*_*i96 3 sudo hpc docker dockerfile singularity-container

我正在尝试在 HPC 集群上启动奇点容器。我一直在本地运行projectNetv2.sif 和沙箱,没有任何问题。将它们导出到 HPC 后,出现以下错误。

(singularity) [me@hpc Project]$ ls
examples  projectnet_image_v2.tar.gz  projectnet_sandboxv2  projectNetv2.sif
(singularity) [me@hpc Project]$ singularity run projectNetv2.sif
INFO:    Converting SIF file to temporary sandbox...
FATAL:   while extracting SimNetv21.sif: root filesystem extraction failed: extract command failed: ERROR  : Failed to create user namespace: user namespace disabled
: exit status 1

##Attempting to run sandbox
(singularity) [me@hpc Project]$ singularity run projectnet_sandboxv2/
ERROR  : Failed to create user namespace: user namespace disabled
Run Code Online (Sandbox Code Playgroud)

谁能建议我如何启用用户命名空间?或者在没有用户名空间的情况下运行 sif,因为我没有 sudo 权限。

tsn*_*lan 5

简短回答:

欺骗您的 HPC 管理员安装 Singularity

更长的答案:

有两种安装 Singularity 的方法:特权安装或非特权/用户命名空间安装。第一种方法是默认方法,但需要 sudo/root 才能执行某些操作(大多数情况下singularity build)。后者不需要 root,但有其他系统要求。为了使 Singularity 按预期运行,可能需要额外的操作系统配置。

除了特权/非特权安装之外,集群中的磁盘存储通常位于 NFS 或其他网络/分布式文件系统上,因此所有节点都可以访问相同的数据。不幸的是,正如任何涉及到 NFS 的情况一样,NFS 很可能是导致问题的原因。Singularity 的核心功能依赖 SUID,但出于(相当好的)安全原因,默认情况下 NFS 上禁用 SUID。集群管理员不太可能启用该选项,因此您最好的选择是要求他们将其本地安装在您需要的任何计算机/交互式节点上。