Flashtec NVRAM加速卡以次微秒级延迟实现一千五百万次 IOPS

Flashtec NVRAM加速卡以次微秒级延迟实现一千五百万次 IOPS

EnterpriseTech

PMC新近为超大规模数据中心的运营者及企业级存储供应商提供了一款崭新的产品,助其打造更为前卫的存储基础设施。PMC公司成立于三十年前,作为一家广受业界认可的半导体公司,过去专营通信领域的设备,于七年前进入企业存储市场。该公司刚刚研发成功了一款基于DRAM主内存与闪存混合的非易失性存储卡,实现了惊人的千万次IOPS(每秒输入/输出次数)。

这一速度胜出仅仅基于NAND闪存的PCIe卡十倍之多,如此优异的性能表现势必将受到诸多意图加速其应用的公司的瞩目。

新推出的NVRAM加速卡命名为Flashtec,基于PMC自己研发的支持NVMe协议的控制器。NVMe协议于近年推出,目的在于通过将操作系统内核和驱动剥离出来,使CPU和主内存得以专注于处理系统中的闪存设备,从而大大提升闪存的性能。PMC于2007年推出了首款6Gb/sec SAS/SATA和8Gb/sec FibreChannel控制器,随后并购了Adaptec,于2012年增添了12Gb/sec SAS产品。

同年,PMC又添新秀,在其产品线中加入了支持NVMe协议的闪存及NVRAM控制器,降低了I/O操作的延迟,并将I/O所需的计算时间减少了一半有余(与常规SAS协议相比)。这些控制器产品中至多有8TB闪存与之相连,对4KB大小的文件随机读能实现875,000 IOPS。该系列产品有两种配置,一种具有16个通道、针对PCI-Express x4插槽;另一种有8个通道、针对PCIe x8插槽。PMC还销售SAS 主机总线转接卡,去年还推出了SAS/SATA RAID控制卡。据PMC公司产品营销部门的资深总监Roger
Peene所言,2008年,也就是七年前,PMC在服务器上的SAS端口所占的市场份额还基本为零,而今,该项份额已经超过了50%。 但是,更具震撼性的消息还是在本周的闪存峰会上,PMC运用其业界首款NVMe闪存控制器而创造的全球首款支持NVMe协议的NVRAM加速卡。

Peene告诉与会记者,Flashtec NVRAM加速卡是一款PCI Express卡,与NVDIMM卡截然不同。NVDIMM卡的做法是将闪存置放在模块当中,再将这些模块以多种方式插入服务器的主内存槽。首先,NVDIMM需要BIOS支持,消耗内存插槽额外的能源,并且与应用竞争着处理器周期及内存总线带宽。NVDIMM也更接近处理器。由于内存总线比PCIe总线快得多,许多人认为NVDIMM是优选的解决方案。但是,PMC 推出的NVRAM混合方案将闪存与DRAM两者的长处合二为一,使之既可以作为内存,也可以作为理想的块存储设备。

该产品的特异之处正在于此,因为Flashtec加速卡的用途因此而多种多样。当应用通过NVMe接口来进行基于块的访问时,使用的是存储用语——打开、读出、写入等等,并以固定的块大小来访问卡上的DRAM,和访问闪存或磁盘存储并无二致。而在另外一种速度更快的内存映射访问模式时,该卡拥有一个直接的内存接口,具备64位内存映射及寻址,此时,应用使用的是内存用语——载入及存放,DMA引擎则访问卡上存储于DRAM的数据。在这两种使用模式下,存储于DRAM的数据总是即刻备份到了闪存之上。

Peene介绍说,若想将Flashtec用作写缓存,那么就要将它配置成一台块设备;但若想更新元数据或者数据库记录,那么更加自如的办法是内存映射模式。无论怎样,卡速都是惊人的块。

据Peene介绍,在内存映射模式下,对于4KB随机读,Flashtec能达到的IOPS峰值为4.3 million;对于4KB随机写,其峰值为4.6 million。(DRAM可以达到几乎相同的读和写性能,然而,单单闪存则无法实现这一点。)在读性能方面,该卡的性能大约十倍于固态盘。如果关注点是元数据和数据库负载的写性能,Flashtec在64位随机写条件下能实现15 million IOPS,大约是SSD的性能的100倍。(SSD能达到的IOPS约在50,000到100,000的范围)。在块模式下,对于4KB大小的文件,Flashtec
NVRAM加速卡能达到约1 million IOPS。

Flashtec加速卡还可以进行分区,同时以内存映射和块模式运行。下图显示了NVRAM在延迟方面的表现及其在存储层级中的相应位置:

FlashtecNVRAM 加速卡系列分别带有4GB、8GB、16GB的DRAM内存。PMC主要采用了Micron Technology的产品作为卡上内存和闪存芯片,并且正在寻求第二家元件供应商。PMC并未明确告知卡上有多少闪存,但指出卡上闪存的容量至少是DRAM容量的一倍,这样用户至少可以对DRAM上的数据作出两个备份。Peene提到,数据库及元数据缓存所需的容量上限为16GB,因此不需要在卡上配置1TB或2TB 的DRAM及闪存。(虽然从工程设计的角度来看,大容量的考量还是有其挑战,并且也可能存在某种适合的应用场景…)将DRAM内容备份到闪存需时低于30秒,总共可以处理逾5,000次备份周期;而将数据从闪存恢复至DRAM则需时不到60秒。

PMC的NVRAM加速卡的设计初衷在于解决DRAM主内存与闪存本质上的若干缺陷。DRAM存在易失的问题,电源一出故障,其上的数据就不复存在。闪存则是非易失的,意味着其上的数据可以存放数月之久,而无须任何供电;但闪存单元随着每次写周期而发生损耗。此外,闪存随着时间推移而耗损,并且在往闪存写入新数据之前,必须要对闪存上的区段进行覆盖,因而更加剧了损耗过程。闪存SSD的每日写(DW/D)上限为10次,而据Peene介绍,企业存储所需的每日写次数为50到1,000次。闪存显然无法达到这样的指标。PMC认为,在其他种类的非易失性存储上市之前,NVRAM加速卡不失为一种理想的解决方案,即将DRAM与闪存相结合,由闪存对DRAM进行备份,在服务器电源出问题时,由卡上的超级电容模块来将数据
从内存备份到闪存。超级电容的存在使得服务器厂商或超大规模数据中心的运营者在设计使用设备时,无需在系统中为关键型负载而给主内存加入不间断电源或电池备份单元,从而大大缩减了整个机架的成本。

任何已经有闪存层涉及在内的应用都可能受益于Flashtec加速卡的加速功能。可能的应用包括将其用于横向扩展式文件系统中的元数据存储,或作为全闪存阵列中的高速缓存层。内存中数据库的日志记录也可以利用Flashtec来提升其性能,效果远远优于单单采用SSD或者基于闪存的PCI-Express卡。

Flashtec NVRAM加速卡可以插入PCI-Express 3.0 x8插槽,半高尺寸,RedHat Enterprise Linux 6.5和7.0内嵌对此卡的支持,显然,其他操作系统也将紧随其后。PMC表示,与市面上其他NVRAM产品相比,Flashtec加速卡的定价将会很有竞争力。Flashtec加速卡将于第四季度上市,目前,已有一些最早采用该技术的客户在进行试样。

时间: 2024-07-29 22:53:59

Flashtec NVRAM加速卡以次微秒级延迟实现一千五百万次 IOPS的相关文章

PMC Flashtec? NVRAM 闪存加速卡 FAQ

PMC Flashtec? NVRAM 闪存加速卡 常见问题解答 概要 PMC Flashtec NVRAM闪存加速卡系列是一款基于当今市场上最为先进的NVMe控制器的PCI-Express? NVRAM解决方案.该系列产品设立了一个崭新的存储层级,能加速关键型应用. SSD解决方案不断在多级存储空间中的高性能层级取代了传统的HDD.但在延迟.耐久度及高可用性等各方面,还存在着内存与存储层级之间巨大的性能鸿沟.由于应用的需求随着云服务的速度提升而持续加速攀升,依赖易失性内存来实现所需的性能导致的

C++计时器:毫秒级和微秒级

1.毫秒级 使用GetTickCount()获取系统启动所经过的毫秒数 #include<iostream> using namespace std; int main(){ DWORD start= ::GetTickCount(); //获取毫秒级数目 Sleep(1000); cout << ::GetTickCount() - start<< endl; system("pause"); } 2. 使用clock() #include <

linux下C语言获取微秒级时间

使用C语言在linux环境下获得微秒级时间 1.数据结构 int gettimeofday(struct timeval*tv, struct timezone *tz); 其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果: struct timezone{ int tz_minuteswest;/*格林威治时间往西方的时差*/ int tz_dsttime;/*DST 时间的修正方式*/ } timezone 参数若不使用则传入NULL即可. 而结构体timeval的定义为: s

shell脚本示例:计算毫秒级、微秒级时间差

有时候需要计算命令的执行时间长度,可以使用time命令,虽然time命令可以精确到毫秒级,但time命令无法计算一堆命令的执行时间.可以也可以直接使用date命令计算命令执行前后的时间差,但直接使用date命令计算时间差只能精确到秒级.因此,要计算毫秒级或者微秒级的时间长度,需要对date命令的结果进行一番计算转换. 本文只给出了毫秒级时间差的计算方法,若要计算微秒级时间差,对脚本稍作修改即可. 脚本如下: #!/bin/bash # filename: msec_diff.sh functio

windows下实现微秒级的延时

1.微秒级的延时肯定不能基于消息(SetTimer函数),因为一出现消息堵塞等就会影响精度,而且setTimer单位才是毫秒.实际响应时间可能要到55毫秒左右. 2.微秒级的延时也不能不能基于中断,VxD最快的时钟服务程序Set_Global_Time_Out函数才能保证1毫秒的精度.其他挂接int 8H中断处理函数等,只能保证55ms的精度.(有时还不能) 3.因此可以想到汇编下的那种基于循环执行语句的那种延时.但汇编那种代码不通用,跟cpu的频率有关. 所以可以用windows下的几个函数来

windows下基于(QPC)实现的微秒级延时

1.为什么会写windows下微秒级延时 在上一篇 实现memcpy()函数及过程总结 中测试memcpy的效率中,测试时间的拷贝效率在微秒级别,需要使用微秒级时间间隔计数. windows下提供QueryPerformanceCounter(查询高性能计数器),QPC是基于硬件计数器,获取高分辨率时间戳. 参考:Acquiring high-resolution time stamps 应用形式: 1 LARGE_INTEGER start, end; 2 LARGE_INTEGER Freq

阿里云DTS大幅降价,低至400元即可获得实现秒级延迟的数据传输服务

为了释放更多技术红利,进一步普惠广大客户和开发者,阿里云7月上旬宣布数据传输服务(Data Transmission Service,简称DTS) 数据同步功能降价,最高降价幅度高达40%.中国大陆,最低单价低至400元/月,跨境专线同步,最低单价低至1590元/月. 阿里云DTS支持关系型数据库.NoSQL及大数据等同异构数据源之间的的数据迁移同步及增量数据实时订阅.致力于在公有云.混合云场景下,解决远距离.毫秒级异步数据传输难题,用户可以使用数据传输轻松构建安全.可扩展.高可用的数据架构.

织女星开发板RISC-V内核实现微秒级精确延时

前言 收到VEGA织女星开发板也有一段时间了,好久没玩了,想驱动个OLED屏,但是首先要实现IIC协议,而实现IIC协议,最基本的就是需要一个精确的延时函数,所以研究了一下如何来写一个精确的延时函数.众所周知,ARM Cortex-M内核都有一个24位的SysTick系统节拍定时器,它是一个简易的周期定时器,用于提供时基,多为操作系统所使用.RV32M1的RISC-V内核也有一个SysTick定时器,只不过它不属于内核,而是使用的一个外部通用定时器,即LPIT0( low power perio

解题报告——2018级2016第二学期第五周作业排座椅

解题报告--2018级2016第二学期第五周作业 F:排座椅 描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来 之后,只有有限的D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设 置了K条横向的通道,L条纵向的通道.于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅