Aller au contenu

Comment on calcule

Les formules utilisées par les trois calculateurs, pour que vous puissiez refaire le calcul et le discuter avec l'avant-vente. Les capacités sont en To décimaux (comme les fabricants) ; 1 To = 0,9095 Tio, l'unité affichée par Linux.

Ceph

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)

Seuils Ceph par défaut : nearfull 85 %, backfillfull 90 %, full 95 %. Un seul OSD plein bloque les écritures de tout le pool : c'est l'OSD le plus rempli qui compte.

ZFS

vdevs          = partie entière (disques / largeur de vdev)
mirror         : affiché = vdevs × taille disque
RAIDZp         : affiché = vdevs × (largeur - p) × taille disque
réserve ZFS    : affiché × (1 - 1/32)

padding RAIDZ (allocation d'un bloc de zvol) :
  N       = volblocksize / taille de secteur (2^ashift)       secteurs de données
  parité  = p × arrondi supérieur (N / (largeur - p))
  total   = N + parité, arrondi au multiple supérieur de (p + 1)
  efficacité zvol = N / total

zvols          = vdevs × largeur × taille disque × efficacité zvol × (1 - 1/32)
exploitable    = zvols × 0,80
IOPS aléatoires : mirror ≈ vdevs (écriture), vdevs × largeur (lecture) ; RAIDZ ≈ vdevs

Exemple : RAIDZ1 de 4 disques, ashift 12, volblocksize 16 K → N = 4, parité = 2, total = 6 → efficacité 67 % au lieu des 75 % attendus.

PBS

part modifiée sur g jours   = h × (1 - (1 - taux quotidien / h)^g)
                              h = part des données actives (réécrites au fil du temps)
données uniques             = V                                    (une copie complète)
                            + (keep-daily - 1) × V × part(1 jour)
                            + keep-weekly      × V × part(7 jours)
                            + keep-monthly     × V × part(30 jours)
                            + keep-yearly      × V × part(365 jours)
datastore                   = données uniques / réduction / 0,80   (20 % de marge)
volume à 1 an, 3 ans        = V × (1 + croissance)^années

débit 1re sauvegarde (Mo/s) = V / fenêtre de sauvegarde
débit quotidien (Mo/s)      = V × taux quotidien / fenêtre de sauvegarde
sync MSP (Mbit/s)           = V × taux quotidien / réduction × 8 / fenêtre de sync

Le modèle suppose que les écritures se concentrent sur une part active h des données (bases, journaux, profils) : sur une longue période, la part unique modifiée tend vers h au lieu de croître sans limite. Il ignore la déduplication entre VMs clonées d'un même template, ce qui le rend prudent. Le taux de réduction réel se lit sur le PBS après quelques semaines (Datastore → Summary).

Sources