Esta questão é mais uma questão de matemática do que uma questão de servidor, mas está fortemente relacionada ao servidor.
Se eu tivesse um servidor capaz de garantir 95% de tempo de atividade e colocaria esse servidor em um cluster de 2, quanto seria o tempo de atividade? Agora, digamos que eu faça o mesmo, mas faço um cluster de 3?
Não vamos considerar coisas como um único ponto de falha, mas focar puramente na matemática aqui. Uma das coisas que torna isso um pouco complicado é que, por exemplo, se eu tiver 2 servidores, a chance de ambos estarem fora é 2 ^ 2, então isso é 1/4; ou para 3 é 2 ^ 3, então 1/8. Considerando que eu tenho um tempo de inatividade de 5% para cada um desses servidores, a média total seria de 1/8 desses 5%?
Como você calcularia algo assim?
fonte
Respostas:
O tempo de atividade é uma coisa escorregadia ... Se você deseja calcular a disponibilidade de um serviço , é simplesmente
Se você tiver um cluster que fornece o serviço, a probabilidade de o serviço ficar indisponível diminui, mas o cálculo da disponibilidade (tempo de atividade) do serviço permanece o mesmo.
fonte
A chance de um servidor ficar offline é (1 - 0,95) A chance de ambos os servidores ficarem offline é (1 - 0,95) * (1 - 0,95) = 0,0025 etc ...
Portanto, usando o seu modelo e do ponto de vista puramente matemático, um ou ambos os servidores devem aumentar 99,75% do tempo
No entanto, não tenho certeza de que o uso de um modelo matemático seja a maneira correta de calcular o tempo de atividade em potencial, pois existem outros fatores que podem afetá-lo, comuns aos dois servidores, ou seja, os 95% podem ocorrer porque 5% das vezes existe um corte de energia que afetaria AMBOS servidores, portanto, ter um cluster não faria diferença
fonte
Isso depende do motivo pelo qual seus servidores estão inativos 5% do tempo. Se você tem o poder de 95% do tempo, mas os servidores são de outra maneira impecável, em seguida, um segundo servidor no mesmo local não aumentar o seu tempo de atividade em tudo : se um vai para baixo, ambos vão para baixo. Este é um exemplo das falhas sendo correlacionadas . É provável que pelo menos parte do seu tempo de inatividade seja devido a erros que afetam todos os servidores juntos (energia ...). Mas parte do tempo de inatividade será independenteentre servidores. Se você deseja fazer isso corretamente, deve lidar com essas coisas separadamente. Portanto, você deseja calcular a probabilidade de que o servidor 1 não tenha um erro independente (p) e que o servidor 2 não tenha um erro independente (q) e que não haja nenhum erro sistêmico que mate ambos (r). Seria relativamente seguro assumir que esses erros são independentes e, portanto, você pode simplesmente multiplicá-los: p q r é a probabilidade de algum servidor estar ativo.
O problema é que você não pode usar dados de tempo de atividade reais para fornecer valores para p, q e r, exceto que, se você tiver apenas o servidor 1 e estiver em 95% do tempo, então p * r = 0,95.
fonte
Antes de tudo, a disponibilidade total ou o tempo de atividade de um cluster depende de quão grande parte do cluster é necessária para estar ativa para que todo o cluster seja considerado 'ativo'.
Como você descobriu, os dois primeiros casos são bastante simples de calcular. Deixe a probabilidade de um único servidor estar online a qualquer momento p = 0,95. Agora, para três servidores, a probabilidade de que todos estejam online ao mesmo tempo é p 3 = 0,857375.
No caso oposto, em que pelo menos uma máquina deve estar ativa em um determinado momento, é mais fácil calcular, invertendo o problema e observando as probabilidades de as máquinas estarem offline . A probabilidade de uma única máquina estar offline é q = 1- p = 0,05 e, portanto, a probabilidade de que todas elas estejam inativas ao mesmo tempo é q 3 = 0,000125, fornecendo a probabilidade 1- q 3 = 1- (1- p ) 3 = 0.999875 que pelo menos um está ativo.
O caso 2 de 3 é um pouco mais difícil de calcular. Existem quatro situações possíveis em que pelo menos dois de três servidores estão ativos. 1) ABC está ativo, 2) AB está ativo, 3) AC está ativo, 4) BC está ativo. As probabilidades para todos estes são, respectivamente, ppp , PPQ , PQP e QPP . Como os casos são disjuntos, as probabilidades podem ser somadas, resultando em um total A = p 3 + 3 p 2 q = 0,992750.
(Isso pode ser expandido para mais máquinas. Os fatores são os coeficientes binomiais bem conhecidos , portanto, contar os diferentes casos manualmente funciona principalmente como um exercício.)
Obviamente, cálculos como esse são muito mais fáceis de lidar usando um programa de computador pronto ... Pelo menos um calculador on-line pode ser encontrado aqui:
http://stattrek.com/online-calculator/binomial.aspx
Entrando os valores de entrada: probabilidade de sucesso = 0,95, número de tentativas = 3, número de tentativas = 2, obtemos o resultado "Probabilidade acumulada: P (X ≥ 2) = 0,99275". Alguns outros valores relacionados também são fornecidos, e a ferramenta online também facilita a reprodução com outros números.
E sim, todas as opções acima pressupõem que os servidores falhem de forma independente, ou seja, a) eu ignorei quaisquer problemas que afetassem o cluster como um todo; b) não há nada como o envelhecimento de componentes que tornaria provável a falha dos servidores em ou quase ao mesmo tempo.
fonte
Você tem 5% de tempo de inatividade para cada servidor e, portanto, o multiplica - 0,05 * 0,05 = 0,0025, fornecendo 1-0,0025 = 0,9975 -> 99% de tempo de atividade. Com 3 servidores, você tem 1-0.000125 = 0.999875> tempo de atividade de 99,9%.
Normalmente, sou responsável por 97% da disponibilidade de host independente (com HDD e PSU redundantes), fornecendo> 99,9% para 2N e> 99,99% para redundância 3N.
fonte
Fiz mais algumas escavações e encontrei esta peça do quebra-cabeça.
Usando o exemplo de um servidor com uma disponibilidade de 95%, a adição de um segundo servidor aumentaria a disponibilidade para: 95% + (1-95%) * 95% = 99,75%. A lógica por trás disso é que, quando o 1º servidor está inativo (5% das vezes), o segundo servidor ainda está ativo 95% das vezes.
A adição de um terceiro servidor iteraria da mesma maneira. Os dois primeiros juntos já são 99,75% disponíveis, portanto, a adição do terceiro seria: 99,75% + (1-99,75%) * 95% = 99,9875%. E assim por diante. Isso está próximo da resposta de Phil, mas ainda um pouco diferente, pois você precisa pegar o resultado da iteração anterior e usá-lo na próxima.
Para componentes que dependem um do outro, basta multiplicar as porcentagens de disponibilidade; portanto, se você tiver 2 componentes disponíveis em 50%, terá 25% de disponibilidade total (ou seja, o sistema funcionará apenas quando os dois componentes funcionarem).
fonte
Supondo que o tempo de atividade de cada servidor seja independente dos outros, o tempo de atividade total é
Onde n é o número de servidores E 0,05 é a probabilidade de tempo de inatividade de um servidor
fonte