本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博 @唐僧_huangliang,以便更好地与读者互动。
周末看到一份资料觉得不错,因此写点东西分享给大家。
谈到存储服务器,或者说盘位数比较多的
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
(从主板上转接)看上去是性价比较高的一种选择。
关注服务器的朋友应该都知道,每颗
Xeon Scalable CPU
提供个
48
条
PCIe 3.0 lane
,假设把
2
颗
CPU
的
96 lane
全部用来连接前置
U.2 NVMe SSD
的话,刚好够
24
盘位。而事实上几乎没有服务器会如此设计,因为还有网卡等
PCIe
设备需要连接。
在这种情况下,就需要
选择和取舍
。
2U
双路
Intel Xeon SP NVMe x12
(最大带宽型)
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
全高扩展槽。
上面照片就是我以前见过的
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
(最大容量型)
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
服务器的理想与现实
》。
在双路
EPYC
服务器上,每颗
CPU
有
64 lane PCIe
控制器被重定义为
CPU
之间的
Infinity Fabric
,所以用于连接
PCIe
设备的仍然是总共
128 lane
,与单路
AMD
服务器一样。
2U
双路
AMD EPYC NVMe x12
(最大带宽型)
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
肯定还有另外的配置形式。
引用自《
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
一览
》中的一张照片。
2U
双路
AMD EPYC NVMe x24
(最大容量型)
讲完了
AMD
的
NVMe
“最大带宽型”,我们再来看看“最大容量型”。
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/manuals/common/nvme-io-topologies-poweredge.pdf
文档里除了我介绍的
R740xd
和
R7425
之外,还有
R440
、
R640
、
R6415
、
R7415
、
R840
、
R940
和
R940xa
服务器的
NVMe
和
I/O
拓扑说明,希望这份速查手册能够对大家有帮助。
扩展阅读:《
服务器SSD RAID性能速查手册
》
注
:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
进一步交流
技术
,
可以
加我的
QQ/
微信:
490834312
。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:
HL_Storage
长按二维码可直接识别关注
历史文章汇总
:
http://chuansong.me/account/huangliang_storage