你好,游客 登录
背景:
阅读新闻

高性能分布式闪存系统探讨

[日期:2016-10-19] 来源:存储之道  作者: [字体: ]

  大家不难发现目前市场上出售的全闪存阵列基本都是采用 SATA SSD ,其中的原因在于 NVMe SSD 比 SATA SSD 贵, SATA SSD 目前可以满足绝大多数应用的性能需求。除此之外,其实目前的全闪阵列软件并不能对 NVMe SSD 进行很好的支持。如果需要支持 NVMe SSD ,阵列软件还需要做较大规模的调整,例如需要考虑如何充分发挥多核处理器的并发效能,从而解决软件堆栈带来的性能瓶颈问题。在 SATA SSD上,由于 SATA SSD 本身的性能并不是很高,因此,软件堆栈不需要做大规模调整就可以满足应用需求。 但是在 NVMe SSD 以及未来性能更高的 Xpoint 存储介质上,软件栈必须要做深层次的调整才可以充分发挥 NVMe SSD 的性能。

  传统单控阵列在使用的过程中会遇到严重的 HA 问题。当控制器发生故障的情况下,业务的连续性无法得到保障。在传统存储阵列的设计理念中,为了解决该问题会引入双控制器的设计思路。双控制器通过高速总线进行互连,在 HA 控制软件的作用下,对外提供双控服务,即使一个控制器出现故障,业务的连续性也能得到保证。在NVMe 存储时代, IO 性能变得很高,如果采用传统双控互连的方式,那么双控之间的数据同步将会成为严重的性能瓶颈点。因此,个人认为在高速存储时代,松耦合的分布式架构更加适合高性能存储,通过分布式的方式来获取业务的高可用和数据的高可靠性。

  松耦合分布式数据保护系统的整体架构如下图所示:

  存储服务器节点通过后端高速网络进行互连,将服务器内部的闪存资源进行聚合,形成高性能全局闪存资源池。位于每个存储服务器内部的分布式 RAID 软件会将数据在多个存储节点上进行冗余布局,当一个系统中无论是节点或者盘发生故障,都可以通过全局资源池中的冗余数据恢复故障数据。与此同时,当存储节点发生故障后,业务 IO 服务可以在从故障服务器切换到正常服务器节点,从而保证了业务的连续性。

  这种分布式数据保护系统的设计理念和 EMC Isilon 存储系统的设计理念存在很多相似之处,通过后端高性能网络将存储节点进行互连,构建全局存储池。最大的劣势在于成本较高,需要前后端网络的支持。

  为了降低成本,市场上主流的分布式系统都会采用一套网络,并且采用多副本的方式在多节点之间进行数据冗余。典型的系统有 HDFS 和 Ceph 。在磁盘存储时代,通过部署 HDFS 或者 Ceph 可以获得不错的性能,并且系统具有很强的可扩展性。但是,在 NVMe 存储时代,这样的系统遇到了挑战,如果将磁盘简单切换成 NVMe SSD之后, Ceph 的性能并没有得到大幅度的提升,而且 NVMe SSD 不能得到充分的利用。出现这种现象的原因很简单,在 Ceph 类似的系统中,存在面向磁盘设计的 OSD以及文件系统,这种软件栈对 NVMe SSD 性能影响很大。因此,如果不对 Ceph 服务器端软件进行改造,那么即使采用性能很强劲的互连网络,性能也不能得到大幅度的提升。因此,目前主流的开源分布式系统都不能很好的使用 NVMe SSD ,需要进行大刀阔斧的改造。

  在分布式文件系统中,有一种曾经在非线编领域经常使用的 SANFS 可以和单控闪存阵列进行有机结合,从而构建高性能的分布式闪存系统。 SANFS 是一种基于 SAN存储设备的文件系统,其可以在 SAN 存储设备的基础上构建分布式文件系统。存储架构采用标准的 MDS 和 DS 架构。 MDS 是元数据服务器,提供文件系统元数据服务;DS 是数据服务器,提供标准的块设备服务。 MDS 可以采用独立的服务器,也可以寄生在 DS 上,并且可以在多台 DS 上实现多 MDS 的数据冗余。 DS 提供标准的 SAN服务,可以采用标准的阵列设备作为 DS 。 SANFS 需要客户端的支持,客户端在访问数据时,首先通过 MDS 获取访问数据的实际位置,然后通过带外工作的方式直接从DS 上获取数据。客户端与 DS 以及 MDS 之间采用标准的块设备接口,通过 FC 或者 iSCSI 进行互连。

  在闪存存储中,导出接口也是重要的性能瓶颈点,因此,在采用 SANFS 构建分布式存储时,最好采用 RDMA 互连技术。采用 SANFS 构建的分布式闪存系统架构如下图所示:

  在高性能 NVMe 数据保护系统的基础之上,采用第三方提供的 SANFS 搭建了一套完整的分布式闪存系统,并且对其进行了性能评测。实测结果表明 SANFS 可以发挥闪存阵列的性能,在带宽等方面表现极佳,但是在随机小数据块访问方面存在比较严重的性能瓶颈。下图是大数据访问情况下的文件系统性能表现。通过该结果我们可以看到在多文件多流情况下可以把 FlashRAID 的性能跑满。

 

  随着高速存储介质的不断普及,高性能分布式闪存系统的研发势在必行。如何充分的发挥分布式闪存系统的性能,一方面在于网络互连,更重要的还是在于对分布式存储软件栈的优化和重构。

收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
热门评论