2013-06-24 2 views
0

Я проектирую систему, в которой у меня будут программы, работающие в Номинальном/Резервном режиме, Один на один, один на другой. Если Nominal program fail (Событие отказоустойчивости), Redundant должен взять на себя и принять на себя операции как новый Номинальный процесс. Это должно быть прозрачным для пользователя.Отказоустойчивость: для ошибки программного обеспечения или оборудования или для обоих?

Мой вопрос: когда происходит сбой, должно ли это быть только из-за отказа оборудования? или ошибки программного обеспечения достаточны для того, чтобы вызвать отказ?

В целом, существует ли промышленный стандарт для принятия решения о том, что должно приводить к отказу, или это зависит от системного архитектора/дизайнера?

ответ

1

С точки зрения кластера эти ошибки не имеют никакого значения. Дело в том, что вы не можете полагаться на какие-либо события «я проваляю» из отказавшего узла.

Кластер (в вашем случае «избыточная» роль) просто обнаруживает, что узел не отправил heartbeat (не ответил на ping). Затем «Redundant» делает себя «мастером» и начинает обработку входящих запросов. Я думаю, это все.