在混闪场景,经常使用nvme SSD作为二级缓存,为大容量低性能的hdd进行加速,我们curve当前是全闪方案,后面计划如何演进,在方案上,有什么宝贵建议吗?
感觉用bcache、opencas等块级别的缓存方案,或者wal和data分离的方案是两种可以考虑的方向。
或者从更上层考虑,类似两个pool做tiering方式。
也可以考虑在文件系统级别做一层缓存,比如data先apply写入nvme,后面异步慢慢刷到hdd,nvme做wal存储介质和data的缓存介质,hdd用来存储data。
如果在文件系统级别做缓存的话,缓存建议使用什么方案呢,文件系统自带的pagecache由于索引查询的效率问题,应该满足不了性能要求。
1、我们curve在client和chunkserver都是filesystem,使用块级别的缓存方案会不会较难匹配?
2、两个pool做tiering也是可行的,但
**缓存方案:**可以选择数据/元数据写入ssd,ssd直接写入本节点hdd,SSD中的热点数据可以直接覆盖。
**tier方案:**写入ssd tier,ssd tier再到hdd tier,另外,冷热数据在两个tier中搬迁,存在一定的写惩罚。
综上,缓存方案效率较高一些。
是的,缓存方案,可以考虑用opencas,然后自己做一些增强修改。
另外建议基于spdk+nvme做wal和缓存盘引擎,否则如果基于现有的ext4引擎做,性能还是发挥不到极致。
只是基于spdk方式的缓存盘引擎,要适配opencas这类缓存模块,目前还不好评估改动的工作量。
我们curve的spdk+nvme什么时候能够commit啊
pfs修改部分已经开源,见 GitHub - opencurve/PolarDB-FileSystem at nvme 这个分支,文档参考 PolarDB-FileSystem/nvme_chunkserver.md at nvme · opencurve/PolarDB-FileSystem · GitHub , curve这边改动部分已经再PR中 , add chunkserver over pfs by xu-chaojie · Pull Request #1604 · opencurve/curve · GitHub , 剩余编译、部署部分尚未完善,预计本周开始联调
您好!请问现在Curve本身支持混闪(ssd + hdd)场景吗,还是需要使用开源的bcache等来给HDD做加速?谢谢!