3

I have a node Redis cluser with 1 master and 2 slaves. Sentinel is running on all of them.

master 172.29.245.6 slave1 172.29.240.163 slave2 172.29.225.104 

With my master up, this is the status of my cluster.

Version --> redis-3.2.10-2.el7.x86_64

Master

# Replication role:master connected_slaves:2 slave0:ip=172.29.225.104,port=6379,state=online,offset=486,lag=1 slave1:ip=172.29.240.163,port=6379,state=online,offset=633,lag=0 master_repl_offset:925 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:2 repl_backlog_histlen:924 

Slave1

# Replication role:slave master_host:172.29.245.6 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:17719 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 

Slave2

# Replication role:slave master_host:172.29.245.6 master_port:6379 master_link_status:up master_last_io_seconds_ago:1 master_sync_in_progress:0 slave_repl_offset:20367 slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 

My aim is that when I shut down the master redis process one of the slaves should become a master.

But when I try to do an automatic failover, it gives the following messages.

Oct 27 14:18:22 redis-2 redis-sentinel[4866]: 4866:X 27 Oct 14:18:22.175 # +new-epoch 27 Oct 27 14:18:22 redis-2 redis-sentinel[4866]: 4866:X 27 Oct 14:18:22.175 # +try-failover master redis-master 172.29.245.6 6379 Oct 27 14:18:22 redis-2 redis-sentinel[4866]: 4866:X 27 Oct 14:18:22.185 # +vote-for-leader 61c51a37f2db1673ddcf5dc3fe6816c9ba83a408 27 Oct 27 14:18:33 redis-2 redis-sentinel[4866]: 4866:X 27 Oct 14:18:33.142 # -failover-abort-not-elected master redis-master 172.29.245.6 6379 Oct 27 14:18:33 redis-2 redis-sentinel[4866]: 4866:X 27 Oct 14:18:33.218 # Next failover delay: I will not start a failover before Fri Oct 27 14:20:23 2017 

However when I use the method to manually failover, then it works.

[root@redis-1 ~]# redis-cli -p 26379 SENTINEL failover redis-master OK Oct 27 14:19:40 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:19:40.503 # -sdown master redis-master 172.29.245.6 6379 Oct 27 14:19:40 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:19:40.503 # -odown master redis-master 172.29.245.6 6379 Oct 27 14:24:56 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:24:56.982 # +new-epoch 28 Oct 27 14:24:57 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:24:57.851 # +config-update-from sentinel 5080eb7a0e27f9fb6ea6a197bf1abd334608943f 172.29.245.6 26379 @ redis-master 172.29.245.6 6379 Oct 27 14:24:57 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:24:57.852 # +switch-master redis-master 172.29.245.6 6379 172.29.225.104 6379 Oct 27 14:24:57 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:24:57.852 * +slave slave 172.29.240.163:6379 172.29.240.163 6379 @ redis-master 172.29.225.104 6379 Oct 27 14:24:57 redis-3 redis-sentinel[1211]: 1211:X 27 Oct 14:24:57.852 * +slave slave 172.29.245.6:6379 172.29.245.6 6379 @ redis-master 172.29.225.104 6379 

I have gone through the documentation and followed it exactly but the automatic failover for me does not work. Any ideas ?

My sentinel.conf on all the nodes look like:

MAster

port 26379 sentinel myid 5080eb7a0e27f9fb6ea6a197bf1abd334608943f sentinel monitor redis-master 172.29.245.6 6379 1 sentinel down-after-milliseconds redis-master 5000 sentinel failover-timeout redis-master 60000 sentinel auth-pass redis-master XXXXXXXXXXXXXXXXX # Generated by CONFIG REWRITE dir "/" sentinel config-epoch redis-master 29 sentinel leader-epoch redis-master 29 sentinel known-slave redis-master 172.29.225.104 6379 sentinel known-slave redis-master 172.29.240.163 6379 sentinel known-sentinel redis-master 172.29.240.163 26379 61c51a37f2db1673ddcf5dc3fe6816c9ba83a408 sentinel known-sentinel redis-master 172.29.225.104 26379 85e2ce3707304f7b3b4d0f7281dcd6932094c8b6 sentinel current-epoch 29 

Slave1

port 26379 sentinel myid 61c51a37f2db1673ddcf5dc3fe6816c9ba83a408 sentinel monitor redis-master 172.29.245.6 6379 1 sentinel down-after-milliseconds redis-master 5000 sentinel failover-timeout redis-master 60000 sentinel auth-pass redis-master XXXXXXXXXXXXXXXX # Generated by CONFIG REWRITE dir "/" sentinel config-epoch redis-master 29 sentinel leader-epoch redis-master 27 sentinel known-slave redis-master 172.29.225.104 6379 sentinel known-slave redis-master 172.29.240.163 6379 sentinel known-sentinel redis-master 172.29.245.6 26379 5080eb7a0e27f9fb6ea6a197bf1abd334608943f sentinel known-sentinel redis-master 172.29.225.104 26379 85e2ce3707304f7b3b4d0f7281dcd6932094c8b6 sentinel current-epoch 29 

Slave2

port 26379 sentinel myid 85e2ce3707304f7b3b4d0f7281dcd6932094c8b6 sentinel monitor redis-master 172.29.245.6 6379 1 sentinel down-after-milliseconds redis-master 5000 sentinel failover-timeout redis-master 60000 sentinel auth-pass redis-master XXXXXXXXXXXX # Generated by CONFIG REWRITE dir "/" sentinel config-epoch redis-master 29 sentinel leader-epoch redis-master 26 sentinel known-slave redis-master 172.29.225.104 6379 sentinel known-slave redis-master 172.29.240.163 6379 sentinel known-sentinel redis-master 172.29.245.6 26379 5080eb7a0e27f9fb6ea6a197bf1abd334608943f sentinel known-sentinel redis-master 172.29.240.163 26379 61c51a37f2db1673ddcf5dc3fe6816c9ba83a408 sentinel current-epoch 29 

My Sentinel config also looks good:

[root@redis-1 ~]# redis-cli -p 26379 info sentinel # Sentinel sentinel_masters:1 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=redismaster,status=ok,address=172.29.245.6:6379,slaves=2,sentinels=3 

0

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.