Mathématiquement, comment calculer un pourcentage de disponibilité basé sur un certain nombre de nœuds et leur pourcentage de disponibilité respectif?

11

Cette question est plus une question mathématique qu'une question de serveur, mais elle est fortement liée au serveur.

Si j'ai un serveur que je serais en mesure de garantir une disponibilité de 95% et que je mettrais ce serveur dans un cluster de 2, quelle serait alors la disponibilité? Maintenant, disons que je fais de même, mais j'en fais un cluster de 3?

Ne considérons pas des choses comme un point de défaillance unique, mais concentrons-nous uniquement sur les mathématiques ici. Une des choses qui complique un peu les choses est que si par exemple j'ai 2 serveurs, la chance qu'ils soient tous les deux éteints est de 2 ^ 2, donc c'est 1 / 4ème; ou pour 3 c'est 2 ^ 3, donc 1/8. Étant donné que j'ai un temps d'arrêt de 5% pour chacun de ces serveurs, la moyenne totale serait-elle alors de 1/8 de ces 5%?

Comment calculeriez-vous quelque chose comme ça?

Jeroen Landheer
la source
"95% de disponibilité" - qu'est-ce que c'est? Je sais ce que sont 5 jours ou 5 ans de disponibilité. Qu'est-ce que 0,95 disponibilité? Quelles unités?
poige
1
Pourquoi avez-vous besoin de savoir cela? Quel est le cas d'utilisation?
ewwhite
@poige Vraisemblablement, "95% de disponibilité" signifie "la disponibilité comprend 95% du temps", bien que si vous décidez d'être pédant à ce sujet, vous pouvez dire que tout a ~ 0% de disponibilité car il n'existera pas pour toujours .
Fund Monica's Lawsuit
1) L'auteur devrait probablement répondre? ;) 2) Je pense qu'avant de calculer quelque chose, il vaut mieux comprendre ce que c'est. ;)
poige

Réponses:

11

La disponibilité est une chose glissante ... Si vous voulez calculer la disponibilité d'un service, c'est simplement

amount of time service is available
-----------------------------------   x 100
  amount of time that has passed 

Si un cluster fournit le service, la probabilité que le service devienne indisponible diminue mais le calcul de disponibilité (disponibilité) du service reste le même.

user9517
la source
8

La chance qu'un serveur soit hors ligne est (1 - 0,95) La chance que les deux serveurs soient hors ligne est (1 - 0,95) * (1 - 0,95) = 0,0025 etc ...

Donc, en utilisant votre modèle et d'un point de vue purement mathématique, l'un des serveurs ou les deux devraient fonctionner 99,75% du temps

Cependant, je ne suis pas sûr que l'utilisation d'un tel modèle mathématique soit la bonne façon de déterminer votre temps de disponibilité potentiel car il existe d'autres facteurs qui peuvent l'affecter qui sont communs aux deux serveurs, à savoir que 95% pourrait être dû à 5% du temps il y a une coupure de courant qui affecterait les DEUX serveurs, donc avoir un cluster ne ferait aucune différence

Phil
la source
Salut Phil. La puissance est certainement un composant de la disponibilité qui peut être atténué en plaçant les installations dans plusieurs racks et en prenant du courant de différentes sources, etc. L'idée est purement mathématique, car il y a évidemment plus de composants qui y entrent que quelques serveurs :)
Jeroen Landheer
8
Le fait est que les calculs ici et la réponse de Jeroen ne fonctionnent que si les temps de disponibilité sont indépendants (au sens mathématique). S'il existe des corrélations (par exemple, un câble d'alimentation alimentant les deux racks), les choses ne sont pas aussi simples.
TripeHound
@TripeHound C'est pourquoi j'ai écrit ma réponse :)
Seamus
5

Cela dépend de la raison pour laquelle vos serveurs sont en panne 5% du temps. Si vous êtes alimenté 95% du temps, mais que vos serveurs sont par ailleurs impeccables, alors un deuxième serveur au même endroit n'augmente pas du tout votre temps de disponibilité : si l'un tombe en panne, les deux baissent. Ceci est un exemple des défaillances corrélées . Il est probable qu'au moins une partie de votre temps d'arrêt est due à des erreurs qui affectent tous les serveurs ensemble (alimentation ...). Mais certains des temps d'arrêt seront indépendantsentre les serveurs. Si vous voulez le faire correctement, vous devez traiter ces choses séparément. Vous voulez donc déterminer la probabilité que le serveur 1 n'ait pas d'erreur indépendante (p) et que le serveur 2 n'ait pas d'erreur indépendante (q) et qu'il n'y ait pas d'erreur systémique qui tue les deux (r). Il serait relativement sûr de supposer que ces erreurs sont indépendantes, et vous pouvez donc simplement les multiplier ensemble: p q r est la probabilité qu'un serveur soit opérationnel.

Le problème est que vous ne pouvez pas utiliser les données de disponibilité réelles pour vous donner des valeurs pour p, q et r, sauf que si vous n'avez que le serveur 1 et qu'il est en hausse de 95% du temps, alors p * r = 0,95.

Seamus
la source
5

Tout d'abord, la disponibilité totale ou le temps de disponibilité d'un cluster dépend de la taille d'une partie du cluster nécessaire pour être actif pour que l'ensemble du cluster soit considéré comme «opérationnel».

  • Une machine fonctionnelle suffit-elle? Cela signifierait que n'importe quelle machine peut prendre la pleine charge si nécessaire.
  • Est-ce que tous doivent être actifs en même temps? Autrement dit, il n'y a pas de redondance.
  • Ou peut-être que deux sur trois en ligne sont suffisants? Cela permettrait une charge de travail plus importante que le premier cas.

Comme vous l'avez découvert, les deux premiers cas sont assez simples à calculer. Soit la probabilité qu'un seul serveur soit en ligne à un instant donné p = 0,95. Maintenant, pour trois serveurs, la probabilité qu'ils soient tous en ligne en même temps est p 3 = 0,857375.

Dans le cas contraire, où au moins une machine doit être active à un moment donné, il est plus facile de calculer en inversant le problème et en examinant les probabilités que les machines soient hors ligne . La probabilité qu'une seule machine soit hors ligne est q = 1- p = 0,05, et donc la probabilité qu'ils soient tous en panne en même temps est q 3 = 0,000125, donnant la probabilité 1- q 3 = 1- (1- p ) 3 = 0,999875 qu'au moins un est en hausse

Le cas 2 sur 3 est légèrement plus difficile à calculer. Il existe quatre situations possibles où au moins deux serveurs sur trois sont actifs. 1) ABC sont en hausse, 2) AB sont en hausse, 3) AC sont en hausse, 4) BC sont en hausse. Les probabilités pour tous ces éléments sont respectivement ppp , ppq , pqp et qpp . Comme les cas sont disjoints, les probabilités peuvent être additionnées, donnant un total A = p 3 + 3 p 2 q = 0,992750.

(Cela peut être étendu à plus de machines. Les facteurs sont les coefficients binomiaux bien connus , donc le comptage des différents cas à la main fonctionne principalement comme un exercice.)


Bien sûr, des calculs comme celui-ci sont beaucoup plus faciles à gérer en utilisant un programme informatique prêt à l'emploi ... Au moins un calculateur en ligne peut être trouvé ici:
http://stattrek.com/online-calculator/binomial.aspx

En entrant les valeurs d'entrée: probabilité de succès = 0,95, nombre d'essais = 3, nombre de succès = 2, nous obtenons le résultat "Probabilité cumulative: P (X ≥ 2) = 0,99275". Certaines autres valeurs connexes sont également données, et l'outil en ligne permet également de jouer facilement avec d'autres nombres.


Et oui, tout ce qui précède suppose que les serveurs échouent indépendamment, c'est-à-dire a) J'ai ignoré tous les problèmes affectant le cluster dans son ensemble, b) il n'y a rien de tel que le vieillissement des composants qui rendrait probable l'échec des serveurs à ou presque en même temps.

ilkkachu
la source
3

Vous avez 5% de temps d'arrêt pour chaque serveur, vous le multipliez donc - 0,05 * 0,05 = 0,0025, ce qui vous donne 1-0,0025 = 0,9975 -> 99% de disponibilité. Avec 3 serveurs, vous avez 1-0,000125 = 0,999875> 99,9% de disponibilité.

Je représente normalement 97% de disponibilité pour l'hôte autonome (avec disque dur et alimentation redondants), ce qui donne> 99,9% pour 2N et> 99,99% pour la redondance 3N.

DukeLion
la source
3

J'ai encore creusé et trouvé cette pièce du puzzle.

En utilisant l'exemple d'un serveur avec une disponibilité de 95%, puis l'ajout d'un deuxième serveur augmenterait la disponibilité à: 95% + (1-95%) * 95% = 99,75%. La logique derrière cela est que lorsque le 1er serveur est en panne (5% du temps), le deuxième serveur est toujours en hausse 95% du temps.

L'ajout d'un 3e serveur répéterait cette opération de la même manière. Les 2 premiers ensemble sont déjà disponibles à 99,75%, donc ajouter le 3ème serait: 99,75% + (1-99,75%) * 95% = 99,9875%. Et ainsi de suite. C'est proche de la réponse de Phil, mais toujours un peu différent car vous devez prendre le résultat de l'itération précédente et l'utiliser dans la suivante.

Pour les composants qui dépendent les uns des autres, vous multipliez simplement les pourcentages de disponibilité, donc si vous avez 2 composants disponibles à 50%, vous avez une disponibilité totale de 25% (c'est-à-dire que le système ne fonctionne que lorsque les deux composants fonctionnent.)

Jeroen Landheer
la source
0

En supposant que la disponibilité de chaque serveur est indépendante des autres, la disponibilité totale est

1 - (0,05) ^ n

Où n est le nombre de serveurs et 0,05 est la probabilité d'indisponibilité d'un serveur

Hani
la source