关于TiFlash存算分离

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v7.5.0

  • 我在测试存算分离架构的TiFlash遇到以下问题:

    • 相关知识点:https://docs.pingcap.com/zh/tidb/stable/tiflash-disaggregated-and-s3
    • 两个写节点
    • 表副本数是两个
    • 当我的一台写节点故障时,表不可访问:
      • ERROR 1105 (HY000): other error for mpp stream: Code: 0, e.displayText() = DB::Exception: EstablishDisaggTask Failed14: failed to connect to all addresses, e.what() = DB::Exception,
    • 查看表的region的分布时,可以看到所有的region都有副本在存活的写节点上
  • 遇到这个问题,应该如何快速修复,本来原来的架构的tiflash,是可以高可用的,那这个架构是不是存在单点故障了

  • 注意:我用的是新的存算分离架构,tiflash的数据是放在s3点,tiflash分为两个角色,写节点和读节点。我的问题中是写节点故障不可用或者人为宕机的情况下,如果测试过的朋友可以先看一下官方文档

节点是不是已经被踢掉了

这应该是选主失败造成的

我说的是tiflash

使用了MPP算法,建议将坏的那台直接下线,或者禁用MPP

这个问题点不是MPP

下线不可用的tiflash节点了吗

我是人为的stop掉一个写的tiflash节点

没用过存算分离架构,看看其他大神有用过没

其中一个节点有问题吧?

1 个赞

用户在 https://github.com/pingcap/tiflash/issues/8774 给出了详细的操作说明。我们目前怀疑这是一个 TiFlash 的 bug。不知道是否方便可以提供一下 TiFlash wn 的日志呢?

https://www.alipan.com/s/daYSehRgVDF

我的操作步骤是:
第一步:tiup cluster stop xxx ---停止其中一个写节点
此时所有的查询不可用
第二步:将表的两副本改为1副本
此时可以看到表TIKV_REGION_STATUS还是存在不可用副本
此时查询表,依然不可用
第三步:重启可用的写节点
此时查询不可用
第四步:启动第一步关闭的写节点
此时查询可用

想问问第一步和第二步大概发生在什么时候呀?

另外从日志上看到,有大量的错误显示和 aws 的连接不正常。显示 Access Denied 错误,感觉可能是权限啥的没配置好。

建议检查下下面的配置有没有全部配置完成

tiflash_servers:
  - host: 
    config:
      storage.s3.bucket: 
      storage.s3.root: 
      storage.s3.endpoint: 
      storage.s3.access_key_id:
      storage.s3.secret_access_key:
    learner_config:
      dfs.prefix: 
      dfs.s3-endpoint: 
      dfs.s3-key-id: 
      dfs.s3-secret-key: 
      dfs.s3-bucket: 
      dfs.s3-region: 

节点剔除了吧