Configure filesystem storage

Keepstore can store data in local and network-attached POSIX filesystems.

Setting up filesystem mounts

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.

Note that each volume has a UUID, like zzzzz-nyw5e-0123456789abcde. You assign these manually: replace zzzzz with your Cluster ID, and replace 0123456789abcde with an arbitrary unique string of 15 alphanumerics. Once assigned, UUIDs should not be changed.

Essential configuration values are highlighted in red. Remaining parameters are provided for documentation, with their default values.

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 .

    Volumes:
      ClusterID-nyw5e-000000000000000:
        AccessViaHosts:
          "http://keep0.ClusterID.example.com:25107": {}
        Driver: Directory
        DriverParameters:
          # 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.
        Replication: 1

        # If true, do not accept write or trash operations, only
        # reads.
        ReadOnly: false

        # Storage classes to associate with this volume.
        StorageClasses: null

      ClusterID-nyw5e-000000000000001:
        AccessViaHosts:
          "http://keep1.ClusterID.example.com:25107": {}
        Driver: Directory
        DriverParameters:
          Root: /mnt/local-disk

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.

    Volumes:
      ClusterID-nyw5e-000000000000002:
        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://keep0.ClusterID.example.com:25107/": {}
          "http://keep1.ClusterID.example.com:25107/": {ReadOnly: true}
        Driver: Directory
        DriverParameters:
          Root: /mnt/network-attached-filesystem
        Replication: 2

Previous: Install Keepstore servers Next: Configure S3 object storage

The content of this documentation is licensed under the Creative Commons Attribution-Share Alike 3.0 United States licence.
Code samples in this documentation are licensed under the Apache License, Version 2.0.