存储 频道

IDF2012:PCIe SSD背后的功臣——NVMe

  【IT168 专稿】4月11日,以“引领潮流 直面未来”的英特尔全球高水平技术论坛活动——英特尔IDF大会在北京国家会议中心拉开帷幕。在此次会上,作为全球IT技术的领导者,英特尔再次针对未来的技术趋势及发展做了讲解,这之中包括云计算、下一代数据中心、lvy Bridge微架构以及固态硬盘等内容。

IDF2012:PCIe SSD背后的功臣——NVMe
▲英特尔IDF大会现场直播,点击图片进入直播专题查看更多内容

  现在包括EMC、LSI、OCZ以及Fusion IO等存储行业主流公司均推出了基于PCIe技术的PCIe SSD,以帮助企业用户解决应用对于存储越来越高的性能需求,PCIe SSD市场一下子火热起来,就连IT界巨头英特尔公司也在今天发布了PCIe SSD产品——Intel SSD 910系列。PCIe SSD将越来越受到饱受存储性能困扰的用户的欢迎,在PCIe SSD大行其道的背后,却有一个功臣正在默默支持PCIe SSD,那就是NVM Express技术。

  说到PCIe SSD的好处,主要有几个方面,首先,全双工、多请求处理能力以及无序处理能力给存储性能带来极大的提升;其次则是可扩展的接口带宽,从1路可扩展到16路,由此带来的实际效果就是可扩展的链路速度,从250M/s到500M/s,在到1000M/s,大大突破了传统存储介质的性能局限;并且与传统存储相比,其无可比拟的低延时和低成本投入,都在不断吸引着用户的注意力。说了这么多PCIe SSD的好处,那么今天的主题,NVMe究竟为PCIe SSD发挥了哪些作用呢?

  NVM Express是一个针对使用PCI Express SSD的企业和普通客户端系统开发的可扩展的主机控制芯片接口标准。其主要包含了优化的寄存器接口和指令集两个部分。目前NVMe由IT业界的80多个公司成员合作开发,其中包括我们所熟知的思科、戴尔、EMC、NetApp、Oracle、Intel以及SandForce(已被LSI收购)等公司,可谓是阵容庞大。关于NVMe所发挥的作用,可以用下面这个表格来进行一一罗列:

IDF2012:PCIe SSD背后的功臣——NVMe

  并且,为验证NVMe在实际环境中所能发挥出来的效果,我们用NVMe 与目前市场上较为主流的一款PCIe SSD进行了实际评测,测试结果如下:

IDF2012:PCIe SSD背后的功臣——NVMe

IDF2012:PCIe SSD背后的功臣——NVMe

  通过上述结果显示,采用了NVMe的SSD在性能方面比普通的PCIe SSD要高出一大截。目前NVMe标准已经于2011年3月发布,据英特尔预计,NVMe 1.1版本将于今年的8月发布,并且,英特尔还透露了NVMe 1.1版本中将引入的新的功能。其主要包括写零指令、数据拷贝指令、通用化的SGL支持和启用多路访问等四个方面。

  写零指令

  文件系统在特定工作负载下,会在数据块写零上耗费大量的时间,如果能够对其进行优化的话,那无疑将节省用户大量的时间,目前通常的做法是用写命令对块进行写零和使用Deallocate来对块写零这两种方式。但是用写命令对块写零无疑是低效的,主机通过总线传送大量的零是对功耗的严重浪费;而使用Deallocate(如Trim)对块进行写零实际上是没有依据的,其并不能保证数据的状态,并且在写入之后,读出来的数据可能是全零、全1或者上次写入的数据。无疑这两种做法在要求高效的企业环境中是不可行的。

  因此,为了满足这以需求,NVMe 1.1版本中将加入写零指令,这样的作用可让文件系统会保证最终的数据状态是全零,并且增加的写零指令不会有任何的数据缓存操作,并支持端到端的数据保护。

  数据拷贝命令

  企业数据总量越来越庞大,由此产生的问题就是数据中心的功耗越来越高。低功耗完全可以从细节入手,如减少总线上不要的数据传输可能是极其有效并能从根本上解决功耗过高的难题。

  通常情况下,文件系统和应用会频繁地拷贝数据,让数据在同一块SSD上从一个LBA复制到另一个LBA上,由此产生的“蝴蝶效应”将使得数据中心的能耗大大增加。而NVMe 1.1版本中引入的数据拷贝指令正是为了解决这个问题。

  其通过加入数据拷贝指令来对性能和功耗进行优化。具体做法是通过确认源端LBA以及长度,在不需要数据缓存的情况下,设备本身可能会在内部搬移数据;甚至在某些情况下,SSD只需修改LBA-PBA对应表,而无需任何数据搬移。引入数据拷贝指令后的效果可从下表中反应出来:

IDF2012:PCIe SSD背后的功臣——NVMe

  通用化的SGL支持

  在一些特定情况下,通用化的SGL支持是有益的,比如低级软RAID应用,如果第一个条带的起始位置没有根据页对齐,那么每个新的条带都有一个非0的偏移。在NVMe 1.1版本中,其将会把通用的SGL支持作为选装。值得注意的是,硬盘应该只在需要的时候使用通用化SGL,以避免无序数据传输效率受到影响。

  启用多路访问

  NVMe命名空间可以支持多路访问,如有多个PCIe接口的SSD,将其挂在PCIe交换机后的服务于多个主机的SSD,在这两种情况下,可能都会出现这种情况,两台主机访问同一个命名空间必须要协调,能这一个协调过程无疑会影响SSD的性能。在新的NVMe版本中,其将添加类似的功能以使其具备有效的主机协调能力,比如给命名空间一个特点的ID,可以使主机知道是否正在访问同一个命名空间;另一种方案是引入预订功能,其可允许独享或共享基于某个命名空间的访问。

0
相关文章