Describe algorithm for the simplest case

master
Vitaliy Filippov 2021-01-16 00:06:51 +03:00
parent 25e5b28204
commit 6b0e5e7d0d
1 changed files with 25 additions and 0 deletions

View File

@ -9,3 +9,28 @@ https://yourcmc.ru/afr-calc/
Это мой быстрый цефозаменитель.
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... :)