Crate crushtool [−] [src]
Decompile a ceph crushmap for fun and profit
CRUSH is a pseudo-random data distribution algorithm that efficiently distributes input values (typically, data objects) across a heterogeneous, structured storage cluster.
The algorithm was originally described in detail in this paper (although the algorithm has evolved somewhat since then): http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf
Structs
| Bucket | |
| CephBucket | |
| CephCrushMap | |
| CephDisk | |
| CephHost | |
| CephPool | |
| CrushBucketList | |
| CrushBucketStraw | |
| CrushBucketStraw2 | |
| CrushBucketTree |
CrushBucketTree is generally not used in Ceph because the algorithm is buggy. |
| CrushBucketUniform |
All items are equally weighted. |
| CrushMap |
CrushMap includes all buckets, rules, etc. |
| CrushRuleMask |
The rule mask is used to describe what the rule is intended for. Given a ruleset and size of output set, we search through the rule list for a matching rule_mask. |
| CrushRuleStep |
CRUSH uses user-defined "rules" to describe how inputs should be mapped to devices. A rule consists of sequence of steps to perform to generate the set of output devices. |
| Rule |
Enums
| BucketAlg | |
| BucketTypes | |
| CephBucketType | |
| CephVersion | |
| CrushHash | |
| EncodingError | |
| OpCode | |
| RuleType |
Functions
| decode_crushmap | |
| encode_crushmap | |
| set_tunables_argonaut |
Set the crush tunables to Argonaut |
| set_tunables_bobtail |
Set the crush tunables to Bobtail |
| set_tunables_firefly |
Set the crush tunables to Firefly |
| set_tunables_hammer |
Set the crush tunables to Hammer |
| set_tunables_jewel |
Set the crush tunables to Jewel |