【问题标题】:aerospike cluster crashed after index creationaerospike 集群在创建索引后崩溃
【发布时间】:2015-09-16 19:14:44
【问题描述】:

我们在 AWS 有一个由 4 台机器 t2micro(1cpu 1gb ram 15gb ssd)组成的集群,我们正在测试 aerospike。 我们使用 aws marketplace AMI 安装 aerospike v3 社区版,并且仅配置 aerospike.conf 文件以在磁盘上具有命名空间。

我们有一个包含两组文件的命名空间,总共 18M 个文档,占用 2GB 内存,占用大约 40GB 磁盘空间。 在 12M 的记录集中创建索引后,系统崩溃了。

一些信息:

实例上的 aql:

[ec2-user@ip-172-XX-XX-XXX ~]$ aql
2015-09-16 18:44:37 WARN AEROSPIKE_ERR_CLIENT Socket write error: 111
Error -1: Failed to seed cluster*

日志的尾部:(它只添加重复的行)

Sep 16 2015 19:08:26 GMT: INFO (drv_ssd): (drv_ssd.c::2406) device /opt/aerospike/data/bar.dat: used 6980578688, contig-free 5382M (5382 wblocks), swb-free 0, n-w 0, w-q 0 w-tot 23 (0.0/s), defrag-q 0 defrag-tot 128 (0.0/s)
Sep 16 2015 19:08:46 GMT: INFO (drv_ssd): (drv_ssd.c::2406) device /opt/aerospike/data/bar.dat: used 6980578688, contig-free 5382M (5382 wblocks), swb-free 0, n-w 0, w-q 0 w-tot 23 (0.0/s), defrag-q 0 defrag-tot 128 (0.0/s)
Sep 16 2015 19:09:06 GMT: INFO (drv_ssd): (drv_ssd.c::2406) device /opt/aerospike/data/bar.dat: used 6980578688, contig-free 5382M (5382 wblocks), swb-free 0, n-w 0, w-q 0 w-tot 23 (0.0/s), defrag-q 0 defrag-tot 128 (0.0/s)
Sep 16 2015 19:09:26 GMT: INFO (drv_ssd): (drv_ssd.c::2406) device /opt/aerospike/data/bar.dat: used 6980578688, contig-free 5382M (5382 wblocks), swb-free 0, n-w 0, w-q 0 w-tot 23 (0.0/s), defrag-q 0 defrag-tot 128 (0.0/s)

作为监视器:

$ asmonitor -h 54.XX.XXX.XX
request to 54.XX.XXX.XX : 3000 returned error
skipping 54.XX.XXX.XX:3000
***failed to connect to any hosts

asadm:

$ asadm -h 54.XXX.XXX.XX -p 3000
Aerospike Interactive Shell, version 0.0.10-6-gdd6fb61
Found 1 nodes
Offline: 54.207.67.238:3000

我们尝试重新启动实例,其中一个已恢复但作为独立节点工作,其余的处于所述状态。 实例工作正常,但 aerospike 服务没有工作。

【问题讨论】:

    标签: amazon-web-services aerospike nosql


    【解决方案1】:

    有一个专门用于使用 Aerospike on Amazon EC2 的指南,您可能需要密切关注它才能开始使用。

    当您看到 AEROSPIKE_ERR_CLIENT“未能播种集群”时,这意味着您的客户端无法连接到集群中的任何种子节点。种子节点是客户端连接的第一个节点,它从中了解集群分区表和其他节点。您将 aql 与默认主机 (127.0.0.1) 和端口 (3000) 值一起使用。尝试使用-h-p,或使用--help 获取有关标志的信息。

    您没有包括许多细节,例如这些节点是否都在同一个 EC2 区域的同一个可用区中?您是否使用网格配置配置了 /etc/aerospike.conf(这是 Amazone EC2 所需的模式)。简而言之,您的节点可以互相看到吗?您正在使用看起来像公共 IP 的东西,但是您的节点需要通过它们的本地 IP 地址看到彼此。他们不知道他们的公共 IP 是什么,除非你配置它。同时客户端可能从其他可用区连接,因此您需要正确设置access_address。看到这个discussion forum关于这个主题的帖子:https://discuss.aerospike.com/t/problems-configuring-clustering-on-aws-ec2-with-3-db-instances/1676

    【讨论】:

    • 抱歉,内容太多,我不知道还能提供什么来丰富问题。我们尝试将主机放在 aql 命令之后,但得到了相同的错误响应。所有节点都在同一个 AZ 上,并且 conf 文件设置为在所有实例中使用带有四个集群 IP 中的两个的网格。我们将节点配置为使用内部 IP 进行连接。今天,节点不知从何而来,一切都正常工作。我们仍然不知道发生了什么。
    • 如果 aql 无法访问它,任何其他客户端也无法访问。我们已经看到其他 AZ 的节点有时可以连接到私有 IP,有时却不能。判断您的应用程序(客户端)节点是否可以连接的最简单方法是远程登录到每个服务器节点的 IP 和端口。很高兴它有效,您可以随时在论坛上跟进。
    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    相关资源
    最近更新 更多