我有一个奇怪的问题,把数据写到机场集群
aql> insert into storebig.Chunks (PK,Data) values ('5cb138284d431abd6a053a56625ec088bfb88912', '1234567890')
OK, 1 record affected.
aql> select * from storebig.Chunks where PK = '5cb138284d431abd6a053a56625ec088bfb88912'
Error: (2) AEROSPIKE_ERR_RECORD_NOT_FOUND
aql> insert into storebig.Chunks (PK,Data) values ('5cb138284d431abd6a053a56625ec088bfb88912', '1234567890')
Error: (1) AEROSPIKE_ERR_SERVER同样的故事与金刚客户端库(当然)
很可能集群不健康-服务器日志中出现了一些奇怪的消息:
May 06 2015 12:17:49 GMT: WARNING (drv_ssd): (drv_ssd.c::1236) read: read wrong key: expecting de6f0bc93bfdf560 got 8ad3dd7fce1ac7ec
May 06 2015 12:17:49 GMT: WARNING (drv_ssd): (drv_ssd.c::1236) read: read wrong key: expecting de6f0bc93bfdf560 got 8ad3dd7fce1ac7ec
May 06 2015 12:17:50 GMT: WARNING (drv_ssd): (drv_ssd.c::1230) read: bad block magic offset 29843600384
May 06 2015 12:17:50 GMT: WARNING (drv_ssd): (drv_ssd.c::1230) read: bad block magic offset 29843600384我的问题是:我能做什么来调查情况,调试和恢复?去哪里看看,试试什么?
谢谢。
致以最良好的问候,丹尼尔·波多尔斯基
更新
配置模板(从这个模板在码头容器启动时生成的实际配置)
service {
user root
group root
paxos-single-replica-limit 1
pidfile /var/run/aerospike/asd.pid
service-threads 4
transaction-queues 4
transaction-threads-per-queue 4
proto-fd-max 15000
}
logging {
file /storage/logs/aerospike.log {
context any info
}
console {
context any info
}
}
network {
service {
address <%=os.getenv("NODE_EXT_ADDR")%>
port 3000
}
fabric {
address <%=os.getenv("NODE_INT_ADDR")%>
port 3001
}
heartbeat {
mode multicast
address 239.1.99.2
port 9918
interface-address <%=os.getenv("NODE_INT_ADDR")%> interval 150
timeout 10
}
info {
address <%=os.getenv("NODE_INT_ADDR")%>
port 3003
}
}
namespace storebig {
replication-factor 3
memory-size <%=os.getenv("MEM_USE_BIG")%>K
default-ttl 0
high-water-disk-pct 98
high-water-memory-pct 98
stop-writes-pct 95
storage-engine device {
file /storage/data/big.dat
filesize 3T
data-in-memory false
}
}
namespace storefast {
replication-factor 3
memory-size <%=os.getenv("MEM_USE_FAST")%>K
default-ttl 0
high-water-disk-pct 98
high-water-memory-pct 98
stop-writes-pct 95
storage-engine device {
file /storage/data/fast.dat
filesize <%=os.getenv("MEM_USE_FAST")%>K
data-in-memory true
}
}
namespace storetest {
replication-factor 3
memory-size <%=os.getenv("MEM_USE_FAST")%>K
default-ttl 0
high-water-disk-pct 98
high-water-memory-pct 98
stop-writes-pct 95
storage-engine device {
file /storage/data/test.dat
filesize 3T
data-in-memory false
}
}发布于 2015-05-07 00:04:19
在阅读了你的配置后,我相信我发现了你的问题。单独的设备和文件不能超过2 2TiB,而您的设备和文件配置为3 2TiB。遗憾的是,目前还没有在配置解析器中检查这个限制,而且我无法在我们的文档中找到引用--这两个问题都得到了解决。
相反,您可以使用多个文件来存储每个名称空间的数据(每个文件限制在2TB)。作为在其他地方讨论,通过为给定的命名空间使用多个文件或设备,您可能会看到更好的性能。
发布于 2015-05-18 15:52:38
阅读“国际航空运输公司手册”,设备大小没有任何限制。仅适用于文件大小(最大2TB)
手册:
SSD命名空间的最小配置要求将存储引擎设置为设备,并为每个SSD添加一个设备参数以供此命名空间使用。此外,可能需要将内存大小从默认的4GB更改为适合预期主索引大小的大小。有关调整主索引大小的帮助,请参阅“尺寸指南”。为了提高性能,我们建议将SSD支持的命名空间中的写块大小从默认的1MB减少到128 Kb。
可以实现具有内存中数据的HDD存储引擎内存中数据命名空间的最小配置包括将存储引擎设置为设备,将内存中的数据设置为true,最后提供文件参数列表以指示数据将持久化的位置。此外,文件大小需要足够大以支持磁盘上的数据大小(最大允许值为2 TiB)。最后,内存大小可能需要从默认的4GB调整为适当的大小,以处理内存中数据的预期主索引大小和预期大小。有关帮助大小、文件大小或内存大小,请参阅我们的“尺寸指南”。
https://stackoverflow.com/questions/30076612
复制相似问题