在 Redis-sentinel 主从配置中,新主控显示为初始主控关闭
In Redis-sentinel master-slave cofiguration new master is shown as down for the initial master
已安装使用 3 个节点(1 个主节点和 2 个从节点)的 redis (v. 3.0.4) 主从模型,每个节点都需要通过 https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-ubuntu-14-04 then started 3 sentinel on each node as described in the article http://blog.commando.io/redis-is-easy-trivial-hard/
中所述
在尝试拿下主人后,哨兵如预期的那样将其中一名奴隶提升为主人。然后老夫子起来的时候
它再次成为一个奴隶并承认一个新的主人,这可以在
/etc/redis/sentinel.conf 使用新的主 IP 更新
在 'sentinel monitor redis-cluster' 属性中。
但是注意到老主人尽管知道新主人的IP,但它认为新主人已经下线,不像其他奴隶看到它一样。这可以通过 运行 这个针对老主人的命令来检查:
$redis-cli -a altoros info replication
#
Replication
role:slave
master_host: new master ip
master_port:6379
master_link_status:down
当尝试使用同步客户端测试节点上的数据复制时,这似乎也导致了以下错误 "MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'"。
The logs of the old masters (/var/log/redis/redis-server.log) are showing:
20731:S 09 Nov 10:16:31.117 * Connecting to MASTER <new master="" ip="">: 6379
20731:S 09 Nov 10:16:31.117 * MASTER <-> SLAVE sync started
20731:S 09 Nov 10:16:31.118 * Non blocking connect for SYNC fired the event.
20731:S 09 Nov 10:16:31.118 * Master replied to PING, replication can continue...
20731:S 09 Nov 10:16:31.119 * (Non critical) Master does not under stand REPLCONF listening-port: -NOAUTH Authentication required.
20731:S 09 Nov 10:16:31.119 * (Non critical) Master does not under stand REPLCONF capa:
-NOAUTH Authentication required.
这看起来旧主人无法向新主人进行身份验证,因为它
没有他的密码,但如何正确设置?
因为注意到/etc/redis/redis.conf在换了新的master后没有变化
提升,与 /etc/redis/sentinel.conf 不同,这可能会导致 master 的 redis.conf 没有新 master 的密码。
非常感谢任何解决问题的提示,在此先感谢。
master 需要像 slave 一样配置,因为有一天它可能会成为一个。因此,您需要将其 masterauth
设置为 pod 的密码。
您可以在不重新启动的情况下执行此操作 y 对 "old master" 执行以下操作:
redis-cli -h oldmasterip -a thepassword config set masterauth thepassword
redis-cli -h oldmasterip -a thepassword config rewrite
从那时起应该没问题,配置文件将被更新。
已安装使用 3 个节点(1 个主节点和 2 个从节点)的 redis (v. 3.0.4) 主从模型,每个节点都需要通过 https://www.digitalocean.com/community/tutorials/how-to-configure-a-redis-cluster-on-ubuntu-14-04 then started 3 sentinel on each node as described in the article http://blog.commando.io/redis-is-easy-trivial-hard/
中所述在尝试拿下主人后,哨兵如预期的那样将其中一名奴隶提升为主人。然后老夫子起来的时候 它再次成为一个奴隶并承认一个新的主人,这可以在 /etc/redis/sentinel.conf 使用新的主 IP 更新 在 'sentinel monitor redis-cluster' 属性中。 但是注意到老主人尽管知道新主人的IP,但它认为新主人已经下线,不像其他奴隶看到它一样。这可以通过 运行 这个针对老主人的命令来检查:
$redis-cli -a altoros info replication
#
Replication
role:slave
master_host: new master ip
master_port:6379
master_link_status:down
当尝试使用同步客户端测试节点上的数据复制时,这似乎也导致了以下错误 "MASTERDOWN Link with MASTER is down and slave-serve-stale-data is set to 'no'"。
The logs of the old masters (/var/log/redis/redis-server.log) are showing:
20731:S 09 Nov 10:16:31.117 * Connecting to MASTER <new master="" ip="">: 6379
20731:S 09 Nov 10:16:31.117 * MASTER <-> SLAVE sync started
20731:S 09 Nov 10:16:31.118 * Non blocking connect for SYNC fired the event.
20731:S 09 Nov 10:16:31.118 * Master replied to PING, replication can continue...
20731:S 09 Nov 10:16:31.119 * (Non critical) Master does not under stand REPLCONF listening-port: -NOAUTH Authentication required.
20731:S 09 Nov 10:16:31.119 * (Non critical) Master does not under stand REPLCONF capa:
-NOAUTH Authentication required.
这看起来旧主人无法向新主人进行身份验证,因为它 没有他的密码,但如何正确设置?
因为注意到/etc/redis/redis.conf在换了新的master后没有变化 提升,与 /etc/redis/sentinel.conf 不同,这可能会导致 master 的 redis.conf 没有新 master 的密码。
非常感谢任何解决问题的提示,在此先感谢。
master 需要像 slave 一样配置,因为有一天它可能会成为一个。因此,您需要将其 masterauth
设置为 pod 的密码。
您可以在不重新启动的情况下执行此操作 y 对 "old master" 执行以下操作:
redis-cli -h oldmasterip -a thepassword config set masterauth thepassword
redis-cli -h oldmasterip -a thepassword config rewrite
从那时起应该没问题,配置文件将被更新。