安装部署tidb集群, TiKV 服务器用 EXT4、TiFlash 服务器用 XFS 的存储配置组合是可以的吗?
有没有什么风险/
如果是分离服务器、分离磁盘,你现在的方案就是最优解之一. 如果同一台机器,同一块硬盘,就用XFS.
官方也没做特殊要求,技术上可以混部。主要还是看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)
照理说文件系统是最底层的,跟数据库层面关系不大吧
-
TiKV 使用 EXT4
-
TiKV 官方明确推荐使用 EXT4 文件系统,并要求挂载时添加
nodelalloc和noatime参数。 -
EXT4 在稳定性和生态验证上更成熟,能更好地适配 TiKV 底层 RocksDB 的写入模式,减少写放大和崩溃恢复风险。
-
TiFlash 使用 XFS
-
TiFlash 是列式存储引擎,适合处理大文件和高吞吐的分析场景,XFS 在大文件和高并发 I/O 场景下性能更优。
-
XFS 支持在线扩容,能更好地应对 TiFlash 数据量增长的需求。
没啥问题的
有理有据,详细且到位,有学到了一些奇怪的知识点~
应该可以的


