If you use GlusterFS, you know that there are several types of volumes you can create:
- Distributed – Distributes files throughout the bricks in the volume.
- Replicated – Replicates files across bricks in the volume.
- Striped – Stripes data across bricks in the volume.
- Distributed Striped – Distributes data across striped bricks in the volume.
- Distributed Replicated – Distributes files across replicated bricks in the volume.
In GlusterFS, unlike most similar systems, these two types of data-placement decisions are kept completely separate. Distribution, which places each file in exactly one place for the purpose of aggregating capacity within a single namespace, is provided by the DHT translator. Replication, which places each file in N places for improved availability, is provided by the AFR translator.
The relationship between DHT and AFR can be viewed from two opposite perspectives – the configuration order and the execution order. If you hear someone refer to “distribute-first” or “replicate-first” that generally refers to the configuration order.