I've been trying to wrap my head around crush rules, and I need some help/advice.  I'm thinking of using erasure coding instead of replication, and trying to understand the possibilities for planning for failure cases.

For a simplified example, consider a 2 level topology, OSDs live on hosts, and hosts live in racks.  I'd like to set up a rule for a 6+3 erasure code that would put at most 1 of the 9 chunks on a host, and no more than 3 chunks in a rack (so in case the rack is lost, we still have a way to recover).  Some racks may not have 3 hosts in them, so they could potentially accept only 1 or 2 chunks then.  How can something like this be implemented as a crush rule?  Or, if not exactly this, something in this spirit?  I don't want to say that all chunks need to live in a separate rack because that is too restrictive (some racks may be much bigger than others, or there might not even be 9 racks).



ceph-users mailing list

Reply via email to