Merge branch '18794-config-health'
[arvados.git] / doc / install / crunch2 / install-compute-node-singularity.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Set up a compute node with Singularity
5 ...
6 {% comment %}
7 Copyright (C) The Arvados Authors. All rights reserved.
8
9 SPDX-License-Identifier: CC-BY-SA-3.0
10 {% endcomment %}
11
12 {% include 'notebox_begin_warning' %}
13 This page describes the requirements for a compute node in a Slurm or LSF cluster that will run containers dispatched by @crunch-dispatch-slurm@ or @arvados-dispatch-lsf@. If you are installing a cloud cluster, refer to "Build a cloud compute node image":{{ site.baseurl }}/install/crunch2-cloud/install-compute-node.html.
14 {% include 'notebox_end' %}
15
16 {% include 'notebox_begin_warning' %}
17 These instructions apply when Containers.RuntimeEngine is set to @singularity@, refer to "Set up a compute node with Docker":install-compute-node-docker.html when running @docker@.
18 {% include 'notebox_end' %}
19
20 # "Introduction":#introduction
21 # "Install python-arvados-fuse and crunch-run and squashfs-tools":#install-packages
22 # "Set up Singularity":#singularity
23 # "Singularity mksquashfs configuration":#singularity_mksquashfs_configuration
24
25 h2(#introduction). Introduction
26
27 Please refer to the "Singularity":{{site.baseurl}}/architecture/singularity.html documentation in the Architecture section.
28
29 This page describes how to configure a compute node so that it can be used to run containers dispatched by Arvados on a static cluster. These steps must be performed on every compute node.
30
31 {% assign arvados_component = 'python-arvados-fuse crunch-run squashfs-tools' %}
32
33 {% include 'install_packages' %}
34
35 {% include 'install_cuda' %}
36
37 h2(#singularity). Set up Singularity
38
39 Follow the "Singularity installation instructions":https://sylabs.io/guides/3.7/user-guide/quick_start.html. Make sure @singularity@ and @mksquashfs@ are working:
40
41 <notextile>
42 <pre><code>$ <span class="userinput">singularity version</span>
43 3.7.4
44 $ <span class="userinput">mksquashfs -version</span>
45 mksquashfs version 4.3-git (2014/06/09)
46 [...]
47 </code></pre>
48 </notextile>
49
50 Then update @Containers.RuntimeEngine@ in your cluster configuration:
51
52 <notextile>
53 <pre><code>      # Container runtime: "docker" (default) or "singularity"
54       RuntimeEngine: singularity
55 </code></pre>
56 </notextile>
57
58 {% include 'singularity_mksquashfs_configuration' %}
59
60 h2(#singularity_loop_device_errors). Singularity loop device errors
61
62 With singularity v3.9.1 and earlier, containers may fail intermittently at startup with an error message similar to the following in the container log's @stderr.txt@ (line breaks added):
63
64 <notextile>
65 <pre><code>FATAL:   container creation failed:
66  mount /proc/self/fd/3->/usr/local/var/singularity/mnt/session/rootfs error:
67  while mounting image /proc/self/fd/3:
68  failed to find loop device:
69  could not attach image file to loop device:
70  failed to set loop flags on loop device:
71  resource temporarily unavailable
72 </code></pre>
73 </notextile>
74
75 This problem is addressed in singularity v3.9.2. For details, please see "Arvados issue #18489":https://dev.arvados.org/issues/18489 and "singularity PR #458":https://github.com/sylabs/singularity/pull/458.