筑牢国产芯片软件生态,天翼云 bcache 解决方案来了!
近年来数字化转型成为各行各业的热词。行业数字化转型基于计算、存储、传输、数字传感、行业软件等一系列 IT 技术打通业务全流程,重新定义业务场景、业务关系和业务参与人,从而提高资源利用率,加强突发反应能力,提升整体业务效率。
对于国产芯片而言,除了制造这一大“硬挑战”外,由于国产芯片特性存在差异,在软件生态上,也存在着行业软件适配国产芯片的“软挑战”。然而,各类企业适配软件生态的能力参差不齐,通过向企业提供 IT 技术与服务,以天翼云为代表的云服务商正不断完善国产芯片的软件生态。下面一起来看看天翼云 bcache(块缓存)是如何适配国产芯片,助力应对“软挑战”的。
bcache 是什么?
存储,是数字化转型的 IT 数据仓库。全球行业数字化转型催生出巨大的存储需求,据国际数据公司 IDC 预测,到 2025 年全球数据总量将达 175ZB,因此,企业需要高性能的存储解决方案来应对强劲的存储需求。但在存储领域,高性能则意味着单位容量价格高,从而导致使用成本增加;单位容量价格低则意味着性能无法满足需求。
如何在高性能和高成本之间折中?存储业界认为:大部分业务系统的 IO 模型都满足局部性原理,因此使用小容量的高速存储设备作为大容量低速存储设备的缓存是一种解决方案,在某些业务场景下可以同时满足高性能和低单位容量价格的需求。
bcache (block cache) 就是一种块缓存存储加速解决方案,包含 Linux 内核中的通用块层的驱动模块和用户态工具。它允许一个高速的块设备作为一个或多个慢速块设备的缓存,是一种可以提升慢速块设备性能的存储加速解决方案。下图是使用 SSD 作为 HDD 缓存的块设备加速解决方案架构图:
bcache 运行在国产芯片上的痛点
bcache 在 Linux 内核的 3.10 版本已进入 Linux 内核主线,不过在 2021 年 11 月之前,在不支持 4K 分页的国产 CPU 服务器上使用 bcache,虽然 attach 设备命令成功,但是显示 cache 设备和主设备没有联系,重启后 bcache 盘丢失。如下演示了 64K PAGE_SIZE 下使用 bcache 遇到的问题现象:
1.getconf PAGE_SIZE 获取系统的 PAGE_SIZE 为 64K
2.格式化主存储设备
3. 格式化 cache 设备
4. bcache 映射关系显示异常
5. lsblk 命令显示正常
6. 重启后 bcache 设备消失
天翼云 bcache 如何解决痛点
我们以某国产 CPU 上运行 Linux 4.19 内核版本为基础,描述天翼云bcache 如何解决上述痛点,从而为完善国产芯片的软件生态添砖加瓦。
01 分析原因
天翼云分析了 bcache、buffer_head、pagecache 后,发现了社区版本的问题所在:社区版本在 64K page 使用内核 pagecache 中的 page 时,出现偏移错误,导致一旦出现超级块的更新(如 attach)操作,pagecache 中的数据将和磁盘中的数据不一致,从而出现“丢失 bcache 设备特征——magic 信息”的情况,导致重启后 bcache 设备丢失。
02 天翼云解决方案
2021 年 11 月,天翼云研发团队在分析清楚了 bcache、buffer_head 和 pagecache 三者之间的关系后,解决了不支持 4K 分页的国产 CPU 服务器重启后 bcache 设备丢失的问题,方案如下:
03 同步社区后形成解决方案
2022 年 10 月 5 日,Linux 内核从 long term 版本 5.10.147 开始,解决了不支持 4K 分页的国产 CPU 服务器重启后 bcache 设备丢失的问题,可以 backport Linux 内核社区的解决方案,如下:
天翼云bcache 目前已适配多款国产 CPU,如龙芯 CPU、兆芯 CPU、海光 CPU、飞腾 CPU、Kunpeng CPU 等,实现 IO 性能和 x86 架构的 CPU 性能持平,为使用国产 CPU 承载 IT 系统的客户提供了性价比更高的存储产品选择。
同时,天翼云 bcache 优化了社区 bcache 性能归零和长时间运行碎片等多方面的短板,性能提升超过 20%。经过天翼云存储团队的分析和调整,基于 Linux 4.19 内核,3 节点 ceph,128 并发,8KB,100%写,随机 IO,IOPS 提升超过 20%,平均时延从 4.9ms 降至 3.5ms,客户体验明显提升。
bcache 性能对比图
未来,天翼云将继续坚持科技创新,加大关键核心技术自主攻关,推进国产软硬件产品升级,以安全可信、自主可控的新一代云计算基础设施底座,助推中国数字经济高质量发展。
版权声明: 本文为 InfoQ 作者【天翼云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/9f3d40a186f0d20356e7d4da6】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论