TiKV(EXT4) + TiFlash(XFS)是可行且推荐的配置方式吗?

安装部署tidb集群, TiKV 服务器用 EXT4、TiFlash 服务器用 XFS 的存储配置组合是可以的吗?
有没有什么风险/

2 个赞

如果是分离服务器、分离磁盘,你现在的方案就是最优解之一. 如果同一台机器,同一块硬盘,就用XFS.

1 个赞

官方也没做特殊要求,技术上可以混部。主要还是看TiFlash上跑的是什么业务?混部的收益是什么?

  • 一、官方文档未对TiFlash的文件系统做要求

TiKV:仅建议ext4
TiDB:xfs或ext4
TiFlash:未找到限制要求。

  • 二、TiFlash是Raft Learner角色

从纯性能角度来说,xfs相比ext4会有略微提升(我们用集中式数据库实测过)。但是官方文档对于TiKV特意限制为ext4,那么猜测大概率是出于稳定性的考虑。但是查了下TiFlash并不参与多数派写,那么就说即便是极端情况下(断电),TiFlash节点也不会引发数据出现不一致。

  • 三、xfs文件系统在部分操作系统版本下确实有问题,不过已有补丁修复。

问题现象:文件系统元数据(扩展区映射)在页面回写过程中发生了并发修改。具体表现为,一个正在进行中的多页回写操作所持有的物理映射,被另一个截断(Truncate)操作导致了部分失效。会导致回写操作的后半部分基于一个陈旧的、错误的映射将数据写出,从而引发了数据错位写入,导致文件数据损坏。
解决方案:
1.OS侧进行xfs的补丁修复(补丁9f9bc034b849 xfs: update fork seq counter on data fork changes)

2 个赞

照理说文件系统是最底层的,跟数据库层面关系不大吧

  • TiKV 使用 EXT4

  • TiKV 官方明确推荐使用 EXT4 文件系统,并要求挂载时添加 nodelallocnoatime 参数。

  • EXT4 在稳定性和生态验证上更成熟,能更好地适配 TiKV 底层 RocksDB 的写入模式,减少写放大和崩溃恢复风险。

  • TiFlash 使用 XFS

  • TiFlash 是列式存储引擎,适合处理大文件和高吞吐的分析场景,XFS 在大文件和高并发 I/O 场景下性能更优。

  • XFS 支持在线扩容,能更好地应对 TiFlash 数据量增长的需求。

没啥问题的

有理有据,详细且到位,有学到了一些奇怪的知识点~

应该可以的