CRUSH (replicación controlada con hash escalable)

CRUSH (replicación controlada bajo hash escalable) es un algoritmo basado en hash para calcular cómo y dónde almacenar y recuperar datos en un clúster de almacenamiento distribuido basado en objetos.

CRUSH distribuye los datos de manera uniforme entre los dispositivos de almacenamiento de objetos disponibles en lo que a menudo se describe como una forma pseudoaleatoria. La distribución está controlada por un mapa de clúster jerárquico llamado mapa CRUSH. El mapa, que puede personalizar el administrador de almacenamiento, informa al clúster sobre el diseño y la capacidad de los nodos en la red de almacenamiento y especifica cómo se debe administrar la redundancia. Al permitir que los nodos del clúster calculen dónde se ha almacenado un elemento de datos, CRUSH evita la necesidad de buscar ubicaciones de datos en un directorio central. CRUSH también permite agregar o eliminar nodos, moviendo la menor cantidad de objetos posible mientras se mantiene el equilibrio en la nueva configuración del clúster.

CRUSH fue diseñado para Ceph, un software de código abierto diseñado para proporcionar almacenamiento basado en objetos, bloques y archivos en un sistema unificado. Debido a que CRUSH permite a los clientes comunicarse directamente con los dispositivos de almacenamiento sin la necesidad de un servidor de índice central para administrar las ubicaciones de los objetos de datos, los clústeres de Ceph pueden almacenar y recuperar datos muy rápidamente y escalar hacia arriba o hacia abajo con bastante facilidad.