Aerospike:错误无法播种集群(重启一个节点时在 2 节点集群上)

Aerospike: Error Failed to seed cluster (On 2 node cluster while restarting one node)

我正在使用 Aerospike 3.7.3 和 python 客户端 2.x

我有两个节点集群,每个节点消耗 100G 数据。由于一些问题,我已经停止了一个节点并以 cold-start-empty=true 开始。

  1. 第一个问题是,完成迁移大约需要 9 个小时。通常需要9个小时吗?

  2. 在迁移期间连接到集群时偶尔(30% 的时间)出现以下错误。 (启动集群中的一个节点时)

        aerospike_config = {
          'hosts': [ ('212.16.290.10', 3000), ('212.16.290.11', 3000),],
          'policies': {
             'timeout': 10, # milliseconds
             'key': aerospike.POLICY_KEY_SEND
           }
        }
    
    
    client  = aerospike.client(aerospike_config).connect()
    
    exception.ClientError: (-1L, 'Failed to seed cluster', 'src/main/aerospike/as_cluster.c', 417)

请帮忙。

当您执行空冷启动时,您创建了一种情况,其中一个节点拥有 100% 的数据,而另一个刚加入的节点拥有 0% 的数据。您不允许它读取磁盘并恢复它之前拥有的 50%,之后您将检查数据是否不同步。在这一点上,迁移的时间长短取决于诸如磁盘的读取速度,以及将一半数据传送到对面节点所拥有的网络,同时处理传入的工作。迁移时间不仅取决于您的硬件,还取决于您的配置。请参阅 migrate-threads, migrate-xmit-hwm, migrate-xmit-lwm, migrate-xmit-priority, migrate-xmit-sleep 和其他配置参数。

对于您的其他问题,您将连接超时限制从默认值 1 秒降至 10 毫秒。我不太了解您的节点或工作负载,但这是一个非常低的连接超时。如果您在 30% 的时间内看到该错误,则它设置得太低了。基本上,无法为集群播种意味着客户端无法在 10 毫秒内连接到您提供的任何一个 IP,因此它无法获取种子节点,即它从中了解集群中其他节点的节点,并获取分区 table.