15964: Rewrite docker tutorial to reflect current best practices
[arvados.git] / doc / install / configure-fs-storage.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Configure filesystem storage
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 Keepstore can store data in local and network-attached POSIX filesystems.
13
14 h2. Setting up filesystem mounts
15
16 Volumes are configured in the @Volumes@ section of the cluster configuration file.  You may provide multiple volumes for a single keepstore process to manage multiple disks.  Keepstore distributes blocks among volumes in round-robin fashion.
17
18 {% include 'assign_volume_uuid' %}
19
20 Note that each volume entry has an @AccessViaHosts@ section indicating which Keepstore instance(s) will serve that volume.  In this example, keep0 and keep1 each have their own data disk.  The @/mnt/local-disk@ directory on keep0 is volume @ClusterID-nyw5e-000000000000000@, and the @/mnt/local-disk@ directory on keep1 is volume @ClusterID-nyw5e-000000000000001@ .
21
22 <notextile>
23 <pre><code>    Volumes:
24       <span class="userinput">ClusterID</span>-nyw5e-<span class="userinput">000000000000000</span>:
25         AccessViaHosts:
26           "http://<span class="userinput">keep0.ClusterID.example.com</span>:25107": {}
27         Driver: <span class="userinput">Directory</span>
28         DriverParameters:
29           # The directory that will be used as the backing store.
30           Root: <span class="userinput">/mnt/local-disk</span>
31
32         # How much replication is performed by the underlying
33         # filesystem.  (for example, a network filesystem may provide
34         # its own replication).  This is used to inform replication
35         # decisions at the Keep layer.
36         Replication: 1
37
38         # If true, do not accept write or trash operations, only
39         # reads.
40         ReadOnly: false
41
42         # <a href="{{site.baseurl}}/admin/storage-classes.html">Storage classes</a> to associate with this volume.
43         StorageClasses: null
44
45       <span class="userinput">ClusterID</span>-nyw5e-<span class="userinput">000000000000001</span>:
46         AccessViaHosts:
47           "http://<span class="userinput">keep1.ClusterID.example.com</span>:25107": {}
48         Driver: <span class="userinput">Directory</span>
49         DriverParameters:
50           Root: <span class="userinput">/mnt/local-disk</span>
51 </code></pre></notextile>
52
53 In the case of a network-attached filesystem, the @AccessViaHosts@ section can have multiple entries. If the filesystem is accessible by all keepstore servers, the AccessViaHosts section can be empty, or omitted entirely.  In this example, the underlying storage system performs replication, so specifying @Replication: 2@ means a block is considered to be stored twice for the purposes of data integrity, while only stored on a single volume from the perspective of Keep.
54
55 <notextile>
56 <pre><code>    Volumes:
57       <span class="userinput">ClusterID</span>-nyw5e-<span class="userinput">000000000000002</span>:
58         AccessViaHosts:
59           # This section determines which keepstore servers access the
60           # volume. In this example, keep0 has read/write access, and
61           # keep1 has read-only access.
62           #
63           # If the AccessViaHosts section is empty or omitted, all
64           # keepstore servers will have read/write access to the
65           # volume.
66           "http://<span class="userinput">keep0.ClusterID.example.com</span>:25107/": {}
67           "http://<span class="userinput">keep1.ClusterID.example.com</span>:25107/": {ReadOnly: true}
68         Driver: <span class="userinput">Directory</span>
69         DriverParameters:
70           Root: <span class="userinput">/mnt/network-attached-filesystem</span>
71         Replication: 2
72 </code></pre></notextile>