CRUSH (Controlled Replication Under Scalable Hashing)

CRUSH (Controlled Replication Under Scalable Hashing) is een hash-gebaseerd algoritme om te berekenen hoe en waar gegevens moeten worden opgeslagen en opgehaald in een gedistribueerd object-gebaseerd opslagcluster.

CRUSH verdeelt gegevens gelijkmatig over beschikbare object-opslagapparaten op wat vaak wordt beschreven als een pseudo-willekeurige manier. De verdeling wordt geregeld door een hiërarchische clusterkaart, een zogenaamde CRUSH-kaart. De map, die door de opslagbeheerder kan worden aangepast, informeert het cluster over de indeling en capaciteit van nodes in het opslagnetwerk en specificeert hoe redundantie moet worden beheerd. Door clusterknooppunten te laten berekenen waar een gegevensitem is opgeslagen, vermijdt CRUSH de noodzaak om gegevenslocaties in een centrale directory op te zoeken. CRUSH maakt het ook mogelijk om nodes toe te voegen of te verwijderen, waarbij zo min mogelijk objecten worden verplaatst terwijl de balans in de nieuwe clusterconfiguratie behouden blijft.

CRUSH is ontworpen voor Ceph, een open source software die is ontworpen om object-, blok- en bestand-gebaseerde opslag te bieden onder een verenigd systeem.Omdat CRUSH clients direct laat communiceren met opslagapparaten zonder de noodzaak van een centrale index-server om data-object locaties te beheren, kunnen Ceph clusters zeer snel gegevens opslaan en ophalen en vrij eenvoudig op- of afschalen.