查看原文
其他

M.2 SSD热插拔:Facebook和微软的两种方案

2017-03-20 唐僧 企业存储技术
本文内容非商业用途可无需授权转载,请务必注明作者及本微信公众号、微博ID:唐僧_huangliang,以便更好地与读者互动。


今天存储圈最大的新闻应该是Intel Optane SSD DC P4800X的正式发布,使用3D XPoint Memory的它已经不适合再叫做PCIe闪存卡了。

 

本文的主题不是这个卡

 

不过我决定还是沉一沉,先写点别的东西。本文讨论的资料来自我上周末分享的《OCP US Summit 17会议资料开放下载》,其中的网盘链接已经更新为 https://pan.baidu.com/s/1gfmlkZp

 

以前我在企业存储技术微信公众号发一篇文章,会有数量不等的朋友评论或者点赞。而前天我体会到了最好的互动效果——最初共享的OCP峰会资料是按目录,百度网盘认为文件名中有敏感词被禁,我找到那个文件改名之后再次被禁再改另一个文件名,索性把每个子目录分享一个链接。

 

这时有朋友说应该整体打压缩包,是啊我怎这么笨?!于是再次上传、分享。几乎半天就这么过去了,随后几天有许多认识、不认识的朋友在文章下面留言、私信找我要新的链接。欣慰的是资料看来对大家有用,只是这种自己瞎忙活的事干了不少,感叹时间都去哪了

 

M.2热插拔要点:结构、电气、软件支持

 

资料引用自《Lightning (PCIe JBOF): Update, challenges, and solutions

 

上图就是去年我在《OCP峰会:PCIe SSD版本的Open Vault存储机箱,没有了SAS的双端口》中介绍过的LightningPCIe JBOF(由于是闪存,所以不再成为JBOD),通过在每个3.5英寸盘位放置2M.2 SSD,两个抽屉一共可以支持60NVMe SSD

 

由于密度较大,这次的资料里给出了针对M.2 SSD设计的散热片。

 

Facebook Lightning M.2热插拔设计

 

电气方面我外行一些,上图中可以看到在这个热插拔方案中,有一个双色LED状态显示,并配合下面的按钮来实现M.2 SSD的安全添加/拔出。

 


由于M.2连接器的金手指本身不是针对热插拔设计,所以之前我听朋友说过单插槽的Carrier(托架)方案。如上图,在Lightning JBOF机箱中也是转接成U.2SFF-8639来支持热插拔的。

 

常规的Managed(受管理)热添加操作,应该是先插入,此时应该通电了,再按下按钮让系统“发现”它。移除时也要先按按钮,待LED显示变化后再行拔出。

 

这个方案密度还不错,但问题是热插拔操作是以2M.2 SSD为单位的

 


根据我之前的了解,Linux系统软件层面对PCIe SSDSurprise”(意外)热插拔的支持还不太好,本次OCP峰会资料中提到了IntelKernel 4.7中对此的贡献,另外也离不开PCIeSwitchPMC)方面的支持。

 

旧文参考:《关于PCIe SSD几个问题的讨论

 


关于上图,我在上周的《详解OCP高密度存储服务器:Facebook身上学到什么?》中列出过几年前的一个早期版本,现在增加了Type VII冷存储和Type VIII DisaggregateFlash(分离式闪存)节点——最右边双路服务器连接15PCIe SSD的方案就使用了Lightning——即4台主机连接一个JBOF存储扩展机箱。

 

密度更高的1U 64M.2 SSD热插拔方案

 

与前面的Lightning相比,我还是觉得这个Project Olympus项目中的M.2热插拔设计更有意思。

 

怎么在1U JBOF机箱中容纳64NVMe M.2呢?具体来说是16个热插拔的carriers,每个里面可以安装4M.2 SSD。不错,这个密度的代价比Lighting还要大一些,要更换就得4个盘同时离线。如果是用于Cache之类的用途,当每个carriers只有一个SSD故障可以暂时不维护应该会好一些吧。

 

引用自《Project Olympus Flash Expansion FX-16

 

由于是隶属于微软贡献的Project Olympus项目FX-16 JBOF共用了Olympus的机箱和电源。我们能看到前面板的16Storage Carriers,中间的PCIe Switch板——从两侧各引出一条通往外部主机的PCIe x16连线。前面板上还有一个千兆管理网口。

 


FX-16方案有2种选择,上图中的280 lane PCIe Switch相对独立——各自连接8M.2 Carrier(应该是8PCIe x8,文字标注似乎有误)到两侧的PCIe x16主机接口。

 

而下面这个设计选项则换成了96 lane PCIe Switch

 


利用多出的16PCIe信道,两颗Switch之间增加一条InterLink链路,这样从任何一个PCIe Switch都可以访问所有64M.2 SSD。该“池化存储”的方案能够实现Host failover,也就是前端主机的故障切换。而若是有一个PCIe Switch故障,还是会有一半SSD不能访问的。

 


连接到FX-16 JBOF的服务器主机,需要安装一块OCP PCIe Retimer扩展卡,其作用就是将PCIe信号从主板引出到对外的MiniSASHD(但此时不是跑SAS协议)连接器上,同时还能起到延长线缆距离,保障信号完整性的作用。

 


看到这块卡,以及上面的PCIe Retimer芯片,我想起在《服务器设计进化:戴尔R930跨代对比之存储篇》中提到的另一款PCIe转接卡,当然它们的连接器位置和用途不同。

 

2年前未拆下散热片时,我曾经误以为R930PCIe转接卡用的也是Retimer芯片,事实证明还是需要PCIe Switch才能达到14的效果。

 

PowerEdge R930四路Xeon E7服务器可选支持8U.22.5英寸)热插拔NVMe PCIeSSD,上面这种卡需要配置2块。它的作用是将主板PCIe信号(配合线缆)引到背板上。其主控芯片是一颗PLX PEX8734 32 lane PCIe Switch,除了涵盖Retimer的特性之外,它主要是提供了交换功能。

 


FX-16的前面板示意图,1U机箱的两边各有4x4 PCIe连接器。

 


上面介绍了单个Carrier的尺寸等特性。它里面可安装4M.222110,长度给的足够)SSDPCIe x8分到每个模块就是PCIe x24SSD功耗一共不超过50W。此外它还是免工具卡锁的。

 

M.2热插拔服务器的展望

 

代号SkylakeIntel Xeon v5平台将于下半年上市,随着NVMe/PCIe SSD应用的增加,U.2热插拔驱动器位会更加普及。相比之下,M.2可以做到更高的密度,但是它能出现在主流通用服务器的热插拔盘位上吗?

 


上面2款机型分别为241.8英寸SAS/SATA SSD盘位的PowerEdge R630181.8英寸+ 83.5英寸盘位的R730xd。可以说这是当前一代服务器的高密度尝试,SAS热插拔支持很好,同时SAS Expander端口数完全可以支撑这个规模。

 

另一方面,我也听有的朋友说1.8英寸SSD(可选择度)不太给力,大概是企业级型号的需求比较有限吧。此外SAS上行带宽、做为控制器的RAID卡也可能成为性能瓶颈(可参考《存储极客:服务器SSDRAID性能速查手册》)。

 

SAS羡慕PCIe的高性能,PCIe羡慕SAS的热插拔。回头来看本文介绍的两款M.2热插拔机型,由于是2/4SSD一起插拔,所以在灵活性上有所不足;要是改为每个M.2一个Carrier,似乎又有些笨重。目前针对Facebook和微软的特定应用场景,出现的是JBOF形式,能否在主流服务器中大规模普及还太不好说。

 

:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312。如果您想在这个公众号上分享自己的技术干货,也欢迎联系我:)


尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注

历史文章汇总(传送门):http://chuansong.me/account/huangliang_storage

点击下方“阅读原文”,查看更多历史文章↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存