Pools et CRUSHmap¶
Introduction¶
Les pools Ceph organisent les données et la CRUSHmap définit comment les données sont distribuées physiquement.
Points à apprendre¶
Gestion des pools¶
# Lister les pools
ceph osd pool ls detail
# Créer un pool
ceph osd pool create <pool-name> <pg-num> [pgp-num] [replicated|erasure]
# Exemples pour OpenStack
ceph osd pool create volumes 128
ceph osd pool create images 64
ceph osd pool create vms 64
# Définir la réplication
ceph osd pool set volumes size 3
ceph osd pool set volumes min_size 2
# Activer l'application RBD
ceph osd pool application enable volumes rbd
rbd pool init volumes
Calcul du nombre de PGs¶
# Formule : Target PGs = (OSDs * 100) / réplication
# Arrondir à la puissance de 2 supérieure
# Exemple : 3 OSDs, réplication 3
# Target = (3 * 100) / 3 = 100 → 128 PGs
# Vérifier les PGs
ceph osd pool get volumes pg_num
ceph pg stat
CRUSHmap¶
# Voir la CRUSHmap
ceph osd crush tree
ceph osd crush dump
# Structure typique
# root default
# ├── host controller-1
# │ └── osd.0
# ├── host controller-2
# │ └── osd.1
# └── host controller-3
# └── osd.2
Règles CRUSH personnalisées¶
# Créer une règle pour distribuer sur différents hosts
ceph osd crush rule create-replicated replicated_hosts default host
# Appliquer à un pool
ceph osd pool set volumes crush_rule replicated_hosts
Checkpoint¶
- Pools créés avec le bon nombre de PGs
- Réplication configurée (size=3, min_size=2)
- CRUSHmap vérifié (distribution sur hosts différents)