Une des technologies les plus importantes dans une infrastructure de cloud computing est le système de stockage. Il doit à la fois répondre a un besoin simple à savoir stocker des données, mais aussi permettre une évolutivité et mieux encore gérer différentes méthodes de stockage tout en restant évolutif. C’est ce que propose la solution nommée CEPH.

CEPH est un système de stockage distribué sans points de défaillances qui est open-sources et qui permet de gérer des capacités de stockage allant jusqu’à l’exaoctet (1000Po). Il ne nécessite pas de matériel spécialisé et est conçu pour s’autoréparer et automatiser au maximum ses tâches administratives afin de réduire les coûts d’exploitation.
Il est le fruit des travaux de thèse de Sage Weil qui a continué à développer sa solution après avoir obtenu son doctorat en 2007 avant que le projet soit en partie racheté par RedHat.

L’un des grands avantages de CEPH est son aptitude à fournir différents modes de stockage:

  • Stockage objet
  • Stockage par block
  • Stockage par système de fichier

Prérequis techniques

Pour réaliser ce tutoriel, il faut prévoir quelques petites choses:

  • Cinq machines virtuelles ou physiques. C’est comme vous voulez par exemple trois machines virtuelles avec deux disques dur.
  • Une connexion internet fonctionnelle
  • Du temps…

Prérequis systèmes et réseau

CEPH est très tatillon sur la configuration des membres du cluster. Quelques modifications sur l’ensemble des machines vont être effectuées et seront utiles pour ce tutoriel.

  • Changement du hostname

Editez le fichier /etc/hostname et remplacez le contenu  par ce que vous souhaitez.

Voici la liste de mes hostname pour ce tutoriel:

Serveur n°1: node-adm
Serveur n°2: node1
Serveur n°3: node2
Serveur n°4: node3
Serveur n°5: node-client

  • Configuration des IP statiques

Pour changer votre adresse IP dynamique en adresse IP statique, éditez le fichier /etc/network/interfaces et modifiez le de la manière suivante:

Avant:

Après:

Voici la liste de mes IP pour ce tutoriel:

Serveur n°1: 172.16.0.10/16
Serveur n°2: 172.16.0.11/16
Serveur n°3: 172.16.0.12/16
Serveur n°4: 172.16.0.13/16
Serveur n°5: 172.16.0.14/16

  • Modification du fichier hosts

Editez le fichier /etc/hosts et ajoutez tous vos serveurs dedans.

Voici le contenu de mon fichier hosts pour ce tutoriel:

Une fois toutes les modifications apportées à votre futur cluster, redémarrez l’ensemble des machines.

Maintenant que tous vos serveurs ont redémarrés, nous allons pouvoir commencer l’installation du cluster.

Installation et configuration de CEPH

  • Création de l’utilisateur ceph

Pour installer CEPH, nous allons avoir besoin d’un utilisateur dédié. Il va donc falloir créer un utilisateur commun sur l’ensemble des serveurs de notre cluster:

Ces commandes sont à exécuter sur chaque serveur du cluster:

  • Mise en place du SSH

Pour s’installer, CEPH utilise le protocole SSH (ça tombe bien c’est natif sous Linux :D) et nécessite une authentification par paire de clé.
On va donc mettre en place une authentification par paire de clé entre notre serveur d’administration (pour moi node-adm) et les serveurs de notre cluster.

Sur le serveur d’administration:

Il faut basculer sur l’utilisateur ceph (utilisateur dédié à ceph) et créer sa paire de clés:

Il ne reste plus qu’a envoyer la clé publique vers les serveurs de notre cluster:

Enfin pour finir la configuration du SSH sur votre serveur d’administration, il faut créer un fichier config dans /home/ceph/.ssh

Puis remplissez votre fichier avec les informations suivantes:

  • Configuration des dépôts

On va maintenant configurer les dépôts de notre serveur d’administration pour pouvoir installer la dernière version de CEPH.
Les opérations suivantes sont réalisées sur le serveur d’administration uniquement en utilisateur ceph.
Mise en place des dépôts CEPH:

  • Installation des différents nœuds du cluster

Et c’est là que les choses vont commencer à devenir compliquées.

Si vous rencontrez des problèmes ou que vous souhaitez refaire une configuration propre de votre cluster, entrez les commandes suivantes à n’importe quel moment:

On va commencer par installer CEPH sur tous nos nœuds:

Une fois l’installation des paquets terminée, nous pouvons créer notre cluster:

On ajoute ensuite le rôle monitor aux trois nœuds précédemment configurés:

Puis, on récupère les clés d’authentification de nos monitors:

Voilà, l’installation des monitors est terminée. On va maintenant attaquer la partie stockage.

Avec CEPH, chaque nœud de stockage est appelé un OSD. Dans notre cas, trois OSD vont être configurés respectivement sur node1, node2 et node3.

Nous allons maintenant installer le rôle OSD sur nos différents nœuds. Dans cette partie du tutoriel le stockage utilisé sera sur le deuxième disque des machines node1, node2 et node3.

/!\ ATTENTION: Les disques servant au stockage ne doivent contenir aucune table de partition et ne pas être monté.

Puis, on déploie la configuration sur l’ensemble des machines du cluster:

Et pour finir la configuration du cluster, on ajoute un dernier rôle au node1, le rôle MDS:

Il ne reste plus qu’à valider que tout fonctionne correctement avec la commande suivante:

Si le retour de la commande est : HEALTH_OK , c’est que tout va bien !  Votre cluster est prêt 😀

Installation d’un client CEPH

Ca y est vous croyez que c’est finit? Eh bien pas tout à fait. Il reste une petite chose à faire pour pouvoir exploiter notre cluster. C’est de configurer un client

Dans un premier, on va installer tout le nécessaire pour notre client.
Les étapes d’installation s’effectuent depuis le serveur d’administration.

Nous allons d’abord ajouter le rôle ceph-client au serveur:

Puis, on lui déploie la configuration du cluster:

La partie d’installation est maintenant terminée. Nous allons maintenant créer notre premier volume et le monter sur notre client.

  • Création d’un nouveau bloc

Pour créer un nouveau bloc, entrez la commande suivante sur votre serveur client:

Dans mon cas:

Puis, on mappe ce bloc à un périphérique système:

Il ne reste plus qu’à formater notre beau volume tout neuf et le monter:

Si vous souhaitez le monter automatiquement au démarrage de la machine, modifiez le fichier /etc/fstab comme ceci:

Voilà, vous avez maintenant un cluster CEPH opérationel. C’est sympa non? ?

Mais ce n’est qu’une initiation à ce que peut faire CEPH. J’attends vraiment de voir comment va évoluer cette solution.