Aller au contenu

Sizing Ceph : capacité utile, ratio de remplissage, tolérance de panne

Day 0 · ConcevoirNiveau 3 · MaîtriserCours + calculateurRédigé · à valider en lab

La capacité que vous pouvez réellement remplir sur un cluster Ceph n'est pas le brut divisé par 3 : c'est la capacité qui reste sous le seuil nearfull (85 %) après la perte d'un nœud et la reconstruction de ses données. Cette page explique le calcul pas à pas, avec exactement les règles du calculateur Ceph.

Trois capacités à ne pas confondre

Capacité Définition Où la lire
Brute Somme des disques OSD, en To fabricant ceph df (ligne RAW, en Tio)
Utile théorique Brut divisé par le nombre de copies (réplica) ou × k/(k+m) (erasure coding) Calcul ; ceph df colonne MAX AVAIL (qui tient déjà compte du remplissage et du déséquilibre)
Exploitable Ce que vous pouvez remplir sans risque de blocage quand un nœud tombe Calculateur ; c'est le chiffre à suivre en exploitation

Les fabricants comptent en To décimaux, Linux et Ceph affichent des Tio : 1 To = 0,9095 Tio. Un disque de 3,84 To apparaît comme 3,49 Tio.

Les règles du calculateur

brut          = nœuds × OSD par nœud × taille disque
utile         = brut / size                     (réplica size/min_size)
              = brut × k / (k + m)              (erasure coding k+m)
utile(N-1)    = (nœuds - 1) × OSD par nœud × taille disque × efficacité

si un nœud perdu peut être reconstruit ailleurs (nœuds > size, ou nœuds > k+m) :
  exploitable = utile(N-1) × 0,85               (reste sous nearfull après reconstruction)
sinon (ex. 3 nœuds en réplica 3) :
  exploitable = utile × 0,80                    (le cluster reste dégradé, garder une marge)

PG conseillés = puissance de 2 la plus proche de (nombre d'OSD × 100 / size), 32 au minimum
                size = nombre de copies en réplica, k + m en erasure coding

L'efficacité vaut 1/3 en réplica 3/2, 1/2 en réplica 2/1, k/(k+m) en erasure coding. Le détail est sur Comment on calcule.

Pourquoi 85 % et pourquoi 80 %

  • Les seuils Ceph par défaut sont nearfull 85 %, backfillfull 90 %, full 95 % (RB-04). Un seul OSD plein bloque les écritures de tout le pool.
  • Le cluster peut se reconstruire (au moins un hôte de plus que le nombre de copies) : quand un nœud tombe, ses données sont recopiées sur les nœuds restants. Il faut donc que toutes les données tiennent sur N-1 nœuds en restant sous 85 %.
  • Le cluster ne peut pas se reconstruire (3 nœuds en réplica 3, ou exactement k+m nœuds en EC) : il reste dégradé sans se remplir davantage. Le calculateur garde alors 20 % de marge pour absorber le déséquilibre entre OSD, la croissance et la perte d'un disque (dont les données sont recopiées sur les autres disques du même hôte).

Exemples chiffrés (SSD entreprise de 3,84 To, 6 OSD par nœud)

Cluster Protection Brut Utile théorique Exploitable PG conseillés
3 nœuds Réplica 3/2 69,1 To 23,0 To 18,4 To (utile × 0,80) 512
4 nœuds Réplica 3/2 92,2 To 30,7 To 19,6 To (23,0 × 0,85) 1024
5 nœuds Réplica 3/2 115,2 To 38,4 To 26,1 To (30,7 × 0,85) 1024
7 nœuds EC 4+2 161,3 To 107,5 To 78,3 To (92,2 × 0,85) 512

Lecture : passer de 3 à 4 nœuds n'ajoute qu'un peu de capacité exploitable (18,4 → 19,6 To), mais apporte la tolérance de panne : le cluster revient à active+clean après la perte d'un nœud. Le gain de capacité devient net à partir du 5e nœud.

Tolérance de panne selon la configuration

Configuration Perte d'un disque Perte d'un nœud Perte de deux nœuds
3 nœuds, réplica 3/2 Reconstruction sur l'hôte Dégradé, I/O maintenues, pas de reconstruction I/O bloquées (min_size 2 non atteint, quorum MON perdu)
4 nœuds et plus, réplica 3/2 Reconstruction Reconstruction sur les nœuds restants I/O bloquées sur les PG ayant perdu 2 copies jusqu'à reconstruction ; quorum MON à vérifier
EC 4+2 sur 7 nœuds Reconstruction Reconstruction Pas de perte de données (m = 2), mais I/O suspendues sur les PG tombés sous min_size (k+1) le temps de la récupération
Réplica 2/1 Une seule copie restante Une seule copie restante Perte de données

Le réplica 2/1 est proscrit en production : Proxmox déconseille explicitement min_size 1.

Méthode MSP pour dimensionner

  1. Mesurer le volume réellement occupé des VMs à migrer (pas le provisionné), ajouter la croissance sur 3 ans.
  2. Saisir le matériel envisagé dans le calculateur Ceph et comparer la capacité exploitable au besoin à 3 ans.
  3. Traiter toutes les alertes du calculateur (moins de 3 nœuds, réplica 2, SSD grand public, réseau sous 25 Gb/s, 1 OSD par nœud).
  4. Copier le résumé et le joindre à la demande de validation dans iTop.
  5. En exploitation, suivre ceph osd df tree : déclencher l'achat de disques ou d'un nœud quand l'occupation approche le plafond exploitable, pas à 85 % (voir Plan de capacité).

Pièges vus en support

  • Vendre « 30 To bruts = 10 To » et remplir à 10 To : le cluster est à 100 % de l'utile, la première panne bloque les écritures.
  • Oublier les snapshots de VM : ils consomment de l'espace Ceph tant qu'ils existent.
  • Disques de tailles différentes : CRUSH pondère par la taille, les gros disques reçoivent plus de données et atteignent nearfull en premier.
  • Thin provisioning sans discard : l'espace libéré dans les VMs n'est jamais rendu à Ceph.
  • Compter le pool CephFS (ISO, templates) à part : il partage les mêmes OSD que ceph-vm.

Testez-vous

  1. Combien de To exploitables sur 3 nœuds de 6 SSD de 3,84 To en réplica 3/2 ?

    Réponse

    Brut 69,12 To, utile 23,04 To. Trois nœuds en réplica 3 ne peuvent pas se reconstruire après perte d'un nœud, donc exploitable = 23,04 × 0,80 ≈ 18,4 To.

  2. Pourquoi le calculateur utilise-t-il N-1 nœuds pour un cluster de 4 nœuds ?

    Réponse

    Parce qu'après la perte d'un nœud, Ceph recopie ses données sur les 3 restants. Toutes les données doivent tenir sur ces 3 nœuds en restant sous le seuil nearfull de 85 %.

  3. Le calculateur conseille 1024 PG. Faut-il créer le pool avec 1024 PG ?

    Réponse

    Non. C'est un ordre de grandeur pour le total des pools (environ 100 PG par OSD). Créez le pool avec l'autoscaler actif (pg_autoscale_mode on) et, si besoin, un target_size_ratio ; Ceph ajuste ensuite pg_num.

  4. Votre cluster de 4 nœuds affiche 70 % d'occupation. Est-ce un problème ?

    Réponse

    Oui à moyen terme. Avec 4 nœuds, l'exploitable vaut 3/4 × 85 % ≈ 64 % du brut utile. À 70 %, la perte d'un nœud ferait dépasser nearfull pendant la reconstruction. Planifiez une extension et ouvrez une demande d'étude de capacité.

Pour aller plus loin