ceph-afr-calc/README.md

3.2 KiB
Raw Blame History

Калькулятор вероятности потери данных в кластере Ceph/Vitastor

Установлен тут:

https://yourcmc.ru/afr-calc/

А что такое Vitastor

Это мой быстрый цефозаменитель.

https://yourcmc.ru/git/vitalif/vitastor/

Логика расчёта

Начнём с варианта, в котором не учитываются отказы серверов:

  • Вероятность потери данных равна вероятности того, что в течение года выйдет из строя любой 1 диск и при этом в течение времени, которое восстанавливается недостающая копия данных, выйдут из строя все оставшиеся диски любой из PG, бывших на указанном диске.
  • Вероятность выхода из строя одной PG = (вероятность выхода из строя диска = P) ^ (N-1), где N - фактор репликации.
  • Все PG, бывшие на указанном диске, для упрощения мы считаем не имеющими других общих OSD. Это, естественно, не совсем корректно, так как в Ceph они, наоборот, почти гарантированно пересекаются, однако учесть степень их пересечения в расчётах слишком сложно, а также, теоретически, вероятность выхода из строя любой из непересекающихся PG всегда выше, чем если бы какие-то из них пересекались.
  • В таком случае события выхода из строя разных PG независимы и вероятность выхода из строя любой из K PG, имевших в своём составе отказавший диск, равна единице минус вероятность того, что ни одна из K PG не выйдет из строя, то есть, (1 - (1 - P^(N-1)) ^ K).
  • "Фатальное событие" в каждый момент времени равно тому, что из строя выйдет любой диск и одновременно ПОСЛЕ него, на протяжении времени восстановления L (выраженного в годах), также выйдет из строя любая из PG, бывших на этом диске. Так как это "мгновенная вероятность", а выход из строя других дисков учитывается "после" этого мгновения, события мы опять-таки посчитаем независимыми и вычислим вероятность наступления любого из них как 1 - (1 - AFR * (1 - (1 - (AFR*L)^(N-1)) ^ K)) ^ D, где D - общее число дисков.

Аргументация остальных вариантов - coming soon... :)