内存与存储之边界迎来变革

延迟可以说是存储系统永远的痛。没人愿意等待,至少每一套虚拟机都渴望着能以多线程、多核心、多插槽方式在虚拟服务器中大量访问数据。然而随着摩尔定律的逐渐失效,处理器的发展速度已经明显放缓,这意味着改善IO延迟已经成为让昂贵的IT方案发挥更大力量的必由之路。

目前已经有两项新的技术成果得到应用,且二者都能够立足于两大主要存储边界点实现可观的延迟降低效果:其一为内存与存储之间,其二为内部与外部联网存储之间。

内部/外部边界的转移归功于NVMe-over-fabric(简称NVMeF)访问机制。那么这种变革为什么会出现?又是如何实现的?

内部:外部存储边界

内部存储通过PCIe总线接受访问,随后经由SAS或者SATA硬件适配器与协议堆栈对接磁盘或者固态驱动器(简称SSD)。直连NVMe PCIe总线访问属于速度最快的内部存储访问方法,但目前还没能完全取代SAS/SATA SSD以及HDD访问机制。

内存与存储访问延迟系谱以及NVMe光纤接入阵列所处位置。

要访问容量更大的共享式存储,我们则需要使用联网外部阵列,其通过光纤通道(块访问)或者以太网(iSCSI块及/或文件访问)与服务器相对接。在这里我们暂时不讨论对象存储及Hadoop存储,而将注意力主要集中在通用型服务器的外部存储状态身上。

除了存储介质访问时间之外,网络传输同样需要耗费时间。当磁盘驱动器(简称HDD)在阵列中充当一级存储介质时,其会给数据访问时长添加寻道时间与旋转延迟等因素,这意味着网络延迟表现得并不明显。然而如今的一级外部阵列已经开始向速度更快的SSD转移,这意味着网络传输时长就变得非常重要。尽管光纤通道传输能力已经由过去的每秒8 Gbit提升至每秒16 Gbit,而以太网则由10 GbitE提升至25与40 GbitE,但由于访问涉及往返两个部分,因此网络延迟仍然会加倍。

InfiniBand能够显著提升速度表现,但价格同样令人咋舌,而且与最新技术相比仍然算是比较缓慢。具体来讲最新技术将PCIe总线外部化,并在一套以太网体系之内对外部阵列运行NVMe协议(或者其它同类方案)。

NVMeF访问延迟在200微秒以下。为了让大家更清楚地理解其含义,我们整理出了下面这份延迟表单,具体排名当然是由快到慢:

虽然看似精确,但其中的数字其实比较粗糙,另外实际接入延迟也要比图表中所列出的更高。

最右侧的一列立足于日常环境,即将一级缓存的访问时长规定为1秒,而后以此为基础进行等比计算。因此,二级缓存访问耗时更长,为一级缓存的14倍--那么其访问流程则为14秒。DRAM存取时间为一级缓存的400倍,即6分40秒。NVMe PCIe SSD写入为一级缓存访问时长的6万倍,实际时长为3万纳秒--听起来挺快,但在将一级缓存作为1秒来考虑时,其耗时将达到令人难以置信的40分钟。

再来看SAN访问:300毫秒,根据我们的计算条件其相比时长将达到19年5天10小时40分钟。DAS磁盘访问时长不到其一半,为100毫秒,而NVMe访问在写入时延迟为30微秒、读取则为100微秒。

经过我们的换算,NVMeF写入操作的相对时长为16小时40分,读取则为61小时6分40秒。

目前DSSD D5与Mangstor NX阵列基本能够达到NVMeF的微秒级读取/写入延迟水平。

这种光纤通道或者iSCSI SAN与NVMe-F方案间的访问延迟差异如此巨大,使得众多供应商积极投入其中并希望借此彻底摧毁传统存储产品。目前新方案中的典型代表包括DSSD、E8、Mangstor以及Mangstor合作伙伴Zstor。

内存:存储边界

内存存储边界为DRAM(其属于易失性或者说非持久性存储介质--即断电后数据将丢失)同存储(即持久性或者说非易失性介质--断电后数据仍能保留)的对接处。

NVDIMM-B属于利用闪存作为备份手段的内存DIMM,因此其拥有内存级别的访问速度。

这种对接会造成速度损耗,因为即使是速度最快的非易失性介质--闪存--也要远慢于内存访问速度(0.2微秒对30/100微秒,二者分别为NVMe SSD的读取与写入延迟)。

要解决这一难题,我们可以直接将闪存接入内存总线,也就是闪存DIMM(简称NVDMM-N)技术,这使其延迟能够达到5微秒水平。Diablo Technology走的正是这条路线,而SanDisk也在这方面拿出了其ULLtraDIMM方案。不过这样的速度水平仍然只有内存访问的二十五分之一。

英特尔与美光的3D XPoint技术据称能够提供远高于闪存的非易失性存储性能。双方指出,XPoint的速度表现可达SSD的1000倍,虽然仍不及DRAM,但延迟水平已经得到显著降低。

好了,假设普通SSD(非NVMe)的平均延迟为200微秒,将其除以1000则为200纳秒,与DRAM一样--这显然是胡说八道。英特尔/美光明显是将XPoint同某些老古董级的SSD比较才得出了这样的结论。

添加了3D XPoint与非NVMe SSD访问速度的新版延迟图表。

那么我们假定XPoint的延迟为500纳秒,那么乘以1000则意味着作为其比较对象的SSD延迟为500微秒:好吧,反正我是没见过这么差的SSD技术。

无论如何,如果XPoint真能达到其宣称的效果,那么内存:存储边界将在系谱图中向左侧移动,而应用程序软件开发者则将迎来新一轮速度提升--至少是在使用XPoint的设备上。

除了XPoint,可能还存在其它一些类似的新技术,例如旋矩存储或者惠普旗下的忆阻器方案,而它们的出现将令内存与存储的边界再度向右移动。

那么以上设想真能变成现实吗?

在我们看来,答案应该是肯定的。诚然,相关变革需要相当长的推进时间并面对一系列挑战。不过面对着夸张的现有数据延迟以及新技术所做出的令人心动的提升承诺,其到来将是不可避免的。

原文发布时间为:2016年04月05日

时间: 2024-09-20 06:19:58

内存与存储之边界迎来变革的相关文章

PHP 直接在共享内存中存储数据集

共享内存是一种在相同机器中的应用程序之间交换数据的有效方式.一个进程可创建一个可供其他进程访问的内存段,只要它分配了正确的权限.每个内存段拥有一个惟一的 ID(称为 shmid),这个 ID 指向一个物理内存区域,其他进程可在该区域操作它.创建并提供了合适的权限之后,同一台机器中的其他进程就可以操作这些内存段:读取.写入和删除. 这表明使用 C 语言编写的应用程序可与使用其他语言(比如 Java 或 PHP)编写的应用程序共享信息.它们都可以共享信息,只要它们可访问和理解该信息.共享内存在针对大

java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢

问题描述 java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 栈内存:局部变量和对象的引用变量: 堆内存:对象: 以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 解决方案 static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息. 所以不断的加载类或jar包可能出现permgen oome的错误. static是在堆内存的数据区. 解决方案二: java stat

【C/C++学院】0819-/类的成员函数与const-mutable /构造与析构/拷贝构造deletedefault以及深浅拷贝/静态成员函数成员变量类在内存的存储默认参数/友元类以及友元函数

类的成员函数与const-mutable  成员函数 Fushu.h #pragma once #include <iostream> class fushu { public: int x; int y; public: fushu(); ~fushu(); void show(); inline void showall(int x, int y);//显式内联 void setxy(int x, int y);//编译器优化,默认隐式内联 void show(int x, int y);

中国存储市场正迎来自主创新的时代

随着对高新企业重新认定的认知与接受度越来越高,中国的高新科技企业正在加大自主创新的力度,建立并发展了越来越多的研发中心与技术实验室,而对于这些企业来说,越来越多的创新科技与专利技术,在短期内明显的提升了企业的改革力度,帮助企业进入了高速的良性循环之中. 在企业级IT市场,一直以来都客观存在着一道门槛,在包括研发模式.合作体系.技术储备.掌握专利等方面落后的情况下,中国存储厂商的研发实力难以积聚,很长一段时间内难以形成有效地研发体系和技术模式,同时,由于与国际领先厂商在系统集成.产品OEM.技术授

云计算落地衍生云存储 数据中心大变革

本文讲的是云计算落地衍生云存储 数据中心大变革,[IT168 资讯]云存储产品随着云计算的落地,已经得到了诸多厂商的支持和关注,云存储是在云计算概念上衍生和发展出来的一种新的技术或者服务,云计算是将分布式处理.并行处理.网络计算相互结合,通过网络将计算机处理程序自动分拆成无 数个较小的子程序再由多部服务器组成的庞大系统经计算分析之后将结果交回给用户.云存储则是将网络中各类存储设备通过应用软件集合起来协同工作,对外提供数据存储和业务访问功能的一个系统. 什么是云存储 云存储主要是由4层组成:包括存

基于小文件的内存云存储优化策略

基于小文件的内存云存储优化策略 英昌甜 于炯 鲁亮 刘建矿 由于内存云RAMCloud采用日志段的方式存储数据,因此当大量小文件存储于RAMCloud集群时,每个小文件独占整个段,会产生较多的段内碎片,从而导致内存的有效利用率较低以及大量的内存空间浪费.为了解决这个问题,提出基于文件分类的RAMCloud小文件存储优化策略.该策略首先根据文件的相关特性将小文件分为结构相关文件.逻辑相关文件以及相互独立文件三类;然后在存储时对结构相关的文件使用文件合并算法,逻辑相关和相互独立的小文件则使用分组算法

Android实战教程第七篇之如何在内存中存储用户名和密码

本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

模糊的边界:内存和存储以全新方式融合

 软件定义的存储刚刚开始形成,然而系统演进的步伐已经使得未来技术的创新越来越受到关注. 我们并非要在文中探讨磁盘存储池,也不是要讨论固态驱动器.存储的未来在于其与内存的融合.随着非线性双列直插式存储器模块(nonvolatile dual in-line memory modules, NVDIMM)的引入,系统内存在变得越来越复杂的同时,也将内存的速度与存储的持久质量结合到了一起. 这些产品已经问世.镁光(Micron)推出的首款全闪存的NVDIMM已经在产,并且几家(硬件)供应商都在服务器产

Google Drive降价将为云存储市场带来大变革

3月17日消息,谷歌的云存储服务Google Drive在上周迎来了大降价,这会对整个市场造成怎样的影响呢?其他竞争者是否会有所回应?科技网站CNET日前就对此进行了分析: 2   如果有人还怀疑云存储业务是一个高风险的游戏,谷歌在上周的行动消除了所有的疑虑.这家搜索巨头大幅降低了旗下云存储服务的价格,这让消费者感到非常意外.现在,Google Drive免费提供的存储空间达到了5GB,而100GB每月仅需1.99美元(从4.99美元下调),1TB的价格降至每月9.99美元(从49.99美元下调