直聯還是交換?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(從主板上轉接)看上去是性價比較高的一種選擇。


關注服務器的朋友應該都知道,每顆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。如果您想在這個公眾號上分享自己的技術乾貨,也歡迎聯繫我:)

尊重知識,轉載時請保留全文。感謝您的閱讀和支持!