繁体   English   中英

Riak无法恢复的磁盘故障

[英]Riak unrecoverable disk failure

我有一个3节点的Riak群集,每个群集约有一个。 1 TB磁盘使用量。 突然,一个节点的硬盘发生了不可恢复的故障。 因此,我使用以下步骤添加了一个新节点:

1)riak-admin群集联接2)向下故障节点3)riak-admin强制替换故障节点新节点4)riak-admin群集计划5)riak-admin群集提交。

这几乎解决了问题,除了经过大量数据传输和交接后,现在并非所有三个节点都具有1 TB的磁盘使用量。 其中只有两个具有1 TB的磁盘使用量。 另一个几乎是空的。 这意味着磁盘上不再有3个副本。 我应该运行哪些命令来强制确保磁盘上总体上有三个副本,而不必等待读取修复或反熵来制作三个副本?

通过将相同的问题发布到riak-users@lists.basho.com得到答案:

(0)三个节点不足,您应该有5个节点(1)您可以迭代并读取集群中的每个对象-这也将触发每个对象的读取修复(2)-从Engel Sanchez复制到类似问题的答案2014年10月10日)*如果禁用了AAE,则不必停止节点即可删除anti_entropy目录中的数据*如果启用了AAE,则以滚动方式删除AAE数据可能会触发节点之间的读取修复雪崩坏树和结好树的节点,因为数据似乎有所不同。

如果您的节点已经启动,启用了AAE并且混合了旧的不正确的树,则有更好的方法。 您可以使用某些控制台命令动态禁用AAE。 届时,您无需停止节点,就可以删除群集中的所有AAE数据。 在方便的时候,重新启用AAE。 我说方便是因为所有树都将开始重建,而在过载的集群中这可能会出现问题。 除非您的群集可以承担额外的负载,否则在周末进行此操作可能是一个好主意。

要从Riak控制台动态禁用AAE,可以运行以下命令:

riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager,disable,[],60000)。

并启用类似:

riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager,启用,[],60000)。

最后一个数字只是RPC操作超时。 我希望这可以为您的集群节省一些额外的负载。 (3)这将是:(3a)使用您选择的客户端列出所有键(3b)提取每个对象

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/reading-objects/

https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/secondary-indexes/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM