Keepstore can store data in local and network-attached POSIX filesystems.
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
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.