磁盘分区是否必须EXT4

请教一个问题,现在ext4不支持16TB以上的容量,TIDB是否必须EXT4,如果我这边磁盘超过了16TB,是不是必须重新把磁盘容量缩容到16TB以下并格式化为EXT4?

推荐使用 ext4,另外可以监控下磁盘使用情况,可以适当进行扩容操作。

lvm扩容吗?

对 “现在ext4不支持16TB以上的容量” 存疑. 我看到的限制

Ext4 adds 48-bit block addressing, so it will have 1 EB of maximum filesystem size and 16 TB of maximum file size. 1 EB = 1,048,576 TB (1 EB = 1024 PB, 1 PB = 1024 TB, 1 TB = 1024 GB).

正好手头有一台服务器磁盘容量超过14TB:

# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
...
/dev/sda5      ext4       28T  5.3T   21T  21% /data
...

原因: 目前支持 EXT4 和 XFS 两种文件系统,EXT4 稳定性优势,XFS 性能优势。目前 EXT4 在社区还是生态都得到充分的最佳实践验证。 另外为什么对于单块的 SSD 盘 PCIE 支持不超 2TB,SATA 不支持超过 1.5TB,是因为经过大量的测试对比,超过这样的一个容量,TiKV Instance 底层采用的 RocksDB 的读写性能会因为磁盘容量大,导致响应有一定的衰减。 解决办法:

  1. 可以使用 XFS 和 EXT4 2种文件系统;
  2. 建议单盘的大小以官方文档推荐为主。

文档中提到 “TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。”.

追问一下: 单片SSD体积小于1.5TB (例如960GB), 把多片这样的SSD做RAID后得到大于1.5TB的磁盘空间(例如4 * 960GB, RAID5, 可用空间约2.5TB).这种状况下运行TiKV, 会有你说的"RocksDB 的读写性能会因为磁盘容量大,导致响应有一定的衰减" 的问题吗?

是的,也会存在磁盘响应延迟高的问题,其实单个 TiKV 节点一块 1TB 盘性能就是最佳。大量测试和验证发现,RAID 0 性能非常好。

1赞