Высокая доступность (для краткости HA) — это широкий термин, поэтому, когда я думаю об этом, я склонен думать об кластерах высокой доступности. эм>.
Из кластера высокой доступности Википедии:
Кластеры высокой доступности — это группы компьютеров, поддерживающие серверные приложения, которые можно надежно использовать с минимальным временем простоя. Они работают с использованием программного обеспечения высокой доступности для использования резервных компьютеров в группах или кластерах, которые обеспечивают непрерывное обслуживание в случае сбоя компонентов системы. Без кластеризации, если сервер, на котором запущено определенное приложение, выйдет из строя, приложение будет недоступно до тех пор, пока неисправный сервер не будет исправлен.
Таким образом, вывод из приведенного выше описания заключается в том, что кластеры высокой доступности обеспечат вам минимальное количество аварийных переключений во время простоя. Позвольте мне объяснить два типа отказоустойчивости, которые могут предоставить кластеры высокой доступности:
Hot-Hot / Active-Active: резервные компьютеры действительно работают параллельно, создавая точно такое же состояние и точно такие же выходные данные. Все они являются активными узлами, работающими как идеальное зеркало друг друга. В этом сценарии ваше время простоя при отработке отказа равно нулю, и вы можете просто отключить питание от любой машины в кластере без простоя или нарушения работы вашего сервиса.
Hot-Warn / Active-Passive: только один основной компьютер является активным, в то время как другие компьютеры в кластере пассивно восстанавливают то же состояние, что и основной. Когда основной компьютер выходит из строя, он должен быть отключен или уничтожен (автоматически или оператором), а затем пассивный компьютер из кластера должен быть активизирован (автоматически или оператором).
Итак, в чем подвох? Подвох в том, что приложения, которые могут работать в кластере высокой доступности, не являются тривиальными для разработки, поскольку они должны быть настоящими детерминированными конечными автоматами. классическая проблема возникает, когда ваше приложение необходимо использовать часы для построения состояния на основе времени, поскольку часы по своей природе очень недетерминированы.
Отказ от ответственности: я являюсь одним из разработчиков CoralSequencer.
person
rdalmeida
schedule
23.06.2021