From 6b0e5e7d0d146e63e050eac832ec96dab83c0b8d Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 16 Jan 2021 00:06:51 +0300 Subject: [PATCH] Describe algorithm for the simplest case --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index b081ac1..4e1f048 100644 --- a/README.md +++ b/README.md @@ -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... :)