В чем разница между отказоустойчивостью и высокой доступностью?

Согласно моему чтению документации jboss, в нем говорится:

Мы определяем высокую доступность как способность системы продолжать работу после отказа одного или нескольких серверов. Частью высокой доступности является аварийное переключение, которое мы определяем как возможность для клиентских подключений мигрировать с одного сервера на другой в случае сбоя сервера, чтобы клиентские приложения могли продолжать работать.

Является ли отработка отказа частью высокой доступности? Как мы можем отличить отказоустойчивость от высокой доступности?


person Techie    schedule 29.05.2015    source источник


Ответы (3)


Высокая доступность

Относится к тому факту, что серверная система каким-то образом устойчива к сбоям. В большинстве случаев это делается с помощью аппаратного резервирования. Предположим, что у машины есть резервные источники питания, и если один выйдет из строя, машина продолжит работу.

Отказ

Кроме того, у вас есть избыточность приложений (отказоустойчивость), которая обычно относится к способности приложения, работающего на нескольких аппаратных установках, согласованно реагировать на запросы клиентов с любой из этих аппаратных установок. Таким образом, если аппаратное обеспечение полностью выйдет из строя или операционная система умрет на определенной машине, другая машина сможет продолжить работу.

SQL Server обеспечивает избыточность приложений четырьмя способами:

  • Кластеризация
  • Зеркальное отображение
  • Репликация
  • Доставка журналов
person blairmeister    schedule 29.05.2015
comment
Я думаю, что High Availability — это не только отказоустойчивость, но и общая доступность предоставляемых услуг. Это может также включать горячее развертывание программного обеспечения (ОС, промежуточного программного обеспечения, приложения) и аппаратных изменений решения без снижения доступности. - person rolish; 20.01.2017

Отказоустойчивость — это средство достижения высокой доступности (HA). Воспринимайте высокую доступность как функцию, а аварийное переключение как одну из возможных реализаций этой функции. Отказоустойчивость не всегда является единственным соображением при достижении высокой доступности.

Например, Cassandra обеспечивает высокую доступность за счет репликации, но степень доступности определяется настройками согласованности данных. По сути, эти настройки определяют, сколько узлов должно ответить, чтобы действие (чтение или запись) завершилось успешно. Требование большего количества узлов для ответа означает меньшую доступность, а требование меньшего количества узлов означает большую доступность. Это пример HA, который, строго говоря, не имеет ничего общего с отказоустойчивостью.

person BitMask777    schedule 20.11.2015

Высокая доступность (для краткости HA) — это широкий термин, поэтому, когда я думаю об этом, я склонен думать об кластерах высокой доступности. .

Из кластера высокой доступности Википедии:

Кластеры высокой доступности — это группы компьютеров, поддерживающие серверные приложения, которые можно надежно использовать с минимальным временем простоя. Они работают с использованием программного обеспечения высокой доступности для использования резервных компьютеров в группах или кластерах, которые обеспечивают непрерывное обслуживание в случае сбоя компонентов системы. Без кластеризации, если сервер, на котором запущено определенное приложение, выйдет из строя, приложение будет недоступно до тех пор, пока неисправный сервер не будет исправлен.

Таким образом, вывод из приведенного выше описания заключается в том, что кластеры высокой доступности обеспечат вам минимальное количество аварийных переключений во время простоя. Позвольте мне объяснить два типа отказоустойчивости, которые могут предоставить кластеры высокой доступности:

  1. Hot-Hot / Active-Active: резервные компьютеры действительно работают параллельно, создавая точно такое же состояние и точно такие же выходные данные. Все они являются активными узлами, работающими как идеальное зеркало друг друга. В этом сценарии ваше время простоя при отработке отказа равно нулю, и вы можете просто отключить питание от любой машины в кластере без простоя или нарушения работы вашего сервиса.

  2. Hot-Warn / Active-Passive: только один основной компьютер является активным, в то время как другие компьютеры в кластере пассивно восстанавливают то же состояние, что и основной. Когда основной компьютер выходит из строя, он должен быть отключен или уничтожен (автоматически или оператором), а затем пассивный компьютер из кластера должен быть активизирован (автоматически или оператором).

Итак, в чем подвох? Подвох в том, что приложения, которые могут работать в кластере высокой доступности, не являются тривиальными для разработки, поскольку они должны быть настоящими детерминированными конечными автоматами. классическая проблема возникает, когда ваше приложение необходимо использовать часы для построения состояния на основе времени, поскольку часы по своей природе очень недетерминированы.

Отказ от ответственности: я являюсь одним из разработчиков CoralSequencer.

person rdalmeida    schedule 23.06.2021