---
layout: default
navsection: installguide
-title: Filesystem storage
+title: Configure filesystem storage
...
{% comment %}
Copyright (C) The Arvados Authors. All rights reserved.
h2. Setting up filesystem mounts
-Volumes are configured in the @Volumes@ section of the 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.
-
-<pre>
-Volumes:
-- # The volume type, indicates this is a filesystem directory.
- Type: Directory
-
- # The directory that will be used as the backing store.
- Root: /mnt/local-disk
-
- # How much replication is performed by the underlying filesystem.
- # (for example, a network filesystem may provide its own replication).
- # This is used to inform replication decisions at the Keep layer.
- DirectoryReplication: 1
-
- # If true, do not accept write or trash operations, only reads.
- ReadOnly: false
-
- # When true, read and write operations (for whole 64MiB blocks) on
- # an individual volume will queued and issued serially. When
- # false, read and write operations will be issued concurrently.
- #
- # May improve throughput if you experience contention when there are
- # multiple requests to the same volume.
- #
- # When using SSDs, RAID, or a parallel network filesystem, you probably
- # don't want this.
- Serialize: false
-
- # Storage classes to associate with this volume. See "Storage
- # classes" in the "Admin" section of doc.arvados.org.
- StorageClasses: null
-
- # Example of a second volume section
-- DirectoryReplication: 2
- ReadOnly: false
- Root: /mnt/network-disk
- Serialize: false
- StorageClasses: null
- Type: Directory
-</pre>
+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.
+
+{% include 'assign_volume_uuid' %}
+
+Note that each volume has an AccessViaHosts section indicating that (for example) keep0's /mnt/local-disk directory is volume 0, while keep1's /mnt/local-disk directory is volume 1.
+
+<notextile>
+<pre><code>Clusters:
+ <span class="userinput">uuid_prefix</span>:
+ Volumes:
+ <span class="userinput">uuid_prefix</span>-nyw5e-<span class="userinput">000000000000000</span>:
+ AccessViaHosts:
+ "http://<span class="userinput">keep0.uuid_prefix.example.com</span>:25107": {}
+ Driver: Directory
+ DriverParameters:
+ # The directory that will be used as the backing store.
+ Root: /mnt/local-disk
+
+ # When true, read and write operations (for whole 64MiB
+ # blocks) on an individual volume will queued and issued
+ # serially. When false, read and write operations will be
+ # issued concurrently.
+ #
+ # May improve throughput if you experience contention when
+ # there are multiple requests to the same volume.
+ #
+ # When using SSDs, RAID, or a shared network filesystem, you
+ # probably don't want this.
+ Serialize: false
+
+ # How much replication is performed by the underlying
+ # filesystem. (for example, a network filesystem may provide
+ # its own replication). This is used to inform replication
+ # decisions at the Keep layer.
+ Replication: 1
+
+ # If true, do not accept write or trash operations, only
+ # reads.
+ ReadOnly: false
+
+ # Storage classes to associate with this volume. See "Storage
+ # classes" in the "Admin" section of doc.arvados.org.
+ StorageClasses: null
+
+ <span class="userinput">uuid_prefix</span>-nyw5e-<span class="userinput">000000000000001</span>:
+ AccessViaHosts:
+ "http://keep1.<span class="userinput">uuid_prefix</span>.example.com:25107": {}
+ Driver: Directory
+ DriverParameters:
+ Root: /mnt/local-disk
+</code></pre></notextile>
+
+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.
+
+<notextile>
+<pre><code>Clusters:
+ <span class="userinput">uuid_prefix</span>:
+ Volumes:
+ <span class="userinput">uuid_prefix</span>-nyw5e-<span class="userinput">000000000000002</span>:
+ AccessViaHosts:
+ # This section determines which keepstore servers access the
+ # volume. In this example, keep0 has read/write access, and
+ # keep1 has read-only access.
+ #
+ # If the AccessViaHosts section is empty or omitted, all
+ # keepstore servers will have read/write access to the
+ # volume.
+ "http://<span class="userinput">keep0.uuid_prefix.example.com</span>:25107/": {}
+ "http://<span class="userinput">keep1.uuid_prefix.example.com</span>:25107/": {ReadOnly: true}
+ Driver: Directory
+ DriverParameters:
+ Root: /mnt/network-attached-filesystem
+ Replication: 2
+</code></pre></notextile>