Skip to content

Déploiement avec cephadm

Introduction

cephadm est l'outil officiel de déploiement Ceph depuis Octopus. Il utilise des conteneurs et offre une gestion simplifiée du cluster.

Prérequis

  • 3 nœuds avec disques dédiés aux OSD
  • Réseau storage configuré (10.0.1.0/24)
  • Python 3.6+ sur tous les nœuds

Points à apprendre

Installation cephadm

# Sur controller-1 (sera le premier MON)
curl --silent --remote-name --location https://download.ceph.com/rpm-squid/el9/noarch/cephadm
chmod +x cephadm
sudo mv cephadm /usr/local/bin/

# Installer les packages Ceph
sudo cephadm add-repo --release squid
sudo cephadm install ceph-common

Bootstrap du cluster

# Bootstrap initial sur controller-1
sudo cephadm bootstrap \
  --mon-ip 10.0.1.11 \
  --cluster-network 10.0.1.0/24 \
  --initial-dashboard-user admin \
  --initial-dashboard-password admin123 \
  --allow-fqdn-hostname

# Résultat : Dashboard URL, credentials

Ajout des autres nœuds

# Copier la clé SSH Ceph sur les autres nœuds
ssh-copy-id -f -i /etc/ceph/ceph.pub root@controller-2
ssh-copy-id -f -i /etc/ceph/ceph.pub root@controller-3

# Ajouter les hôtes
sudo ceph orch host add controller-2 10.0.1.12
sudo ceph orch host add controller-3 10.0.1.13

# Vérifier
sudo ceph orch host ls

Déploiement des MON et MGR

# MON sur les 3 controllers
sudo ceph orch apply mon --placement="controller-1,controller-2,controller-3"

# MGR (2 pour HA)
sudo ceph orch apply mgr --placement="controller-1,controller-2"

# Vérifier
sudo ceph -s

Ajout des OSD

# Voir les disques disponibles
sudo ceph orch device ls

# Ajouter tous les disques disponibles
sudo ceph orch apply osd --all-available-devices

# Ou manuellement par disque
sudo ceph orch daemon add osd controller-1:/dev/vdb
sudo ceph orch daemon add osd controller-2:/dev/vdb
sudo ceph orch daemon add osd controller-3:/dev/vdb

# Vérifier
sudo ceph osd tree

Création des pools pour OpenStack

# Pool pour Cinder (volumes)
sudo ceph osd pool create volumes 64
sudo ceph osd pool application enable volumes rbd
sudo rbd pool init volumes

# Pool pour Glance (images)
sudo ceph osd pool create images 32
sudo ceph osd pool application enable images rbd
sudo rbd pool init images

# Pool pour Nova (ephemeral, optionnel)
sudo ceph osd pool create vms 32
sudo ceph osd pool application enable vms rbd
sudo rbd pool init vms

# Pool backups
sudo ceph osd pool create backups 32
sudo ceph osd pool application enable backups rbd
sudo rbd pool init backups

Création des utilisateurs Ceph pour OpenStack

# Utilisateur Cinder
sudo ceph auth get-or-create client.cinder \
  mon 'profile rbd' \
  osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images' \
  mgr 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images'

# Utilisateur Glance
sudo ceph auth get-or-create client.glance \
  mon 'profile rbd' \
  osd 'profile rbd pool=images' \
  mgr 'profile rbd pool=images'

# Utilisateur Nova (si ephemeral sur Ceph)
sudo ceph auth get-or-create client.nova \
  mon 'profile rbd' \
  osd 'profile rbd pool=vms' \
  mgr 'profile rbd pool=vms'

# Exporter les keyrings
sudo ceph auth get client.cinder -o /etc/ceph/ceph.client.cinder.keyring
sudo ceph auth get client.glance -o /etc/ceph/ceph.client.glance.keyring

Vérification du cluster

# Status global
sudo ceph -s

# Health détaillé
sudo ceph health detail

# OSDs
sudo ceph osd tree
sudo ceph osd df

# Pools
sudo ceph osd pool ls detail

# Test écriture
sudo rados -p volumes bench 10 write --no-cleanup
sudo rados -p volumes bench 10 seq
sudo rados -p volumes cleanup

Checkpoint

  • Cluster Ceph bootstrap réussi
  • 3 MON en quorum
  • 3 OSD actifs
  • Pools créés (volumes, images, vms)
  • Utilisateurs Ceph créés pour OpenStack
  • ceph -s montre HEALTH_OK