coreos / torus

Torus Distributed Storage
https://coreos.com/blog/torus-distributed-storage-by-coreos.html
Apache License 2.0
1.78k stars 172 forks source link

Fault Sets in Torus #298

Closed akamalov closed 8 years ago

akamalov commented 8 years ago

This is a question.

Question:

Let's say I have three racks of servers, each containing 40 servers. I want to run Torus across all of them. I would like to have 3 copies of data and want to place each copy in unique rack. Does Torus have a concept of Fault Zones where I can specify which node belongs to which fault zone and Torus would automatically select nodes in unique fault zone to store data? (a la ScaleIO) ? I am trying to avoid a scenario where Torus would pick nodes in the same rack unit.

barakmich commented 8 years ago

Great question. There is a plan for exactly this on our relatively short roadmap.

The trick is to teach the hash ring about these sorts of constraints -- eg, "replicate three times, all on different racks". In fact, rack awareness is how I usually formulate this in examples for design :)

The planning for this is #172, which I'm going to merge this into; as well as naming that one better. Ring Trees may be how this accomplished, but the bug should suggest what the motivation is as well!