Этот вопрос больше математический, чем вопрос о сервере, но он тесно связан с сервером.
Если у меня есть сервер, который я смог бы гарантировать 95% времени безотказной работы, и я бы поместил этот сервер в кластер из 2, сколько бы было время безотказной работы? Теперь, допустим, я делаю то же самое, но я делаю кластер из 3?
Давайте не будем рассматривать такие вещи, как единственная точка отказа, а просто сосредоточимся здесь на математике. Одна из вещей, которая делает это немного сложным, заключается в том, что если, например, у меня есть 2 сервера, вероятность того, что они оба отключены, составляет 2 ^ 2, то есть 1/4; или для 3 это 2 ^ 3, так что 1/8. Учитывая, что у меня есть время простоя 5% для каждого из этих серверов, будет ли общее среднее значение 1/8 от этих 5%?
Как бы вы рассчитали что-то вроде этого?
источник
Ответы:
Время работы - это скользкая вещь ... Если вы хотите рассчитать доступность услуги, то это просто
Если у вас есть кластер, предоставляющий сервис, то вероятность того, что сервис станет недоступным, снижается, но расчет доступности (времени безотказной работы) сервиса остается прежним.
источник
Вероятность того, что один сервер отключен, составляет (1 - 0,95). Вероятность того, что оба сервера отключены, составляет (1 - 0,95) * (1 - 0,95) = 0,0025 и т. Д.
Таким образом, используя вашу модель и с чисто математической точки зрения один или оба сервера должны работать до 99,75% времени.
Однако я не уверен, что использование такой математической модели является правильным способом определения вашего потенциального времени безотказной работы, поскольку на него могут влиять другие факторы, общие для обоих серверов, т. Е. 95% могут быть из-за 5% времени есть отключение питания, которое повлияет на ОБА серверы, поэтому наличие кластера не имеет значения
источник
Это зависит от того, почему ваши серверы не работают 5% времени. Если у вас есть мощность 95% время, но ваши сервера в противном случае безупречны, то второй сервер в том же месте , не увеличивает время бесперебойной работы на всех : если один идет вниз, и идти вниз. Это пример взаимосвязи отказов . Вероятно, что по крайней мере некоторые из ваших простоев происходят из-за ошибок, которые влияют на все серверы вместе (питание ...). Но некоторые простои будут независимымимежду серверами. Если вы хотите сделать это правильно, вам следует разобраться с этими вещами отдельно. Таким образом, вы хотите определить вероятность того, что сервер 1 не имеет независимой ошибки (p), а сервер 2 не имеет независимой ошибки (q) и что нет системной ошибки, которая убивает обоих (r). Было бы относительно безопасно предположить, что эти ошибки независимы, и, таким образом, вы могли бы просто умножить их вместе: p q r - вероятность того, что какой-либо сервер работает.
Проблема в том, что вы не можете использовать фактические данные времени безотказной работы, чтобы дать вам значения для p, q и r, за исключением того, что если у вас есть только сервер 1 и он работает в 95% случаев, тогда p * r = 0,95.
источник
Прежде всего, общая доступность или время работы кластера зависит от того, насколько большая часть кластера должна быть активной, чтобы весь кластер считался «работающим».
Как вы узнали, первые два случая довольно просты для расчета. Пусть вероятность того, что один сервер будет подключен к сети в любой момент времени, p = 0,95. Теперь для трех серверов вероятность того, что они все подключены одновременно, равна p 3 = 0,857375.
В противоположном случае, когда по крайней мере один компьютер должен быть активным в данный момент времени, его легче вычислить, если обратить внимание на проблему и посмотреть на вероятность того, что машины находятся в автономном режиме . Вероятность того, что один компьютер находится в автономном режиме, равна q = 1- p = 0,05, и, следовательно, вероятность того, что все они отключены одновременно, равна q 3 = 0,000125, что дает вероятность 1- q 3 = 1- (1- p ). 3 = 0,999875, что по крайней мере один работает.
Случай 2 из 3 вычислить немного сложнее. Существует четыре возможных ситуации, когда работают как минимум два из трех серверов. 1) ABC работают, 2) AB работают, 3) AC работают, 4) BC работают. Вероятности для всех этих, соответственно, ppp , ppq , pqp и qpp . Поскольку случаи не пересекаются, вероятности могут быть сложены вместе, давая в итоге A = p 3 + 3 p 2 q = 0.992750.
(Это может быть расширено до большего количества машин. Факторами являются хорошо известные биномиальные коэффициенты , поэтому подсчет различных случаев вручную работает в основном как упражнение.)
Конечно, с такими расчетами гораздо проще справиться с помощью готовой компьютерной программы ... По крайней мере, один онлайн-счетчик можно найти здесь:
http://stattrek.com/online-calculator/binomial.aspx
Вводя входные значения: вероятность успеха = 0,95, количество попыток = 3, количество успехов = 2, мы получаем результат «Совокупная вероятность: P (X ≥ 2) = 0,99275». Также приведены некоторые другие связанные значения, а онлайн-инструмент также позволяет легко играть с другими числами.
И да, все вышеперечисленное предполагает, что серверы выходят из строя независимо, то есть а) я игнорировал любые проблемы, влияющие на кластер в целом, б) нет ничего подобного устареванию компонентов, которое могло бы привести к сбою серверов при или почти одновременно.
источник
У вас есть 5% времени простоя на каждом сервере, поэтому вы умножаете его - 0,05 * 0,05 = 0,0025, что дает вам 1-0,0025 = 0,9975 -> 99% времени безотказной работы. С 3 серверами у вас есть 1-0.000125 = 0.999875> 99,9% безотказной работы.
Я обычно учитываю доступность 97% для автономного хоста (с резервным жестким диском и блоком питания), что дает> 99,9% для 2N и> 99,99% для 3N избыточности.
источник
Я еще покопался и нашел этот кусочек головоломки.
На примере сервера с доступностью 95% добавление второго сервера увеличит доступность до: 95% + (1-95%) * 95% = 99,75%. Логика заключается в том, что когда 1-й сервер не работает (5% времени), второй сервер все еще работает в 95% времени.
Добавление третьего сервера будет повторять это так же. Первые 2 вместе уже доступны на 99,75%, поэтому добавление третьего будет: 99,75% + (1-99,75%) * 95% = 99,9875%. И так далее. Это близко к ответу Фила, но все же немного по-другому, так как вам нужно взять результат предыдущей итерации и использовать его в следующей.
Для компонентов, зависящих друг от друга, вы просто умножаете проценты доступности, поэтому, если у вас есть 2 компонента, которые доступны на 50%, у вас будет общая доступность на 25% (т.е. система работает только тогда, когда работают оба компонента).
источник
Предполагая, что время работы каждого сервера не зависит от других, общее время безотказной работы составляет
Где n - количество серверов, а 0,05 - вероятность простоя одного сервера.
источник