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 -smontre HEALTH_OK