提供pvc 的csi 是啥?
longhorn
我看你最早的日志 是有 pd-3 的是什么原因没了,按理说3个pd的话 sts 规则是pd-{0,1,2},为啥能通过headless svc 发现 pd-3,
- pd log level 开成debug,详细日志看下到底哪里出了问题
- 随便进一个容器, 在pvc dir 里 试下fsync 是不是etcd提到issue。最好做个fio
建议尝试下, 先 scale-in 被你删掉pvc的pd ,还有那个没有的pd-3
正常应该是3个pd pod,pd-0到pd-2,pd-2故障时出现冗余的pd-3但是pd-3没起来。
之后我手动清理了pd-2和pd-3的pod,pvc,pv,然后conroller-manager故障我看到只有pd-2开始重建。
等到故障恢复后,pd-2对应的pvc已经没了,所以能看到日志显示的waiting for discovery service to return start args ...
pd-0和pd-1则是2个pv一直没动过的pod(但是pod尝试删过)。其他信息之前提过,是这样的:
“故障发生后3个pd pod还有2个是正常的,剩下一个失败,但这时候就无法选主。
后来把故障pd pod所在的pvc和pv全部清理掉了,现在恢复之后剩下的2个pd pod依然无法选主。
”
在pd-0的/var/lib/pd目录中touch 111.txt && fsync 111.txt正常无报错。
我尝试下把pd replica数量缩减到2试试
可以试试
如果是 pd 是4个 意味着 raft member 也是4个, 看你的 pre-election 日志 只有两票 不满足 多数派原则 所以一直选不出来leader ,感觉缩了就好了
pd replica数目降为2之后pd pod个数未减少。
目前pd0和pd1的日志都显示自己有2票:
pd0日志:["421a3f57baa87a69 has received 2 MsgPreVoteResp votes and 0 vote rejections"]
pd1日志:["1fc86372bff5e101 has received 2 MsgPreVoteResp votes and 0 vote rejections"]
那2个字符串分别是pd0 pd1的member-id.
你可能需要 pd unsafe recover
不行,目前针对这个集群的edit不会生效,无论是改日志level还是增删pod replica。
unsafe-recover在容器化环境下还没试过,我去找下资料。
1。删掉当前的所有pd pod,及其pv
2。直接执行pd-recover指定旧的cluster-id和新的alloc-id
请问下这个步骤合理吗?
目前我对tidbcluster CRD做了一些edit,pd-2已经起来了,只是pd2的日志里显示的cluster-id和status显示的不一样。这两个有什么区别吗?
一个16进制数字,一个10进制数字
你看下你kv 正常吗,之前 恢复pd 的时候 就是 按文档操作的没啥问题
kv不正常,报错预料之中:
[FATAL] [server.rs:683] [“failed to bootstrap node id: “[src/server/node.rs:229]: cluster ID mismatch, local 7002884490461809209 != remote 7109013331720823557, you are trying to connect to another cluster, please reconnect to the correct PD””]
还没开始,之前只是在尝试edit。
准备按这个文档来,但是新建pd集群那一步不会做,不知道k8s上怎么操作
补充:是否可以按我上边发的做,清掉现在的pd pod,然后其他几步照常。
第2个问题就是: 文档里的cluster-id是个十进制数字,所以我上边截图里发的cluster-id=b47381cb145a5cb1这个有什么影响吗,一个etcd id一个tidb集群id?
处理掉了
另外说明下,pd-recover使用的cluster-id是那个十进制的数字,alloc-id现在没查到,昨天隐约记得是几千,所以今天直接用了100000。
好了?操作步骤方便整理一下不,我有点晕