У меня есть 3 настройки коробки Redis Sentinel:
CLIENT (connects to S1)
|
↓
+----+
| M1 | us-east-1
| S1 |
+----+
|
+----+ | +----+
| R2 |----+----| R3 |
| S2 | | S3 |
+----+ +----+
us-east-2 us-west-2
M1 - Master
S1 - Sentinel 1
S2 - Sentinel 2
S3 - Sentinel 3
R2 - First slave (R=replica)
R3 - Second slave
После того, как мой мастер умер, страж сделал переход на R2.
Я вернул M1 в оперативный режим (очистил место на диске), и теперь M1 жив и здоров, но является рабом R2. Существует ли автоматический (или полуавтоматический) способ снова сделать M1 мастером, а R2 - ведомым устройством M1, и мой трафик снова, используя M1 в качестве главного экземпляра redis?
По сути, я хочу вернуться к тому, что было до аварийного переключения.
В настоящее время происходит то, что он выбирает R2 в качестве мастера и перенастраивает его на:
CLIENT (connects to S1)
|
↓
+----+
|[R2]| us-east-2
| S2 |
+----+
|
+----+ | +----+
|[M1]|----+----| R3 |
| S1 | | S3 |
+----+ +----+
us-east-1 us-west-2
Когда я переключаюсь вручную, он назначает R3 ведущим. (что отчасти ожидается).
Но потом, когда я снова переключаюсь вручную, это продвигает R2, но я ожидаю, что это продвинет M1.
Все последующие аварийные переключения вращаются между R2 и R2 (при этом всегда сохраняя M1 в качестве подчиненного).
Мой приоритет ведомого M1 не указан, так что это означает, что по умолчанию установлено значение 100.
Мой приоритет подчиненного R2 равен 200, а R2 - 300. Это наводит меня на мысль, что он должен вращать все 3 блока, но он поворачивает только R2 и R3 после первоначального переключения при сбое.
Для меня это похоже на дозорную ошибку