还在使用磁盘与PCIe存储方案?只能说您的思维恐怕还停留在两年之前

服务器就像是百变的模特,搭配上DIMM完全不会产生任何问题。

服务器就像是百变的模特,搭配上DIMM完全不会产生任何问题。

还在使用磁盘与PCIe存储方案?只能说您的思维恐怕还停留在两年之前

对于各代PowerEdge、ProLiant、UCS乃至其它x86服务器而言,其发展未来已经变得相当明确:更为强大的多核心处理器、更高内存容量、更高PCIe传输带宽以及不断削减的空间与功耗要求。

举例来说,第八代ProLiant DL3603服务器仅拥有1到2块至强E5-2400/2400 v2处理器,其计算核心为2/4/6/8/10个,同时提供12个最高1600 MHz DDR3 DIMM插槽(最高内存容量为384 GB)。而作为替代方案,第九代ProLiant DL160服务器则采用1到2块至强E5-2600 v3系列处理器,核心数量为4/6/8/10/12个,同时提供16个最高2133 MHz DDR4 DIMM插槽(最高内存容量达到512 GB)。

虽然硬件配置持续走高,但应用程序与操作软件本身则往往无需大加变革——除了对硬件接口层级的驱动程序进行调整之外,这意味着第八代ProLiant能够顺畅将负载移交至第九代设备。应用程序代码将数据由永久存储介质中读取至内存当中,而后交由CPU计算核心加以处理,并最终将结果重新写入至永久存储介质之内。这就像是洗衣机的运作流程——漂洗、重复、完成。

但这一切恐怕将很快迎来转变。

多核心CPU与虚拟化服务器软件带来的可观计算能力意味着应用程序需要耗费更多时间等待来自永久性存储介质的IO响应。另外,服务器还需要以更快速度处理体积更为庞大的数据块,这就要求其需要避免利用永久性存储介质处理延迟敏感型IO操作。

而延迟这一问题的矛头则直接指向以下三大因素:

1.磁盘驱动器在实现随机数据IO时速度过慢。

2.闪存虽然在速度上高于磁盘,但其速度仍无法满足IO需求。

3.操作系统内基于磁盘的IO堆栈往往耗时过长而且属于多余机制。

大家可以让存储介质与服务器的DRAM与CPU靠得“更近”,即直接进行附加,或者将磁盘替换为闪存,乃至将基于磁盘的SATA与SAS协议升级为采用NVMe驱动机制的PCIe——然而,这一切都只能改善而非彻底解决速度过慢的问题。

从PCIe闪存到DRAM的数据读取时间消耗仍然太过巨大,而数据本身需要被转储于DRAM或者其它类型的介质内方可被CPU计算核心所处理的设计思路也大大限制了最终速度表现。

技术行业给出的答案似乎集中在DRAM身上,然而其虽然速度确实够快,但却因为成本太高而无法在各服务器层面用于交付数TB级别存储容量。另外,亦有厂商尝试利用内存DIMM将固态存储机制直接接入内存通道——尽管其存在非易失特性,但仍然将闪存直接视为内存使用。举例来说,数据由NAND DIMM被移动于DRAM DIMM,使用内存传输负载并存储指令,而非通过操作系统堆栈执行那种传统的缓慢IO命令。

一次SAS MLC SSD读取操作通常只需要耗费150微秒。NVMe SSD的一次读取则需要120微秒。NVDIMM-F读取带来的延迟通常在5到10微秒之间,速度提升高达10至20倍。下图所示为NVDIMM速度指示:

还在使用磁盘与PCIe存储方案?只能说您的思维恐怕还停留在两年之前
Xitore NVDIMM图表

图表中所示的Memory1与NVDIMM-X(即Xitore开发的NVDIMM技术)技术参数与我们本文的探讨核心联系并不紧密,因此这里直接将其忽略。

我们假定一次NVDIM-F读取操作需要耗时10微秒:这相当于10000纳秒,而一次DDR4 DRAM访问只需要耗时14纳秒,速度提升超过700倍,但其仍远低于CPU一级缓存访问速度的0.5纳秒。下面来看一次PCIe SSD访问操作所需要的延迟:一次写入延迟为30微秒,而一次读取操作为110微秒,这里使用的为美光9100 NVMe PCIe SSD。这意味着这款美光NVMe SSD在访问数据方面带来的时耗长度将达到NVDIMM-F访问的11倍。(这些数字在不同具体产品当中可能有所区别。)

现在我们将后NAND时代下的存储介质纳入计算,例如英特尔与美光发布的3D XPoint。其读取延迟为7微秒,速度几乎达到美光NVMe SSD产品的16倍。而这还仅仅是其1.0版本的性能表现。

这些数字相当令人鼓舞,也激励着各非易失性介质与驱动器供应商将NAND与XPoint DIMM(乃至ReRAM等其它类型的存储介质技术)推向服务器供应商。根据他们的观点,大家的服务器将能够显著缩短IO等待时长,这意味着将高速存储介质当作内存使用将使得同一服务器承载更多虚拟机并提升虚拟机运行速度。

当然,用户需要对系统及应用程序软件作出修改,从而确保其解决由自身带来的高时耗IO命令问题并转而使用内存负载存储命令——这是因为 NVDIMM非易失性介质能够作为内存直接使用,但这种替换仅在字节层级可行,而非块寻址层级。

那么让我们假定第十代ProLiant服务器采用此类NVDIMM。其需要确保操作系统能够支持NVDIMM类负载存储IO,且各关键性系统与应用程序软件(包括网络浏览器、数据库、邮件与协作软件等)供应商亦能够在其产品当中支持此种新型内存类IO,否则这一全面存储升级将根本无从谈起。

HPE、思科与戴尔乃至其它服务器供应商亦需要摸索NVDIMM与DRAM之间的最佳容量搭配比例。各厂商需要能力计算出NVDIMM容量与PCIe闪存及SAS/SATA磁盘容量间的比值,而后逐步通过原型系统进行工作负载运行测试、分析结果并优化各项系统组件,最终完成对性能、功耗、设备运行温度乃至实现成本的权衡工作。

下一代服务器的开发工作将因此变得极为复杂,其复杂度将远超目前这一代。另外,这种与NVDIMM相关的硬件与软件复杂性还将逐步渗透至传统CPU、DRAM、IO适配器等元素的开发工作当中。我们可以预见,英特尔公司必然会把来自其Altera事业部的FPGA方案纳入这一组合,从而进一步提升特定应用程序工作负载的运行速度。

各服务器供应商都面临着艰难的方案开发工作,但如果他们能够摸索出正确的发展道路,那么最终的服务器成果将更为强大——而作为用户的我们自然也将乐见其成。

来源:ZD至顶网存储频道

0赞

好文章,需要你的鼓励

2016

10/06

16:11

分享

点赞

邮件订阅
白皮书