CEPH examples de configurations

ceph est un logiciel permettant d'effectuer du stockage d'une maniere repartie sur plusieurs serveurs. La configuration de celui-ci n'est pas une chose simple car elle dépend de l'infrastructure dont on dispose. les explications ici ont été fait sur un ou plusieurs serveurs proxmox car ceph y est simple d'installation. J'ai écris aussi cette entrée de blog car il n'y a pas beaucoup de ressources sur ceph en francais sur la facon de réfléchir et penser sur la facon de stocker les données.

La premiere chose a savoir est qu'il faut penser a 2 choses :

  • la declaration d'un espace de stockage (ceph denome ceci 'pool')
  • comment cet espace de stockage doit etre répliquer afin de ne pas perdre de données. (la crushmap)

1 exemple : un serveur avec 2 disques. par defaut ceph considère qu'un bloc de donnée doit etre répartie 3 fois afin d'eviter de le perdre en cas de probleme avec un disque ou un host. dans cet example le serveur aura 1 monitor et 1 manager. les 2 disques sont les 2 osd disponibles pour l'infrastructure. (en plus de celui présent pour faire fonctionner le systeme proxmox).

Dans ce cas precis, ceph fonctionne comme du RAID-1, les données sont présentent sur les 2 disques, le pool doit donc etre configuré en min-rep=1 et max-rep=2. il faut aussi modifier la crushmap afin d'indiquer pour le pool que celui-ci doit répliquer les données non pas entre les hosts (nous n'avons qu'un seul serveur) mais entre les osd. cela se fait de la maniere suivante :

rule monPool {
 ruleset 1
 type replicated
 step take default
 step choose firstn 0 type osd
 step emit
}

la valeur 0 signifie que l'on prend l'ensemble des osd disponible (si il y a une valeur alors cela replique les données que sur le nombre voulu et donc prend la main sur la configuration du pool).

Si l'on veux etre dans la configuration d'un pool par defaut (3 copies avec minimum 2 présentent) il nous faudrait 3 disques pour les osd sur le serveur dans ce cas le pool pourra etre configuré en 3/2 (si un disque tombe il reste 2 copies de la données).

autre exemple : 4 serveurs répartie 2 et 2 dans 2 salles differentes avec le meme nombre de disques dedié aux osd (c'est tres important d'avoir la meme quantité de stockage sur chaque serveur d'un cluster ceph).

Ici il faut reflechir a ce qui peux etre innaccessible. Il peux y avoir un probleme avec un disque, un serveur ou carrement avec une salle complete (genre probleme electrique ou coupure du reseau sur une salle, fortement possible lors d'une mise a jours d'un element du reseau).

Nous allons donc installer un monitor sur chaque serveur afin de palier au probleme de reboot d'un serveur ainsi si un serveur tombe, il faut aussi un manager dans chaque salle de maniere a avoir toujours un manager de disponible. cependant en cas de perte d'une salle les 2 monitors present ne pourront pas elire un maitre car il faut un nombre impaire pour départager le vote. Il est donc necessaire d'installer un monitor sur un serveur connecter aux 2 salles (generalement dans un autre local technique connecter doublement au 2 salles centrales ou se trouve les serveurs ceph. Sur ce serveur on installe uniquement un monitor et un manager de secours. La necessité d'un nombre impaire de monitor est donc dans ce cas bien visible. Si une salle tombe nous avons 3 monitors et donc le quorum est ok.

dans notre cas precis et afin d'avoir une securisation des données, il faut que notre pool soit configure en 4/2. chaque données sera repliquer sur chaque serveur dans les 2 salles. si une salle tombe ceph continura a fonctionner car il y aura toujours 3 monitors et 2 copie de la données sur chaque serveur de la salle qui restera vivante (ici peu importe le disque sur le serveur, de toute facon il y a asser de copies au cas ou un disque tombe)

En cas de perte d'une salle pas de probleme, il y a 3 monitor actif et 2 copies de données (une sur chaque serveur)

En cas de perte d'un serveur pas de probleme il y aura toujours 3 copies présentes

En cas de perte d'un disque pas de probleme non plus il y aura toujours 3 copies présentes

du coup la crushmap sera plutot la suivante (j'ecris ici ce que proxmox ne configura pas par defaut et donc qu'il faudra rajouter a la main) :

room salle1 {
 alg straw2
 hash 0
 item serveur1 weight <valeur en terabits 1T = 1.00000>
 item serveur2 weight <valeur en terabits 1T = 1.00000>
}
room salle2 {
 alg straw2
 hash 0
 item serveur3 weight <valeur en terabits 1T = 1.00000>
 item serveur4 weight <valeur en terabits 1T = 1.00000>
}
root default {
 alg straw
 hash 0
 item salle1 weight <valeur en terabits 1T = 1.000>
 item salle2 weight <valeur en terabits 1T = 1.000>
}
# rules
rule monPool {
 ruleset 1
 type replicated
 step take default
 step choose firstn 2 type room
 step chooseleaf firstn 2 type host
 set emit
}

</code> ici nous voulons 2 copies allants dans chaque salles et au moins 2 copies sur chaque host. le pool etant configuré en 4 copies avec 2 copies minimum.

docker et kubernet

Préambule De plus en plus d'application sont utilisable dans des environnements conteneurisé. En gros un développeur développe une application et afin de la rendre utilisable il faut la mettre dans un environnement qui a été préalablement configuré par un administrateur. Docker est la pour définir  […]

Lire la suite

CEPH a la main

Préalable Juste ici quelques notes pour installer et gérer la technologie de stockage répartie ceph. Cette technologie est surtout utiliser conjointement avec proxmox afin de stocker les environnements de machines virtuelles. On peux cependant monter 'a la main' ce systeme et le superviser avec le  […]

Lire la suite

Projet : Flipper - Réflexions

Genèse Après avoir construit une borne d'arcade avec les enfants, il semble que l'étape suivante soit le flipper (ou plus communément appelé le pincab, flipper étant le nom du dauphin de la série télé éponyme). Il faut tous d'abord (je pense) avoir un retour sur l'historique de ces machines, pour  […]

Lire la suite

Projet : Borne d'arcade - Les grandes étapes

Recherches des idées et des HOW-TO La première chose à faire à été de regarder si sur Internet on trouve des tutoriels, de l’aide ou des personnes ayant déjà réalisé ce genre de chose. Avec la modernité on trouve maintenant des vidéos ‘tutoriels’ pas vraiment le support idéal pour suivre un plan ou  […]

Lire la suite

Démystification des ROMS MAME

Article trouvé sur le net et traduit de l’anglais afin de comprendre ou/quoi/et comment télécharger les ROMS d’arcades afin de les faires tourner sur un émulateur.

Lire la suite

Qu'est-ce que MAME

Mame (Multiple Arcade Machine Emulator) est un émulateur de jeux d’arcade, c’est à dire un programme qui reproduit le plus fidèlement possible un jeu d’arcade sur le PC. Mame a été créé début 1997 par Nicolas Salmoria. L’émulateur est des le départ open source, c’est à dire que tout le monde peut  […]

Lire la suite

Projet : Borne d'arcade - La génèse

Objectif construire une borne d’arcade avec les enfants pour que la famille (et les voisins) s’amuse tout en remplaçant le meuble de stockage “apéro/digestif”. Joindre l’utile à l’agréable en somme. La section 'Arcade' du site est découpé en 3 grandes partie. Le préambule explique un peu l'histoire  […]

Lire la suite

Haut de page