Назад | Перейти на главную страницу

Redis Sentinel не дает сбоев

У нас есть три сервера Redis 3.2.7. Каждый сервер redis запускает сам redis и дозор redis (для отработки отказа). Вот конфигурация дозорного для каждого узла

Подчиненный 1 (часовой) 192.168.0.15

bind 192.168.0.15
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
sentinel config-epoch mymaster 77
dir "/"
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.17 26379 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel known-sentinel mymaster 192.168.0.16 26379 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel current-epoch 78

Мастер (часовой) - 192.168.0.16

bind 192.168.0.16
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
dir "/"
sentinel config-epoch mymaster 77
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.17 26379 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel known-sentinel mymaster 192.168.0.15 26379 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel current-epoch 78

Подчиненный S (часовой) 192.168.0.17

bind 192.168.0.17
port 26379
logfile "/var/log/sentinel.log"
sentinel myid 2b72876887f0e2c8db75e6d407babb60eb1a7185
sentinel monitor mymaster 192.168.0.16 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel auth-pass mymaster super-secret-password
dir "/"
sentinel config-epoch mymaster 77
sentinel leader-epoch mymaster 0
sentinel known-sentinel mymaster 192.168.0.16 26379 06b84b7e6e320797ef49681c2e0598364b673c15
sentinel known-sentinel mymaster 192.168.0.15 26379 57ge72174330d523tcec8adcd1e039c7f51c298c
sentinel current-epoch 78

Если я остановлю redis-server и redis-sentinel на главном узле, я вижу следующее на подчиненных устройствах:

2664:X 01 Mar 16:17:15.563 # +sdown master mymaster 192.168.0.16 6379

Значит, стражи видят Мастера подавленным. Однако переключения при отказе не происходит. Если я проверю рабов, используя:

redis-cli -h 127.0.0.1 -p 26379 -a super-secret-password sentinel get-master-addr-by-name mymaster

Я получил:

1) "192.168.0.16"
2) "6379"

Итак, они видят старого Мастера (который был отключен как все еще их Мастер. Если они видят Мастера как подавленного, почему они не выбирают нового Мастера?

Кстати, я считаю, что эта конфигурация работала, когда мы работали с Redis 2.8.9. Поэтому я могу только догадываться, что redis sentinel мог быть изменен в 3.2.7. Я просто не знаю, с чего начать.

Любая помощь или указатели будут оценены.

Спасибо Брэд