新闻动态

BLOG

XSKY借助英特尔SPDK提升Ceph性能

2016-01-19 · XSKY

封面

NVMe是新一代的PCIe固态硬盘接口规范,其目的是统一主流厂商的SSD接口交互标准,并更好的对上层系统释放效率潜能[1]。NVMe标准的倡导者包括英特尔、三星、美光、Oracle、微软、Dell、HGST、希捷等行业领先企业,2014年11月发布版本1.2标准。

市售的基于NVMe硬盘动辄可达到单盘GB级的读写带宽和十万量级的随机IOPS,为SATA固态硬盘的5~10倍。然而,由于Linux内核驱动实现与调度机制的限制,主流的软件定义存储系统并不能完全释放其性能,同时,对CPU等系统资源消耗巨大,为构建融合存储系统带来挑战。

继为SDN和NFV领域带来福音的DPDK之后,英特尔于2015年9月开始,逐步将为NVMe等新一代存储规范优化的Linux性能工具包SPDK[2](Storage Performance Development Kit)对合作伙伴与社区开源,试图将Linux用户态存储服务程序与底层硬件设施打通,大幅度缩短IO路径,充分利用无锁机制,为NVMe等新一代的存储介质打通软件层瓶颈,使其能够在有限的系统资源消耗下支撑关键业务存储系统足够的带宽和延时要求。

SPDK系统架构图

SPDK系统架构图[3]

如同DPDK一样,SPDK作为开源的代码实现,并不仅仅支持英特尔品牌的闪存设备。它面向整个基于Linux平台的软件生态系统,为业界“软件定义存储”(SDS,Software Defined Storage)提供了又一性能与架构利器,势必影响深远。

作为开源软件定义存储的首选系统,Ceph长期以来就其计算资源占用率和性能方面,虽不断提高,但在闪存环境下仍难觅突破性进展。顺应业界趋势,将SPDK的支持在Ceph中实现势在必行。
Ceph与SPDK结合架构图

Ceph与SPDK结合架构图

XSKY(星辰天合)是国内SDS初创企业[4],其团队在Ceph开源社区代码贡献量在全球行业内领先。作为英特尔在中国的首批SPDK合作伙伴之一,XSKY率先将SPDK与Ceph用户态文件系统BlueFS整合,以提高Ceph在NVMe介质上的落盘效率。

用户态SPDK NVMe驱动和公版内核态驱动的性能对比

用户态SPDK NVMe驱动和公版内核态驱动的性能对比[5]

相较于此前的NVMe公版内核态驱动,数据落盘模块性能提升明显,特别是时延方面,提高在20%以上(在英特尔® P3700 SSD上已测试验证)。下一步,XSKY将发起针对整个Ceph OSD的重构,全面面向SPDK进行优化并接纳英特尔DPDK作为网络层交互方案,可以期待性能达到双倍提高。随着对Ceph上层模块的不断优化,整个软件定义存储系统会有更好的性能表现。

该创新实践已得到Red Hat方面Ceph社区领袖Sage Weil等人的认可,XSKY已将此部分代码贡献到开源Ceph主线,并承诺持续对此部分进行整合优化工作,推动该技术在实际生产环境中的应用。

[1] http://www.nvmexpress.org
[2] https://01.org/zh/spdk
[3] https://software.intel.com/sites/default/files/managed/a8/ff/introduction-to-the-storage-performance-development-kit-spdk-fig2.png
[4] http://www.xsky.com
[5] 测试基于Ceph 10.0.2社区版,英特尔®至强™E5 2600v3服务器