Аварийное переключение: для программной ошибки или аппаратного обеспечения или обоих
Я проектирую систему, в которой у меня будут программы, работающие в номинальном / избыточном режиме, одна на одной машине, одна на другой. В случае сбоя Номинальной программы (событие Failover) резервный сервер должен вступить во владение и принять операции как новый Номинальный процесс. Это должно быть прозрачно для пользователя.
Мой вопрос: когда происходит отказоустойчивость, это должно быть только из-за аппаратного сбоя? или программные ошибки являются достаточной причиной для запуска аварийного переключения?
В более общем смысле, существует ли отраслевой стандарт для принятия решения о том, что должно вызывать отказоустойчивость, или это зависит от системного архитектора / дизайнера?
1 ответ
С кластерной точки зрения подобные ошибки не имеют никакого значения. Дело в том, что вы не можете полагаться на какие-либо события "Я провалю" от сбойного узла.
Кластер (в вашем случае роль "Избыточный") просто обнаруживает, что узел не отправил сердцебиение (не ответил на пинг). Затем "Избыточный" делает себя "хозяином" и начинает обрабатывать входящие запросы. Вот и все, я думаю.