【问题标题】:Redis Cluster: Moving MASTER via Pacemaker/CorosyncRedis 集群:通过 Pacemaker/Corosync 移动 MASTER
【发布时间】:2021-08-29 22:11:15
【问题描述】:

我的环境:

我想使用 Redis 作为 Memcached 的替代品。

就我而言,我将使用 3 台服务器,每台服务器将拥有一个 Redis MASTER。我不需要复制,只需要分片。所有数据都将存储在内存中,我不在乎它是否会在服务器宕机时丢失。

Server 1: master_1.conf
Server 2: master_2.conf
Server 3: master_3.conf

如果一台服务器出现故障,Pacemaker/Corosync 将在另一台服务器上启动相同的 MASTER(所有服务器都有一个共享的只读文件系统,因此可以使用相同的配置文件启动新的 MASTER ,但在另一台服务器上)。

Server 1: dead
Server 2: master_1.conf (data wiped), master_2.conf
Server 3: master_3.conf

当故障服务器修复后,MASTER会返回给它。我了解在这些移动过程中数据将被擦除。

Server 1: master_1.conf (data wiped)
Server 2: master_2.conf
Server 3: master_3.conf

问题:

据我所知,真正重要的是在创建集群时分配给 MASTER 的 NODE ID。因此,如果我将我的 MASTER 移动到另一台服务器,我需要确保它保持与之前服务器上相同的 NODE ID。没有它,它就无法重新加入集群。

但是,我找不到它的配置选项。有没有办法在config文件中配置NODE ID?

我不关心移动过程中的数据丢失,我只需要确保所有 3 个 MASTERS 都在运行,即使它们在 1 台服务器上运行(如果其他 2 台停机)。

Server 1: server dead
Server 2: server dead
Server 3: master_1.conf (data wiped), master_2.conf (data wiped), master_3.conf

【问题讨论】:

    标签: redis redis-cluster


    【解决方案1】:

    原来我无法配置节点 ID,也不必这样做。 由于我有一个共享文件系统,因此我创建了一个具有 WRITE 功能的单独文件夹,所有 redis 服务器都在其中托管它们的 nodes.conf 文件(nodes_1.conf、nodes_2.conf、nodes_3.conf)。

    当一个服务器上的 redis 实例死机时,pacemaker 会在另一台服务器上启动它,该服务器具有相同的配置和来自共享文件系统的相同 nodes.conf 文件。

    然后实例会自动重新加入集群,没有任何问题。

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      相关资源
      最近更新 更多