Vitaliy Filippov e196d00081 | ||
---|---|---|
dist | ||
.babelrc | ||
README.md | ||
afr.js | ||
index.html | ||
main.js | ||
package.json | ||
webpack.config.js |
README.md
Калькулятор вероятности потери данных в кластере Ceph/Vitastor
Установлен тут:
А что такое 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... :)