Автоматическое переключение MongoDB между двумя центрами обработки данных

Автоматическое переключение MongoDB между двумя центрами обработки данных

Если я разверну набор реплик MongoDb только в 2 центрах обработки данных, то в случае отказа одного центра обработки данных может ли быть реализован автоматический переход на другой центр обработки данных?

Рассмотрим ситуацию, когда в одном центре обработки данных есть первичный, вторичный и арбитр, а во втором центре обработки данных есть 2 вторичных члена. По сути, набор реплик из 5 членов.

Если центр обработки данных 2 выйдет из строя, в наборе реплик в центре обработки данных 1 все еще останется 3 участника. Это здорово.

В обратном случае, если центр обработки данных 2 останется в рабочем состоянии, а центр обработки данных 1 выйдет из строя, из набора реплик из 5 участников останется только 2 участника. Этого недостаточно, чтобы любой из вторичных участников сам проголосовал за то, чтобы стать первичным.

Это правильно? Если нет, то что я делаю не так.

Если это невозможно, сообщите мне, пожалуйста, чтобы я мог рассмотреть другие варианты.

Добавление третьего центра обработки данных для размещения арбитра не представляется возможным.

решение1

Ответ на ваш вопрос заключается в том, что невозможно обойтись только двумя локациями.

Причину, по которой это невозможно, можно объяснить следующим образом: если оба местоположения полностью функциональны, но сетевое соединение между ними неисправно, то функциональным может оставаться только одно из них. В этом случае неприемлемо, чтобы оба местоположения одновременно выбирали первичное.

Нет возможности для одного местоположения определить разницу между полным отказом другого местоположения и его работоспособностью, но сетевое соединение между ними отсутствует.

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

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

решение2

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

Связанный контент