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 |