# CEPH : Architecture générale

## Programme

- CEPH
- VLAN
- Trunking
- Routage Inter-VLAN

## Objectifs

Nécessité du CEPH, son architecture, le rôle de CRUSH, des Pools, des PG. Distinguer les 3 services de stockage possibles. Connaître les bonnes pratiques.

### Pourquoi CEPH

Il peut continuer le stockage en cas de panne de disque/noeud/switch. Plus évolué que le RAID, il trouvera d'autres stockages en :
- scalant en ajoutant des machines
- ne se concentrant pas sur un SPOF
- utilisant du stockage bloc, fichier, ou l'objet
- équilibrant le stockage avec ce qu'il a à disposition

CEPH repose sur une couche logicielle nommée RADOS, composée de 3 daemons :
- MON (ceph-mon) : Moniteur, gère la carte du cluster (qui est en vie, où sont les données, quelles règles de placement)
- OSD (ceph-osd) : Stocke les données
- MGR (ceph-mgr) : Manager, surveille, fournit de la métrique, met de l'orchestration supplémentaire

Il existe des démons supplémentaires :
- MDS (ceph-mds) : Uniquement si on stocke en mode système de fichiers, avec CephFS
- RGW (radosgw) : Passerelle (Gateway) pour stockage S3
- RBD (radosblocks) : Stockage en mode blocs

### Où se trouvent les données

Ceph utilise l'algorithme CRUSH. Il décide où mettre les données en fonction d'une carte décrivant une topologie.
- Le placement est déterministe : tout le monde obtient le même résultat chacun de son côté.
- Pas de BDD.

### Nomenclature

- POOL : zone virtuelle
- PG : *Placement Group*, Groupes de placement
- OSD : Disque de stockage

Un Pool est découpé en PGs avec chacun ses OSDs (vous m'suivez ?)

## Mise en place

Commande centrale :
`cephadm`

Générer le premier noaud :
`cephadm bootstrap --mon-node Noeud1`

Cela installe :
- 1 MON
- 1 MGR
- 1 shell CEPH

Vérifier la santé :
`ceph status`

Vérifier la topologie :
`ceph osd tree`

Vérifier l'espace :
`ceph df`

Activer la Web UI (pour un cluster déjà mis en service) :
`ceph mgr module enable dashboard`

## Exercice 1

1. Quel protocole utilisent les MON et MGR pour communiquer entre eux ?
2. Quelle(s) sont le(s) bonne(s) pratique(s) auxquelles cet exercice ne se plie pas ?
3. À quoi sert le SSH dans une infrastructure Ceph ?
4. La WebUI semble t-elle protéger les communications via un chiffrement SSL/TLS ?
5. Quelle est la différence entre le Backfill et le Recovery ?

## Exercice 2