On cherche à créer l'architecture suivante où un client interagit avec un cluster Ceph :
<----clusterCeph----->
+-------+
+-> | ceph1 |
| +-------+
+-------+ +-------+ | +-------+
| cephc | <-> | cephm | <-+-> | ceph2 |
+-------+ +-------+ | +-------+
| +-------+
+-> | ceph3 |
+-------+
cephc : client Ceph
cephm : nœud maitre ou nœud admin
ceph[1-3] : nœud cephs
## Préparation
On suppose ici que :
- chaque machine a été installée sous Debian 9 ;
- chaque machine du cluster peut se connecter via SSH sur une autre ;
- cephc et cephm peuvent se connecter via SSH sur l'autre.
Pour la configuration SSH, on aura, pour cephm:
$ cat ~/.ssh/config
Hostname ceph1
Host ceph1
User cephuser
Hostname ceph2
Host ceph2
User cephuser
Hostname ceph2
Host ceph2
User cephuser
Il est peut-être nécéssaire d'ajouter les machines dans le fichier `/etc/hosts` :
X.X.X.X ceph1
Y.Y.Y.Y ceph2
Z.Z.Z.Z ceph3
> En réalité seul le nœud maître à besoin de se connecter aux autres nœud du cluster mais je n'ai pas essayé.
Dans cet exemple, chaque noeud - ceph1, ceph2 et ceph3 - à un disque supplémentaire à sa disposition. Ce disque contiendra les données à stocker dans le cluster et doit être vide, sans table de partitions et être utilisé comme volume physique :
wipefs -a /dev/sdb
pvcreate /dev/sdb
> /dev/sdb est le volume supplémentaire.
## Installation
On commence par installer `ceph-deploy`, l'outil qui permet de déployer un cluster Ceph.
On initialise le moniteur. Cela va créer un tas de fichiers `*.keyring`. On copie ensuite ces fichiers sur tous les nœeuds. Un monitor sert à maintenir une carte de l'état du cluster.
ceph-deploy mon create-initial
ceph-deploy admin deb0 deb1 deb2 deb3
On déploie un manager. Celui-ci permet de regrouper l'état du cluster à un seul endroit.
ceph-deploy mgr create deb1
On crée les OSD :
ceph-deploy osd create --data /dev/sdb deb1
ceph-deploy osd create --data /dev/sdb deb2
ceph-deploy osd create --data /dev/sdb deb3
> On peut lancer la commande suivante pour s'assurer que le cluster fonctionne bien :