企业存储技术 · 2020年05月25日

直联还是交换?Intel、AMD服务器NVMe SSD IO拓扑速查手册

周末看到一份资料觉得不错,因此写点东西分享给大家。

谈到存储服务器,或者说盘位数比较多的Server,在前些年大多是SAS和SATA硬盘/SSD接口。从主板(CPU)到盘之间一般会经过多端口SAS RAID/HBA卡(8口的最流行),可能还有SAS Expander芯片。单个12Gb SAS驱动器不超过1.2GB/s全双工的理论接口带宽(实际上许多SSD达不到这么快,HDD就更不用说了),SATA 6Gb/s只有一半,PCIe存储控制卡有时可能成为瓶颈,而在需要的情况下可以配多卡。

到了NVMe SSD时代,由于单盘接口提升到PCIe 3.0 x4,为了让现在读带宽动辄超过3GB/s的企业级SSD能“吃饱”,直连CPU(从主板上转接)看上去是性价比较高的一种选择。

image.png

关注服务器的朋友应该都知道,每颗Xeon Scalable CPU提供个48条PCIe 3.0 lane,假设把2颗CPU的96 lane全部用来连接前置U.2 NVMe SSD的话,刚好够24盘位。而事实上几乎没有服务器会如此设计,因为还有网卡等PCIe设备需要连接。

在这种情况下,就需要选择和取舍。

2U双路Intel Xeon SP NVMe x12(最大带宽型)

image.png
PowerEdge R740xd CPU mapping with twelve NVMe drivesand twelve SAS drives

上图是Dell R740xd服务器的一种2.5英寸盘位支持方式——12个NVMe SSD+12个SAS(兼容SATA)。我们看到背板上NVMe热插拔位分成3组,每组通过线缆连接到插在PCIe x16槽位的PCI Extender卡上,其中一组由CPU 1支持,另外两组连接CPU 2。

扩展阅读:《Dell PowerEdge R740xd__解析:服务器只看参数那就错了

在此基础上,CPU 1的PCIe控制器还能支持一块x8 PERC RAID卡或者BOSS卡(参见:《Xeon SP__服务器的M.2 SSD RAID__:揭秘PowerEdge 14G BOSS》),以及一个x16插槽可用于像Mellanox IB或者Intel Omnipath这样的高速网卡;CPU 2也还能提供2个PCIe x8全高扩展槽。

image.png

 

上面照片就是我以前见过的PCI Extender Card。其主芯片应该是一颗PCIe Switch,通过2个连接器(x8)和线缆将信号引到背板(中板),除了保持PCIe信号完整性和放大之外,还有助于实现lane拆分(4个x4 lane)和NVMe热插拔支持。

有朋友可能会有疑问:上述设计中的PCI Extender Card加上线缆也会增加成本?而R740xd这样做无疑是为了灵活性,一旦用不到那么多NVMe SSD,PCIe槽位就可以安装别的扩展卡。

上述第一种方案,12个NVMe盘的带宽性能可以得到最大发挥。但也有一些应用场景对容量密度的要求更高,单盘性能可以放在其次。

2U双路Intel Xeon SP NVMe x24(最大容量型)

image.png
PowerEdge R740xd CPU mapping with twenty-four NVMedrives

这个是24盘全NVMe的R740xd机型,Dell使用2块PCI Extender Card各自连接到一个80 port PCIe Switch交换芯片(位于背板的Daughter卡上),分别支持12个NVMe SSD。也就是2组PCIe x16上行x48下行的设计,I/O压力仍然分担在2颗CPU上。

上述“最大容量型”NVMe方案,比前面的最大带宽型配置还多空闲出一个PCIe x16槽位。

介绍完Intel主流机型,我再带大家看看AMD服务器的情况。早在两年前我就给大家介绍过AMD平台更强的PCIe扩展能力,参见:《超越Xeon__?AMD Naples__服务器的理想与现实》。

image.png

 

在双路EPYC服务器上,每颗CPU有64 lane PCIe控制器被重定义为CPU之间的Infinity Fabric,所以用于连接PCIe设备的仍然是总共128 lane,与单路AMD服务器一样。

2U双路AMD EPYC NVMe x12(最大带宽型)

image.png

PowerEdge R7425 CPU mapping with twelve NVMe drivesand twelve SAS drives

R7425是Dell第一代AMD EPYC服务器中的2U双路机型。我们看到同样是12 x NVMe + 12 x SAS/SATA的盘位支持,却有2组共8个NVMe SSD直连CPU(主板),另外一组4个NVMe连接PCIe x16插槽上的Extender Card。

在这里AMD机型的特点显而易见——上述配置下剩余的PCIe x16全高插槽还有3个。

不知是否有朋友还记得我在《_AMD EPYC二代服务器预览:Dell扩展2U 4节点HPC机型》中曾经提到,PowerEdge R7425可以提供6个PCIe 3.0 x16插槽来支持NVIDIA Tesla T4 GPU。那么对于上图中的Slot 5、Slot 2以及Slot 7肯定还有另外的配置形式。

image.png
引用自《Dell EMC PowerEdge R7425 Technical Guide》,如果采用我红圈标注的方式来配置,估计驱动器热插拔背板就是纯SAS/SATA了。此时仍有可能支持NVMe SSD,别忘了在6个PCIe x16之外还有一个PCIe x8的Slot 6插槽。

注:本文中讨论的PCIe lane数量指的都是实际电气信道,而非物理插槽长短。

为了给大家看下CPU插座边的PCIe连接器长啥样,下面我列出《Dell PowerEdge R640:NVMe直连、NDC网卡、PERC10一览》中的一张照片。

image.png

2U双路AMD EPYC NVMe x24(最大容量型)

讲完了AMD的NVMe“最大带宽型”,我们再来看看“最大容量型”。

image.png

PowerEdge R7425 CPU mapping with twenty-four NVMe drives

如上图,在R7425平台上,CPU 1和2各自用x16 PCIe直连PCIe Switch,然后2颗Switch芯片一共连接24个NVMe SSD。每个PCIe Switch同样是16 lane上行、48 lane下行的配置,而在这里已经不需要PCI Extender Card,前面一种方案( Riser卡 1A)被占用的PCIe Slot 3 x16被释放出来。

此时也可以选择将这部分I/O资源,改配 Riser卡 1D分拆为Slot 2和Slot 3的2个PCIe x8。如果插上个H840这样的外部接口SAS RAID卡,可以用来连接PowerVault MD/ME4 JBOD磁盘扩展机箱。

凭我的感觉,尽管AMD EPYC服务器推广初期的销量比Intel机型还有较大差距,但Dell在设计上依然投入了不少心思。

参考资料《NVMe and I/O Topologies for Dell EMC PowerEdge Servers

https://downloads.dell.com/ma...

文档里除了我介绍的R740xd和R7425之外,还有R440、R640、R6415、R7415、R840、R940和R940xa服务器的NVMe和I/O拓扑说明,希望这份速查手册能够对大家有帮助。

推荐阅读

注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。 进一步交流技术可以加我的微信/QQ:490834312。
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:HL_Storage,也欢迎关注企业存储技术极术专栏,定期更新。
42.jpg
推荐阅读
关注数
5613
内容数
260
关注存储、服务器、图形工作站、AI硬件等方面技术。WeChat:490834312
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息