WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:cluster:ceph

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

wiki:cluster:ceph [2018/06/16 21:28]
insolentbacon
wiki:cluster:ceph [2020/06/27 18:16]
Ligne 1: Ligne 1:
-====== Ceph ====== 
  
-À MiNET, depuis 2018, on utilise un cluster [[https://ceph.com|Ceph]] pour le stockage. 
-Ceph est une technologie de stockage développée par Red Hat (et d'autres acteurs comme Cisco & Canonical), qui permet de créer une grappe de serveur se comportant comme un SAN. 
- 
-D'après [[https://fr.wikipedia.org/wiki/Ceph|Wikipédia]]: 
-> Ceph est une plateforme libre de stockage distribué. Les objectifs principaux de Ceph sont d'être complètement distribué sans point unique de défaillance, extensible jusqu'à l'exaoctet et librement disponible. Les données sont répliquées, permettant au système d'être tolérant aux pannes. 
- 
-> Ceph fonctionne sur du matériel non spécialisé. Le système est conçu pour s'autoréparer et automatiser au maximum ses tâches administratives afin de réduire les coûts d'exploitation. 
- 
-Dans cet article, nous résumerons et vulgariserons Ceph, mais gardez à l'esprit que si vous avez une manipulation à faire, allez toujours consulter la [[http://docs.ceph.com/docs/master/|documentation Ceph en ligne]] ou //man ceph//. 
- 
-===== Le vocabulaire ===== 
- 
-Un [[http://docs.ceph.com/docs/jewel/man/8/ceph-osd/|OSD (Object Storage Daemon)]] est un daemon tournant sur les machines de stockage, qui est lié à un disque dur (mais il pourrait être lié à une partition ou même un fichier) et qui stocke à proprement parler les données contenues dans le stockage. 
- 
-Les [[http://docs.ceph.com/docs/jewel/man/8/ceph-mon/|mon (Monitors)]] sont des daemon qui gèrent ensemble l'état et les membres du cluster. Ce sont les premiers éléments que l'on contacte pour avoir les informations nécessaires pour localiser où sont stockées les données sur les OSDs 
- 
-[[http://docs.ceph.com/docs/mimic/rados/|RADOS (Reliable Autonomic Distributed Object Store)]] est le moteur de stockage utilisé derrière Ceph.  
- 
-[[http://docs.ceph.com/docs/mimic/rbd/|RBD (RADOS Block Device)]] est une bibliothèque permettant d'accéder en mode block (donc voir des disques et non pas des fichiers) aux données sur le cluster. 
- 
-![Schéma RADOS](http://docs.ceph.com/docs/giant/_images/stack.png) 
- 
-Nous avons donc plein d'OSD (un par disque) qui sont dans un gros cluster Ceph. Nous avons un __mon__ par machine de stockage qui permettent ensemble de gérer le cluster et d'y accéder. 
- 
-Chaque objet stocké dans ceph (donc nos disques) sont découpés en plein de petits "bouts" qui sont distribués pseudo aléatoirement sur tous les OSD. L'algorithme qui s'occupe de déterminer où mettre (et où accéder) les bouts sur les OSD s'appelle [[https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf|CRUSH (Controlled, Scalable, Decentralized Placement of Replicated Data)]]. 
- 
-Au moment où vous voulez accéder au disque de la VM XYZ, vous contactez les //mon//s pour qu'ils vous transmettent toutes les informations sur la topologie du cluster. Avec ces information, vous appliquez l'algorithme CRUSH, et vous déterminez la position de chaque "bout" d'objet sur les différents OSD. Une fois que c'est fait, vous contactez les différents OSD pour récupérer votre image. 
- 
-Concrètement, vous avez plusieurs //pool//s. Une pool est un espace dans lequel vous pouvez mettre des objets (genre des disques) et sur laquelle vous spécifiez différentes propriétés (comme par exemple le nombre de replications). On peut créer des pools pour différents types d'utilisation. 
- 
-En fait, plus précieusement, chaque pool a un nombre de [[http://docs.ceph.com/docs/jewel/rados/operations/placement-groups/|placement groups]] 
- (souvent appelées pgs). C'est une sorte de conteneur de données. Ainsi CRUSH permet de déterminer dans quels placement group est n'importe quel "bout" des disques. Ensuite, on fait la correspondance OSD <-> placement group pour récupérer les données. 
- 
-===== Les commandes usuelles ===== 
- 
-Lancez celle-ci en root sur un noeud de stockage. 
- 
-> ceph status 
-Permet de voir le status du cluster. (la commande la plus utile de toutes) 
- 
- 
-> ceph -w 
-Permet de voir le status + les événement arrivant sur le cluster 
- 
- 
-> ceph osd tree 
-Pour voir tous les OSDs 
- 
- 
-> ceph osd lspools 
-Pour voir toutes les pools 
- 
- 
-> rbd ls nom_d'une_pool 
-Pour voir toutes les block devices d'une pool 
- 
- 
-> rbd snap ls nom_d'une_pool/nom_d'un_block_device 
-Pour voir tous les snapshots d'un block device 
- 
-==== Remplacer un disque défaillant ==== 
- 
-Voir [[wiki:cluster:ceph:remplacement_disque|Remplacer un disque]] 
wiki/cluster/ceph.txt · Dernière modification: 2020/06/27 18:16 (modification externe)