Comment j’ai déployé Ceph en PROD : épisode 1

Avant toute chose, une petite présentation s’impose, soyons efficaces, vous lisez couramment le json ? 😉

{
	"prenom": "Clément",
	"nom": "Hampaï",
	"age [secondes]": 756864000,
	"travaille chez Clever Net depuis [secondes]": 31536000
}

Maintenant que l’on se connait, rentrons dans le vif du sujet, à savoir, le déploiement d’un cluster Ceph comme datastore de backup Veeam pour une infrastructure vmware de production.

GO !

Donc avant toute chose, un petit tour du propriétaire s’impose.

L’infrastructure Ceph est actuellement composée de 3 serveurs monitors ainsi que de 3 OSD (il y a effectivement 4 OSD sur la photo mais seulement 3 ont été rackés et configurés pour l’instant).

Sur la table de gauche, vous pouvez voir les 4 serveurs OSD et sur la table de droite, les 3 monitors

Côté configuration matérielle, voici un tableau récapitulatif :

Tout ce matériel permet d’obtenir le cluster Ceph ci-dessous :

Les OSDs et les monitors sont semblables en de nombreux points, toutefois, les OSDs mesurent physiquement 2U afin d’accueillir les 12 disques 3.5 » contre uniquement 1U pour les monitors.

Les SSD NVMe des 4 serveurs OSD sont utilisés pour stocker les journaux Ceph de chacun des 12 disques durs. Quant aux monitors, ils stockent sur leurs médias NVMe la configuration courante ainsi que certaines méta-data requises au bon fonctionnement du cluster dans son ensemble.

Donc ma première action fut rien de moins que l’ouverture d’un « Terminator » afin de pouvoir me connecter aux différents serveurs.

Encore une fois, à gauche les 3 OSD, à droite les 3 monitors.

Une fois connecté aux 6 serveurs, j’effectue un « yum update » afin de mettre tous ces serveurs à jour…

Plan du réseau

Une fois les serveurs mis à jour, vérifions que toutes les cartes réseaux soient atteignables. Un schéma s’impose:

Donc, quelles sont les informations importantes à ressortir de ce schéma ?

  1. Les datacenters sont reliés entre eux via des agrégats de plusieurs lignes de fibres 10 Gb/s.
  2. Le datacenter 4 n’est pas encore configuré actuellement. Il existe mais le serveur OSD ne s’y trouve pas encore.
  3. Chaque serveur OSD possède deux cartes réseau 10Gb/s. Une interface donne l’accès au cluster Ceph du coté des clients (les consommateurs des données stockées au sein du cluster). La deuxième interface relie les serveurs OSD entre eux. Cette seconde interface est utilisée uniquement par les OSDs pour les opérations de réplication.
  4. Les serveurs monitors sont reliés uniquement au réseau client Ceph.
  5. Les monitors ont un agrégat de fibre sur leurs deux interfaces 10Gb/s présentes dans le réseau client Ceph.
  6. Les réseaux colorés n’existent physiquement pas, ils sont indiqués sur le schéma uniquement pour simplifier la compréhension de la configuration réseau des différents serveurs. Tous les serveurs sont reliés entre eux au travers des multiples agrégats reliant les datacenters entre eux en passant par le switch indiqué au centre du schéma.

Ping pong

Après le « yum update » j’ai entrepris une petite review des interfaces réseaux. L’exercice consiste à se connecter sur chaque serveur et à « pinger » toutes les interfaces réseaux de ses confrères.

Exemple:

  • Le monitor 1 doit pouvoir atteindre le monitor 2 et le monitor 3 sur leurs agrégats respectifs, membres du réseau client Ceph.
  • L’OSD 1 doit pouvoir atteindre le monitor 1, le monitor 2, le monitor 3 sur le réseau client Ceph MAIS il doit également pouvoir atteindre l’OSD 2 et l’OSD 3 sur le réseau cluster Ceph.
  • Et on recommence avec le monitor 2, l’OSD 2 etc…

Ce petit jeu a pour but d’identifier les éventuels problèmes réseaux ou autres erreurs de configuration qui pourraient, plus tard, nuire au bon fonctionnement du futur cluster Ceph.

Effectivement, durant cette étape, plusieurs switchs et interfaces réseaux ont dû être reconfigurés.

Veeam

L’objectif du projet est de fournir à Veeam (un outil de sauvegarde pour les machines virtuelles vmware) un espace de stockage sûr et évolutif. Le tout, si possible, avec un budget raisonnable, de l’ordre de 0,20 CHF à 0,30 CHF par GB de données brutes, excluant d’office toutes les solutions de SAN conventionnelles.

Un autre point important présent dans le cahier des charges du projet est la perte éventuelle d’un datacenter sans que cela ne cause de dommage aux données sauvegardées au sein du cluster.

Une fois tous les serveurs opérationnels au niveau réseau, la suite des opérations consiste donc à installer 3 PC qui serviront de passerelle entre Ceph et Veeam. Malheureusement Veeam n’est pas capable d’écrire directement dans un cluster Ceph, il faut donc mettre en place un client Ceph que Veeam pourra interroger au travers de son agent linux.

Ces 3 passerelles (Veeam <-> Ceph) seront ensuite déposées dans les 3 datacenters actuellement utilisés et indiqués sur le schéma réseau.

Administration du cluster

Durant cette journée, une VM fut instanciée afin de faciliter l’administration du futur cluster Ceph. Cette machine virtuelle contiendra par la suite la configuration globale du cluster ainsi que les différentes clefs d’authentification permettant l’accès à celui-ci.

Comment j’ai déployé Ceph en PROD : les épisodes

Episode 1

Episode 2

Episode 3

2 réponses
  1. noon
    noon dit :

    juste une question, pourquoi partir sur ceph et pas du glusterfs avec ctdb (pour ha smb)?

    d’un point de vue infra et cout gluster me parait moins cher et plus simple a mettre en place.

    Répondre
    • Clément Hampaï
      Clément Hampaï dit :

      Hello noon,
      Dans le cas présent nous n’avons pas du tout besoin de share SMB. De plus, notre client souhaite également utiliser, à terme, cette solution de stockage comme support de virutalisation et Ceph nous semble plus adapté pour ce cas, compte tenu de sa forte polyvalence. Mais il est clair que Gluster est une alternative tout à fait possible.

      Répondre

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *