浅谈NVMe SSD双端口(1):应用设计实现

存储技术

606人已加入

描述

双端口对于SSD和数据中心来讲着实是个重要特性,所以我们 请了研发部门的工程师写了上下两篇双端口文章,从应用模型、设计实现到可靠性和性能测试,都介绍一遍。这篇是上篇,介绍了双端口应用模式和设计实现。

双数据路径(或多路径)对企业级应用并不陌生。原来,电脑都通过单一路径连接到一个装置。随着时间的推移,这种实现模式逐渐暴露出了种种弊端。在单路径场景中,如果从主机到驱动器本身的数据路径受到破坏,则无法访问数据,这为双路径(或多路径)概念铺平道路。

SCSI设备是第一个使用两个物理连接实现双端口功能的设备。随着串行连接的SCSI(SAS)的出现,通过一个物理连接来实现双端口连接成为可能。由于双端口允许数据从两个端口独立传输,因此该技术可以为任何一条数据路径提供容错。双端口很快成为流行的配置。

随着NVMe SSD技术的飞速发展,双端口技术在企业级存储系统中的应用也成为必然,由于其在高性能高可靠性上的优势,有着更为广阔的前景及市场。

双端口NVMe SSD支持单个主机内存在的两条数据路径,同时通过两个控制器访问相同的存储设备实现冗余。在另一种常见的应用场景中,两个主机系统也可以同时使用双端口访问同一存储系统。如果在一条数据路径丢失时发生系统故障或电源丢失,可用的数据路径将继续运行,对业务连续无影响,对QoS的影响达到最小。

双端口应用模型

根据双端口应用的场景,可以分为双活,主从,以及链路冗余等模式。如下图所示,

双端口

图1双活模式

Server A 与server B分别通过PCIe switch连接同一块NVMe SSD,两者能够同时访问相同的存储空间,互相做存储数据的冗余备份。当然整个系统可以有多块PBlaze5,这要看服务器的配置而定。

双端口

图2主从模式

Server A 与server B 分别通过PCIe switch 连接到多块NVMe SSD,两个server通过心跳线互为双机热备,在一条路径失败的情况下,可以保证服务不中断。

双端口

图3链路冗余模式

一个Server分别通过两个PCIe switch连接到同一块NVMe SSD,相当于对数据链路做了冗余,在这种模型下,server可以看到2个x2的PCIe设备,即2个NVMe设备,通过操作系统本身的multiple path等技术使能链路冗余。

双端口设计实现

双端口PBlaze5 PCIe NVMe SSD既可以应用于常规的server采用单端口模式,提供PCIe3.0 x4的带宽,又可以接入双端口服务器自动适配成双端口模式,每个控制器达到PCIe3.0 x2的带宽。在双端口模式下,两个端口完全独立,控制器提供两组PCIe接口的端口寄存器,包括端口控制,端口状态,时钟状态寄存器。由于存储设备是独立供电的,每一个server完全独立于另一个server实现上电或者下电,互不影响。

双端口

图4 单端口与双端口模式对比

另外,由于NVMe 协议支持multiple namespace,将multiple namespace扩展到双端口NVMe SSD将会使企业级存储系统更加灵活和多元化。

双端口

图5:multiple namespace下双端口模式

双端口

这节就先写到这,后续有一个多图进阶篇,介绍双端口盘的可靠性测试,并展示双端口模式下各种场景中的性能效果。好看的还在后面。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分