ceph-afr-calc/README.md

37 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

## Калькулятор вероятности потери данных в кластере 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... :)