Ceph a besoin de plusieurs ordinateurs connectés ensemble. Ensemble, ces ordinateurs sont appelés cluster (littéralement : « pile », mais dans ce contexte cela désigne un réseau de plusieurs ordinateurs). Chaque ordinateur intégré à ce système est appelé un node (nœud).
Dans cette grappe, les tâches suivantes doivent être distribuées entre les nodes :
- Monitor Nodes : ces nodes gèrent l’état des différents nodes dans le cluster, en particulier l’aperçu des éléments service Manager, service Object Storage et serveurs de métadonnées (MDS) ; un minimum de trois monitor nodes est recommandé pour garantir la fiabilité.
- Manager : ces nodes gèrent l’état de l’utilisation de la mémoire, de la charge du système et de l’exploitation des nodes.
- Ceph OSD (Object Storage Devices) : il s’agit des services de base pour l’administration des fichiers ; ils sont responsables de l’enregistrement, de la duplication et de la restauration des données. Un minimum de trois OSD est recommandé dans le cluster.
- Serveurs de métadonnées (MDS) : ces nodes enregistrent les métadonnées, c’est-à-dire les chemins de stockage, le nom des fichiers et l’horodatage des fichiers stockés dans le CephFS pour des raisons de performance ; ils sont conformes aux normes POSIX et peuvent être interrogés à l’aide de programmes d’invite de commande Unix tels que ls, find et like.
Un algorithme appelé CRUSH (Controlled Replication Under Scalable Hashing) constitue le cœur du stockage des données. À l’aide d’un tableau de répartition intitulé CRUSH Map, celui-ci est en mesure de trouver un OSD avec le fichier demandé.
Dans le cas de Ceph, la répartition des fichiers est effectuée de façon pseudo-aléatoire. Cela signifie qu’ils sont apparemment stockés de façon aléatoire. Dans les faits, CRUSH calcule toutefois l’emplacement de stockage sur la base de critères définis. Dans le cadre de ces critères, les fichiers sont également dupliqués et stockés sur des médias séparés physiquement. L’administrateur du réseau peut définir les spécifications correspondantes.
Les fichiers sont distribués dans des Placement Groups. Dans ce cadre, le nom du fichier est traité comme une valeur de hachage et un autre critère de répartition est notamment le nombre de copies d’un fichier.