Требования к отказоустойчивости
Отказоустойчивость — способность системы сохранять свою работу и продолжать выполнять свои функции даже при возникновении сбоев или отказов отдельных ее компонентов.
Для обеспечения отказоустойчивости при размещении ролей следует использовать разные сервера или ВМ на разных гипервизорах / серверах. Рекомендации по размещению ролей представлены в таблице.
| Наименование роли * | Отказоустойчивость и восстановление | Требования к размещению |
|---|---|---|
| Система хранения данных | ||
| pythagoras | Да (балансировка нагрузки) | Минимум два сервера роли |
| nginx | Да (балансировка нагрузки) | Минимум два сервера роли |
| arangodb | Да (Кворум) | Минимум три сервера роли |
| postgres | Да (Кворум) | Минимум три сервера роли |
| etcd | Да (Кворум) | Минимум три сервера роли |
| rabbitmq | Да (Кворум) | Минимум три сервера роли |
| redis | Да (Кворум) | Минимум три сервера роли |
| elasticsearch | Да (Кворум) | Минимум три сервера роли |
| keycloak | Да (балансировка нагрузки) | Минимум два сервера роли |
| arangodb_agent | Да (Кворум) | Минимум три сервера роли |
| minio | Да (Кворум) | Минимум три сервера роли |
| grafana | не требуется | не требуется |
| Система редактирования и совместной работы | ||
| co-audit | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-authn | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-boards | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-chatbot | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-cu | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-cvm | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-dcm | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-dps | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-du | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-fm | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-gateway | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-jod | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-lb-core-auth | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-nm | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-plugins | Да (балансировка нагрузки) | Минимум два сервера роли |
| co-etcd | Да (Кворум) | Минимум три сервера роли |
| co-imc | Да (Кворум) | Минимум три сервера роли |
| co-mq | Да (Кворум) | Минимум три сервера роли |
| co-infra | не требуется | не требуется |
\ * — описание ролей Описание ролей для серверов системы
Механизмы отказоустойчивости
| Тип механизма отказоустойчивости | Описание работы | Ограничения |
|---|---|---|
| Active-Active (Балансировка нагрузки) | Все сервера работают одновременно. Отказоустойчивость достигается распределением нагрузки на другие сервера роли при отказе одного из серверов | Существует риск каскадного отказа роли из-за большей нагрузки на оставшиеся сервера |
| Active-Passive (Балансировка нагрузки) | В активном режиме работает только один сервер. При отказе активного сервера вся нагрузка переходит на другой сервер роли, работающий в пассивном режиме | Если отказ активного сервера связан с уровнем нагрузки, при переключении новый активный сервер может не справиться с нагрузкой |
| Кворум | Кворум определяет минимальное количество участвующих серверов, которое должно быть доступно и способно взаимодействовать для того, чтобы кластер считался работоспособным и мог принимать решения | Отказоустойчивость сохраняется при работе минимального большинства доступных серверов (например 2 из 3, 4 из 7) |