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?
la source
Réponses:
La disponibilité est une chose glissante ... Si vous voulez calculer la disponibilité d'un service, c'est simplement
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.
la source
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
la source
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.
la source
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».
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.
la source
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.
la source
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.)
la source
En supposant que la disponibilité de chaque serveur est indépendante des autres, la disponibilité totale est
Où n est le nombre de serveurs et 0,05 est la probabilité d'indisponibilité d'un serveur
la source