如何解决从较早的备份中恢复订购者会导致Peer的一致性问题
我仍然是一个傻瓜菜鸟,所以,如果我误解了一些基础知识,请原谅我。
我有一个在GKE中运行的HLF 1.4.2集群,具有3个订购者(筏)和3个组织(每个2个对等)。前几天订购者的pvc打满了磁盘,所有订购开始失败。由于无法实时扩展卷,因此按比例缩小了订购者的数量,从PVC撤回了数据,并在扩展的卷上进行了恢复。
还原卷时,我在还原卷数据后立即启动了每个订购者。因此,当第二个订购者启动时,订购者达到了法定人数,同行开始写作。因此,当第三个订购者提出时,由于以下错误,它拒绝加入集群
2020-08-25 13:17:33.891 UTC [orderer.consensus.etcdraft] Step -> INFO a2d 2 [term: 2] received a MsgHeartbeat message with higher term from 1 [term: 4] channel=mychannel node=2
2020-08-25 13:17:33.892 UTC [orderer.consensus.etcdraft] becomeFollower -> INFO a2e 2 became follower at term 4 channel=mychannel node=2
2020-08-25 13:17:33.892 UTC [orderer.consensus.etcdraft] commitTo -> PANI a2f tocommit(19) is out of range [lastIndex(17)]. Was the raft log corrupted,truncated,or lost? channel=mychannel node=2
panic: tocommit(19) is out of range [lastIndex(17)]. Was the raft log corrupted,or lost?
由于我不确定如何恢复此问题,因此我决定使用早先的备份还原所有3个订购者。还原后,所有订购者均已成功恢复仲裁,但多个对等方开始出现以下错误
2020-08-26 11:03:46.482 UTC [gossip.state] deliverPayloads -> PANI 03f Cannot commit block to the ledger due to unexpected Previous block hash. Expected PreviousHash = [3e39ea03143fdb09a14fb92b6b429236f57dbe52acbeac9c797f6ebdeef1aa79],PreviousHash referred in the latest block= [1823042217af3f7836e7b6d9b933dc9c008fc71f85e5465c62b78217194a6b3a]
- 是否可以从此状态恢复?
- 官方备份和恢复文档没有讨论订购者和对等分类帐数据之间的依赖关系。因此,如果我要进行备份,那么获得一致数据备份的唯一方法是在进行备份之前先停止订购者和对等方?
- 我比较了3个订购者的备份,并且在这3个备份中文件看起来都是相同的,因此,我可以从一个订购者的备份中还原所有3个订购者吗?
解决方法
-
似乎在还原订购者时,您没有还原对等体。因此,现在对等方比订购者拥有更多的块。您应始终确保对等方的块高等于或低于订购者。如果相同,那就太好了,什么也没做。如果较低,则会从订购者那里获取新的块。
-
是的,建议在进行备份之前先停止定购者和对等机器
-
我不确定。可能需要其他HF专家的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。