Debian 11 – Configurer un cluster CEPH

Debian 11 – Configurer un cluster CEPH

Ceph est une solution de stockage distribué open source qui se distingue par sa grande flexibilité, sa scalabilité horizontale et sa robustesse. Il permet de gérer des données objets, blocs et fichiers au sein d’une seule plateforme, tout en offrant des performances élevées et une tolérance aux pannes grâce à son architecture sans point de défaillance unique. De plus, sa compatibilité avec les environnements cloud et conteneurisés en fait un choix idéal pour les infrastructures modernes.

Prérequis :

  • 1 VM (Master) : 10.10.70.20 – 2vCPU, 2Go RAM, 80Go d’espace disque + disque dur 100GO
  • 1 VM (node01) : 10.10.70.21 – 2vCPU, 2Go RAM, 80Go d’espace disque + disque dur 100GO
  • 1 VM (node02) : 10.10.70.22 – 2vCPU, 2Go RAM, 80Go d’espace disque + disque dur 100GO
  • Autorisez la connexion SSH avec l’utilisateur root
  • Fixez les ip

Étape 1 : Sur le Master, commencez par générer une clé SSH

ssh-keygen

Éditez le fichier : ~/.ssh/config

nano ~/.ssh/config

Host node01
    Hostname 10.10.70.20
    User root
Host node02
    Hostname 10.10.70.21
    User root
Host node03
    Hostname 10.10.70.22
    User root

nano /etc/hosts

10.10.70.20 node01
10.10.70.21 node02
10.10.70.22 node03

10.10.70.23 client

Étape 2 : copiez la clé publique sur les nodes

ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03

Étape 3 : Installez CEPH sur tous les nodes

for NODE in node01 node02 node03
do
    ssh $NODE "apt update; apt -y install ceph"
done 

Étape 4 : configurez le monitor et le manager

  • Éditez le fichier /etc/ceph/ceph.conf
nano /etc/ceph/ceph.conf

[global]
# reseau du cluster
cluster network = 10.10.70.0/24
# reseau publique
public network = 10.10.70.0/24
fsid = 92749530-d9af-4226-bfe0-ccc79a689a66
mon host = 10.10.70.20
mon initial members = node01
osd pool default crush rule = -1

[mon.node01]
host = node01
mon addr = 10.10.70.20
mon allow pool delete = true
  • Générez la clé secrète pour monitorer le cluster
ceph-authtool --create-keyring /etc/ceph/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *' 
  • Générez la clé secrète pour l’administrateur du cluster
ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *' 
  • Générez la clé pour bootstrap
ceph-authtool --create-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring --gen-key -n client.bootstrap-osd --cap mon 'profile bootstrap-osd' --cap mgr 'allow r'
  • Importez la clé généré
ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring

ceph-authtool /etc/ceph/ceph.mon.keyring --import-keyring /var/lib/ceph/bootstrap-osd/ceph.keyring 
  • Générez la map
FSID=$(grep "^fsid" /etc/ceph/ceph.conf | awk {'print $NF'}) 
NODENAME=$(grep "^mon initial" /etc/ceph/ceph.conf | awk {'print $NF'}) 
NODEIP=$(grep "^mon host" /etc/ceph/ceph.conf | awk {'print $NF'}) 
monmaptool --create --add $NODENAME $NODEIP --fsid $FSID /etc/ceph/monmap 
  • Créez un dossier pour le monitor deamon
mkdir /var/lib/ceph/mon/ceph-node01 
  • Associez la clé et la map sur le moniteur
ceph-mon --cluster ceph --mkfs -i $NODENAME --monmap /etc/ceph/monmap --keyring /etc/ceph/ceph.mon.keyring
chown ceph. /etc/ceph/ceph.* 
chown -R ceph. /var/lib/ceph/mon/ceph-node01 /var/lib/ceph/bootstrap-osd 
systemctl enable --now ceph-mon@$NODENAME 
  • Activez le protocole v2 de Messenger
ceph mon enable-msgr2

ceph config set mon auth_allow_insecure_global_id_reclaim false 
  • Créez un dossier pour le manager Deamon
mkdir /var/lib/ceph/mgr/ceph-node01 
  • Créez une clé d’authentification
ceph auth get-or-create mgr.$NODENAME mon 'allow profile mgr' osd 'allow *' mds 'allow *' 
ceph auth get-or-create mgr.node01 | tee /etc/ceph/ceph.mgr.admin.keyring 
cp /etc/ceph/ceph.mgr.admin.keyring /var/lib/ceph/mgr/ceph-node01/keyring 
chown ceph. /etc/ceph/ceph.mgr.admin.keyring 
chown -R ceph. /var/lib/ceph/mgr/ceph-node01
systemctl enable --now ceph-mgr@$NODENAME 
  • Vérifiez le statut du cluster
ceph -s

Étape 5 : configurez les nodes (OSD : object storage device)

  • ATTENTION : ajoutez bien vos disques durs virtuels avant de commencer la configuration des nodes !!
for NODE in node01 node02 node03
do
    if [ ! ${NODE} = "node01" ]
    then
        scp /etc/ceph/ceph.conf ${NODE}:/etc/ceph/ceph.conf
        scp /etc/ceph/ceph.client.admin.keyring ${NODE}:/etc/ceph
        scp /var/lib/ceph/bootstrap-osd/ceph.keyring ${NODE}:/var/lib/ceph/bootstrap-osd
    fi
    ssh $NODE \
    "chown ceph. /etc/ceph/ceph.* /var/lib/ceph/bootstrap-osd/*; \
    parted --script /dev/sdb 'mklabel gpt'; \
    parted --script /dev/sdb "mkpart primary 0% 100%"; \
    ceph-volume lvm create --data /dev/sdb1"
done 
  • Vérifiez le statut du cluster
ceph -s
  • Affichez les OSD (nodes)
ceph osd tree
  • Afficher les infromations de stockage
ceph df
  • Affichez l’espace disponible et utilisé sur chaque OSD
ceph osd df 

Maintenant, nous allons configurer le dashboard web :

apt -y install ceph-mgr-dashboard 
ceph mgr module enable dashboard 
ceph mgr module ls | grep -A 5 enabled_modules
  • Créez un certificat auto-signé pour le dashboard
ceph dashboard create-self-signed-cert 
  • Créez un utilisateur pour le dashboard
echo "password" > pass.txt
ceph dashboard ac-user-create admin -i pass.txt administrator
  • Et enfin, activez le dashboard
ceph mgr services

Connectez vous avec les accès précédemment créé :

  • nom d’utilisateur : admin
  • mot de passe : password

Et voilà ! Ceph est désormais fonctionnel !

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

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