acm-headergydF4y2Ba
登录gydF4y2Ba

ACM通信gydF4y2Ba

贡献的文章gydF4y2Ba

未来云数据中心的可编程固态存储gydF4y2Ba


ARM内部模块,说明性图片gydF4y2Ba

图片来源:Andrij Borys Associates / ShutterstockgydF4y2Ba

今天的云数据中心在应用程序/操作系统(OS)和存储基础设施之间的创新速度方面存在重大脱节。应用程序/操作系统软件每隔几周就会以“云计算速度”更新或改进功能,而存储设备在数据中心的硬件生命周期为3至5年期间是禁止这种持续创新的。由于存储设备内的软件是由存储供应商作为专有固件编写的,不允许一般应用程序开发人员修改,所以开发人员被一个设备的功能和能力被冻结在时间上,即使它们中的许多在软件中是可以修改的。在云计算行业,五年几乎是永恒的,每隔几个月就会有新的特性、平台和应用程序程序接口(api)发生变化,存储系统的应用需求也会随着时间的推移而快速增长。这种在存储基础设施的适应性和移动速度上的明显滞后,可能最终会影响整个云世界的创新能力。gydF4y2Ba

回到顶部gydF4y2Ba

关键的见解gydF4y2Ba

ins01.gifgydF4y2Ba

在本文中,我们提倡创建一个由软件定义的固态驱动器(ssd)存储基板,它可以像从云数据中心的服务器访问的应用程序/操作系统一样可编程、敏捷和灵活。一个完全可编程的存储基板有望更好地弥合应用程序/操作系统需求和存储能力/限制之间的差距,同时允许应用程序开发人员以云计算的速度进行内部创新。gydF4y2Ba

向IO设备和协同处理器的软件定义控制的转变以前在数据中心已经上演过。gpu和网络接口卡(nic)都是作为黑箱设备启动的,为cpu密集型操作(如图形和数据包处理)提供加速。在内部,他们结合了专门的硬件和专有的固件来实现加速功能。由于客户要求更大的灵活性,供应商慢慢地将可编程性暴露给系统的其他部分,释放出gpu提供的巨大处理能力,以及系统如何管理网络以实现更细粒度的流量管理、安全性和深度网络遥测等增强功能的新的敏捷性。gydF4y2Ba

存储行业正处于类似转型的风口浪尖。现代ssd依赖于运行复杂固件的复杂处理引擎,供应商已经为云运营商提供了定制的固件构建。通过易于访问的接口公开这种可编程性,可以让云数据中心中的存储系统动态地适应快速变化的需求。gydF4y2Ba

回到顶部gydF4y2Ba

存储的趋势gydF4y2Ba

每天产生的数据量呈指数级增长,数据中心的处理需求越来越大。根据IBM 2017年市场趋势报告,gydF4y2Ba一个gydF4y2Ba2016年全球90%的数据是在2015年的最后12个月创建的。这种大规模的数据集通常从几十tb到多pb,在实现非常快速和高效的数据处理时,面临着极端规模的挑战:在吞吐量和延迟方面,高性能的存储基础设施是必要的。这一趋势导致人们对ssd的积极使用越来越感兴趣,与传统的旋转硬盘驱动器(hdd)相比,ssd提供了一个数量级的更低延迟和更高吞吐量。除了这些性能优势外,新技术的出现(如3D NAND使密度更大的芯片和用于批量存储的四电平单元,或QLC)允许ssd继续大幅扩展容量,并大幅降低价格。gydF4y2Ba

固态硬盘有两个关键组件,gydF4y2Ba4gydF4y2Ba所示gydF4y2Ba图1gydF4y2BaSSD控制器和闪存存储介质。最常见的实现为系统片上(SoC)的控制器是用来管理底层存储介质的。例如,使用NAND闪存构建的ssd有独特的特点,数据只能写入一个空的内存位置,不允许就地更新,内存只能忍受有限的写之前,它不能再被读取。因此,控制器必须能够执行一些后台管理任务(如垃圾收集),回收包含无效数据的flash块,以创建可用空间,并实现磨损均衡,使写操作均匀分布在整个flash块上,从而延长SSD的寿命。这些任务通常由运行在控制器中一个或多个嵌入式处理器核心上的专有固件实现。在企业SSD中,通常使用大SRAM来执行SSD固件,用户数据和内部SSD元数据都缓存在外部DRAM中。gydF4y2Ba

f1.jpggydF4y2Ba
图1所示。现代flash SSD的内部架构。gydF4y2Ba

有趣的是,ssd硬盘的内部总带宽通常比主机I/O接口(如SAS和PCIe)支持的带宽大得多。gydF4y2Ba图2gydF4y2Ba概述了一个利用多个NVM Express (NVMe)的传统存储系统的示例。gydF4y2BabgydF4y2Ba固态硬盘;其中64个连接到16个PCIe交换机,通过16个PCIe Gen3通道连接到主机上。虽然这种存储架构以较低的成本为大容量存储服务器提供了一种实用的解决方案(与构建专门的服务器直接将所有ssd连接到主机主板上相比),但最大吞吐量仅限于16通道PCIe接口速度(参见gydF4y2Ba图2一个gydF4y2Ba),大约是16GB/秒,不管并行访问的ssd的数量是多少。因此,主机接口和总的SSD带宽之间有8倍的吞吐量差距,每个SSD的总带宽可能高达大约2GB/秒gydF4y2BacgydF4y2Bax64 ssd = ~128GB/秒(参见gydF4y2Ba图2 bgydF4y2Ba).更有趣的是,如果考虑到内部SSD的性能,这一差距将进一步扩大。现代企业级SSD通常由16或32个闪存通道组成,如中所述gydF4y2Ba图2gydF4y2Ba.由于每个闪存通道可以保持~500MB/秒;内部每个SSD可以高达~500MB/秒每个通道X 32通道= ~16GB/秒(参见gydF4y2Ba图2 dgydF4y2Ba);和总集成的SSD性能将是~16GB/秒每个SSD X 64 SSD = ~1TB/秒(参见gydF4y2Ba图2 cgydF4y2Ba), 66倍的差距。因此,使ssd可编程将允许系统充分利用这种丰富的带宽。gydF4y2Ba

f2.jpggydF4y2Ba
图2。使用多NVMe ssd的传统存储服务器架构。gydF4y2Ba

回到顶部gydF4y2Ba

存储内编程gydF4y2Ba

现代SSD结合了处理嵌入式处理器和存储组件ssram, DRAM和闪存来执行管理SSD所需的日常功能。这些计算资源提供了运行一般用户定义程序的有趣机会。2013年,Do等人。gydF4y2Ba6gydF4y2Ba,gydF4y2Ba17gydF4y2Ba在三星SAS闪存SSD中运行选定的数据库操作时,首次探索了这种机会。他们编写了简单的选择和聚合操作符,编译到SSD固件中,并扩展了Microsoft SQL Server 2012的执行框架,开发了一个工作原型,在这个原型中,简单的选择和聚合查询可以端到端运行。gydF4y2Ba

通过将数据库操作卸载到SSD上,这项工作多次证明了性能和能源效率的提高,并强调了广泛适应可编程SSD需要克服的一些挑战:首先,SSD内部可用的计算能力受到设计的限制。没有L1/L2缓存的SSD内的低性能嵌入式处理器和SSD内DRAM的高延迟需要特别仔细的编程,才能在SSD中运行用户代码,而不会产生性能瓶颈。gydF4y2Ba

此外,嵌入式软件的开发过程是复杂的,使编程和调试非常具有挑战性。为了最大限度地提高性能,Do等人必须仔细规划运行在SSD内的代码所使用的数据结构的布局,以避免溢出SRAM。同样,Do等人使用硬件调试工具来调试在SSD中运行的程序,这比一般应用程序开发人员使用的常规调试工具(如Microsoft Visual Studio)要原始得多。更糟糕的是,设备端处理代码选择和聚合必须在原型中编译到SSD固件中,这意味着应用程序开发人员不仅需要担心目标应用程序本身,还需要担心SSD固件中复杂的内部结构和算法。gydF4y2Ba

最重要的是,错误的后果可能是相当严重的,它可能导致损坏的数据或不可用的驱动器。日常应用程序程序员不太可能接受额外的复杂性,云提供商不太可能让不可信的代码在如此脆弱的环境中运行。gydF4y2Ba

应用程序开发人员需要一个灵活而通用的编程模型,该模型允许在SSD中轻松运行用高级编程语言(如C/ c++)编写的用户代码。编程模型还必须支持多个SSD内应用程序的并发执行,同时确保恶意应用程序不会对整个SSD操作造成不利影响,或违反操作和文件系统提供的保护保证。gydF4y2Ba

2014年,Seshadri等人。gydF4y2Ba20.gydF4y2Ba他提出了Willow,这是一款将可编程性作为SSD接口核心特性的SSD,允许普通开发者使用特定于应用程序的功能安全地扩展SSD语义,而不会损害文件系统保护。在他们的模型中,主机和ssd内的应用程序通过PCIe进行通信,使用一种简单的、通用的、而不是以存储为中心的远程过程调用(RPC)机制。2016年,Gu等人。gydF4y2Ba7gydF4y2Ba探索了一种基于流的编程模型,在该模型中,可以从任务和连接任务的数据管道构建in-SSD应用程序。这些编程模型在可编程性方面提供了很大的灵活性,但距离“通用目的”还很远。存在这样一种风险:现有的大型应用程序可能仍然需要重大的重新设计来利用每个模型的功能,这需要大量的时间和精力。gydF4y2Ba

幸运的是,变革之风可以颠覆行业,并帮助应用程序开发人员以更好的方式探索SSD编程,如本文所示gydF4y2Ba图3gydF4y2Ba.SSD内部可用的处理能力越来越强大,具有丰富的计算和带宽资源。新兴的ssd包括带有多核处理器的软件可编程控制器、内置的硬件加速器(从处理器上卸载计算密集型任务)、多GB DRAM和数十个独立通道到底层存储介质,允许数GB/s的内部数据吞吐量。更有趣、更有用的是,ssd编程变得越来越容易,从专有架构和软件运行时转向运行在通用处理器(如ARM和RISC-V)上的商用操作系统(如Linux)的趋势正在发生。这种趋势使一般的应用程序开发人员能够充分利用现有的工具、库和专业知识,使他们能够专注于自己的核心能力,而不是花费大量的时间来适应低级的、嵌入式的开发过程。这还允许应用程序开发人员轻松地将已经运行在主机操作系统上的大型应用程序移植到设备上,只需对代码进行最小的更改。gydF4y2Ba

f3.jpggydF4y2Ba
图3。闪存行业的颠覆性趋势是丰富的资源和SSD内部可编程性的增加。gydF4y2Ba

总而言之,SSD可编程性的演变提供了一个独特的机会,将SSD作为云数据中心的一流可编程平台,使SSD内部的软硬件创新成为可能。此外,在包装的SSD之外,因为SSD内部的两个主要组件都是由多个厂商生产的,gydF4y2BadgydF4y2Ba可以想象,ssd可以定制设计,并与组件供应商合作提供gydF4y2BaegydF4y2Ba(就像今天的数据中心服务器是如何构建和部署的),甚至将一些设计回馈给社区(通过论坛,如开放计算项目,gydF4y2Bahttps://www.open-compute.orggydF4y2Ba).例如,随着开放通道SSD技术的引入,行业已经在朝着这个方向发展gydF4y2Ba2gydF4y2Ba,gydF4y2Ba8gydF4y2Ba,gydF4y2BafgydF4y2Ba它将大部分SSD固件功能从黑盒中转移到操作系统或用户空间中,让应用程序更好地控制设备。在一个叫做Denali的开源项目中gydF4y2BaggydF4y2Ba2018年,微软提出了一个方案,将SSD的单片组件分成两个不同的模块,一个标准化的部分处理存储介质,一个软件接口处理应用程序特定的任务(如垃圾收集和磨损均衡)。通过这种方式,SSD供应商可以为数据中心构建更简单的产品,并更快地将其交付市场,同时数据中心运营商可以对每个应用程序进行调优。gydF4y2Ba

基于组件的生态系统还为集成强大的异构编程元素(如现场可编程门阵列)提供了全新的机会。gydF4y2Ba13gydF4y2Ba,gydF4y2Ba21gydF4y2Ba和GPU,gydF4y2BahgydF4y2Ba以及其他新兴的非易失性存储器(如3D XPoint、ReRAM、STT-RAM和PCM),它们在DRAM延迟时提供持久存储,以提供高性能增益。这种方法提供了最大的灵活性,可以利用底层存储设备的进步来优化多个云应用程序的性能。在不久的将来,SSD内部的软硬件创新可以像过去的PC、网络硬件和GPU生态系统那样进行。这是一个重新思考数据中心架构的机会,有效地使用异构、节能的硬件,这是在低功耗下获得更高性能的前进方向。gydF4y2Ba

回到顶部gydF4y2Ba

价值主张gydF4y2Ba

在这里,我们总结了三个价值主张,展示了可编程存储的未来方向(参见gydF4y2Ba图4gydF4y2Ba):gydF4y2Ba

f4.jpggydF4y2Ba
图4。可编程SSD的价值主张。gydF4y2Ba

敏捷、灵活的存储接口(参见gydF4y2Ba图4一gydF4y2Ba).gydF4y2Ba完全可编程性将允许存储接口和功能集以云计算的速度发展,而无需说服标准化机构祝福它们,或说服设备制造商在下一代硬件路线图中实现它们,这两者通常都需要数年的延迟。一个更丰富、可定制的存储接口将允许应用程序开发人员专注于他们的应用程序,而不必处理存储约束、怪癖或独特性,从而提高开发人员的生产力。gydF4y2Ba

作为需要这样一个接口的一个例子,考虑当前SSD中如何处理流写入。因为SSD不能区分来自多个流的传入数据,它可以把来自不同流的数据打包到同一个闪存擦除块,可以一次从闪存擦除的最小单位。当流数据的一部分被删除时,它会留下带有无效数据孔的块。为了回收这些块,SSD内部的垃圾收集活动必须复制有效的数据,减慢设备的速度,增加写入放大,从而减少设备的寿命。gydF4y2Ba

如果应用程序开发人员能够控制SSD内部的软件,他们就可以更有效地处理流。例如,输入的写操作可以用流id标记,设备可以使用这个信息用来自同一流的数据填充一个块。当删除流中的数据时,可以回收整个数据块,而无需复制周围的数据。这种流感知已经被证明可以使设备的生命周期加倍,显著提高读性能。gydF4y2Ba14gydF4y2Ba在微软,SSD中支持多流的需求是在2014年发现的,但NVMe直到2017年底才加入该功能。gydF4y2Ba我gydF4y2Ba此外,在Microsoft数据中心进行大规模部署可能需要至少一年的时间,而且非常昂贵,因为必须购买新的ssd才能获得新版本的固件。为系统软件组件的更改等待五年是完全不符合当今计算机系统发展的速度的。一个可编程的存储平台将这种延迟减少到几个月,并允许快速迭代和改进特性,更不用说“调整”实现以匹配特定的用例的能力了。gydF4y2Ba

将计算移至接近数据的位置(参见gydF4y2Ba图4 bgydF4y2Ba).gydF4y2Ba从大数据中分析和收集情报的需求迫使传统的以计算为中心的模型向以数据为中心的模型转变。在许多大数据场景中,应用程序的性能和响应性(交互使用所要求的)不是由算术和逻辑指令的执行所决定的,而是由处理大量数据的需求和将这些数据移动到执行计算的位置的成本所决定的。在这种情况下,将计算移到更靠近数据的地方可以获得巨大的好处,比如提高吞吐量、降低延迟和减少能源使用。gydF4y2Ba

在SSD中运行的大数据分析可以以数十GB/秒的带宽(与DRAM带宽相媲美)访问存储的数据,并具有与访问原始非易失性内存相当的延迟。此外,由于SSD内部的处理器比主机-服务器CPU(如Intel Xeon)更节能,并且不需要通过网络将数据从存储设备一路拖到主机,这比处理数据更消耗能源,因此可以实现大量的能源节约。gydF4y2Ba

SSD内部的处理器显然没有主机处理器那么强大,但加上存储内硬件卸载引擎,可以在SSD内部竞争性地执行大量的数据处理任务。作为一个例子,考虑一下数据分析查询一般是如何处理的:当给出一个分析查询时,回答查询所需的压缩数据首先被加载到主机,解压缩,然后使用主机资源执行。这些基本的数据分析原语可以在SSD内部通过高内部带宽访问数据并将解压缩卸载到专用引擎来处理。查询处理管道的后续阶段(如过滤不必要的数据和执行聚合)可以在SSD内部执行,从而大大减少了网络流量,并为其他重要的任务节省了主机CPU/内存资源。此外,如果应用程序需要更高的数据速率,可以通过向系统添加更多的ssd来扩展性能和带宽。gydF4y2Ba

云中的安全计算(参见gydF4y2Ba图4 cgydF4y2Ba).gydF4y2Ba最近发生的与个人、私人信息(金融和其他方面)相关的安全泄露事件暴露了数据基础设施对黑客和攻击者的脆弱性。此外,一种名为“加密勒索软件”(encryption ransomware)的新型恶意软件通过秘密加密数据文件并索要赎金来攻击机器。gydF4y2Ba10gydF4y2Ba当企业首席信息官转移到云服务时,安全往往是他们最关心的问题之一,因为云服务提供商不愿为此类漏洞的影响承担全部责任。安全云的开发不仅是特性需求,而且是未来云计算模型及其作为一个行业的商业成功所必需的绝对基础能力。gydF4y2Ba

为了实现可信云的愿景,数据在休息时必须被加密,然而,这限制了在没有解密的情况下可以对加密数据执行的计算类型。为了方便对存储数据进行任意(合法)计算,需要在对其进行计算之前对其进行解密。这需要解密的明文数据(至少暂时)出现在易受安全攻击的数据中心基础设施的各个部分。应用程序开发人员需要一种方法来促进云上的安全计算,方法是在定义良好的、狭窄的、可信任的域中隔离,这些域可以保留对数据执行任意计算的能力。gydF4y2Ba

具有强大计算能力的ssd可以形成一个可信的域,对加密数据进行安全计算,利用其内部硬件加密引擎和安全的引导机制来实现这一目的。加密密钥可以存储在SSD中,如果需要,允许对存储的数据进行解密后进行任意计算,同时强制数据不能以明文形式离开设备。这允许在云中实现一种新的、灵活的、易于编程的、接近数据的可信硬件。与Intel Enclaves等目前提出的解决方案相比gydF4y2BajgydF4y2Ba对于主机服务器内存中受保护的、隔离的执行区域,此解决方案可以保护多个数量级的数据。gydF4y2Ba

回到顶部gydF4y2Ba

可编程的ssdgydF4y2Ba

虽然ssd上的存储处理概念早在6年前就提出了,gydF4y2Ba6gydF4y2BaSSD编程的试验受到了真实硬件的限制,在真实硬件上可以构建一个原型来演示什么是可能的。最近出现的可用于研究和商业目的的原型板为应用程序开发人员打开了新的机会,将想法从概念到行动。gydF4y2Ba

图5gydF4y2Ba展示了这种名为龙火牌(DFC)的原型设备,gydF4y2BakgydF4y2Ba,gydF4y2Ba3.gydF4y2Ba,gydF4y2Ba5gydF4y2Ba由戴尔EMC和恩智浦设计制造用于研究。卡功能强大,灵活,具有企业级的能力和资源。它包括主板和存储板。主板包含一个ARMv8处理器、16GB RAM和各种片上硬件加速器(如20Gbps压缩/解压、20Gbps sec加密和10Gbps RegEx引擎)。它还通过4个PCIe Gen3通道和4x10Gbps以太网提供NVMe连接,通过融合以太网(RoCE)协议支持远程动态内存访问(RDMA)。支持两种不同的存储板,通过2x4 PCIe Gen3通道连接gydF4y2Ba图5一个gydF4y2Ba)包括一个嵌入式存储控制器和四个内存插槽,其中闪存或其他形式的NVM可以安装;第二种(见gydF4y2Ba图5 bgydF4y2Ba)一个容纳两个M.2 ssd硬盘的适配器。gydF4y2Ba

f5.jpggydF4y2Ba
图5。为研究目的开发的可编程SSD原型。gydF4y2Ba

主板内的ARM SoC运行一个成熟的Ubuntu Linux,因此对主板的编程与对任何其他Linux设备的编程非常相似。例如,软件可以利用Linux容器技术(如Docker)在板内提供隔离的环境。为了创建运行在板上的应用程序,提供了一个软件开发工具包(SDK),其中包含GNU工具,用于为ARM构建应用程序和用户/内核模式库,以使用片上硬件加速器,允许高水平的可编程性。DFC也可以作为一个块设备,就像普通的ssd一样。为此,设备配备了运行在主板上的flash翻译层(FTL)。gydF4y2Ba

SSD行业也正朝着将计算功能引入SSD的方向发展,这样数据就可以在不离开原始存储位置的情况下进行处理。例如,2017年NGD系统gydF4y2BalgydF4y2Ba发布了一款名为Catalina2的固态硬盘gydF4y2Ba1gydF4y2Ba能够直接在设备上运行应用程序。Catalina2使用TLC 3D NAND flash(高达24TB),连接到板载ARM SoC,运行嵌入式Linux和纠错代码(ECC)和FTL模块。在主机服务器上,运行一个隧道代理(带有C/ c++库),通过NVMe协议与设备通信。另一个例子是ScaleFluxgydF4y2Ba米gydF4y2Ba使用Xilinx FPGA(结合tb级TLC 3D NAND闪存)对数据密集型应用程序进行数据计算。主机服务器运行一个软件模块,提供对设备的API访问,同时负责FTL和闪存管理功能。gydF4y2Ba

学术界和工业界正在努力建立一个引人注目的价值主张,通过演示应用场景的三个支柱概述gydF4y2Ba图4gydF4y2Ba.其中,我们最初的重点是探索将计算移向存储的好处和挑战(参见gydF4y2Ba图4 bgydF4y2Ba)在大数据分析的背景下,通过检查大量数据来发现隐藏的模式和见解。gydF4y2Ba

可编程SSD内的大数据分析。gydF4y2Ba为了演示我们的方法,我们实现了一个运行在DFC卡上的c++读取器(参见gydF4y2Ba图5gydF4y2Ba)用于Apache优化行柱状(ORC)文件。ORC文件格式是针对大数据分析工作负载的快速处理和高存储效率而设计的,在开源社区和行业中得到了广泛采用。运行在SSD内部的读取器读取大量的ORC流,解压缩它们,然后计算查询谓词,只找到必要的值。由于服务器开发环境ubuntu和通用ARM处理器,我们很容易移植ORC阅读器的参考实现gydF4y2BangydF4y2Ba到ARM SoC环境(只需要更改几行代码),并将库api合并到阅读器中,使之能够从flash读取数据,并将解压工作卸载到ARM SoC硬件加速器。gydF4y2Ba

图6gydF4y2Ba展示了通过运行在x86服务器主机上的c++ ORC阅读器和DFC卡内部分别扫描一个zlib压缩的单列整数数据集(10亿行)的初步带宽结果。gydF4y2BaogydF4y2Ba如图所示,与在主机服务器上运行相比,我们在设备内部实现了大约快5倍的扫描性能。考虑到这是单个设备的性能,我们应该能够通过增加并行使用的可编程ssd的数量来实现更好的性能改进。gydF4y2Ba

f6.jpggydF4y2Ba
图6。与运行在x86架构上的原生ORC阅读器相比,使用可编程SSD的初步结果显示,设备内zlib压缩的ORC文件的全扫描速度提高了大约5倍。gydF4y2Ba

除了以高吞吐率扫描、过滤和聚合大量数据之外,通过将部分计算直接卸载到存储器也已经得到了探索。2016年,Jo等人。gydF4y2Ba12gydF4y2Ba建立了一个原型,通过ARM和硬件模式匹配引擎的组合来执行非常早期的数据过滤,硬件模式匹配引擎位于可编程SSD中,配备了Gu等人描述的基于流的编程模型。gydF4y2Ba7gydF4y2Ba当给出查询时,查询规划器确定早期过滤是否有利于查询,并在估计的过滤率足够高的情况下选择一个候选表作为目标。然后对设备内的目标表执行早期过滤,然后只将过滤后的数据提取到主机进行剩余计算。事实证明,这种设备内部的早期过滤对于分析查询非常有效;当在MariaDB服务器上运行所有22个TPC-H查询时,Jo等人使用了基于商品NVMe SSD的可编程设备原型,实现了3.6倍的速度提升。gydF4y2Ba12gydF4y2Ba与具有相同SSD但没有可编程性的系统相比。gydF4y2Ba


可编程存储基板可以被视为一种超融合基础设施,存储、网络和计算紧密耦合,实现低延迟、高吞吐量访问,同时仍然提供可用性。gydF4y2Ba


另外,István等人研究了一种基于fpga的原型设计,用于数据库引擎存储节点内的近数据处理。gydF4y2Ba11gydF4y2Ba在2017年。在这个原型中,每个可以通过简单的键-值存储接口在网络上访问的存储节点都以行速率通过复制和特定于应用程序的处理(如谓词计算、子字符串匹配和解压缩)提供容错。gydF4y2Ba

回到顶部gydF4y2Ba

数据中心实现gydF4y2Ba

在云数据中心中运行的每个应用程序都有自己独特的需求,因此很难设计出计算、内存和存储之间适当平衡的服务器节点。为了应对这种复杂性,Han等人最近提出了一种物理解耦资源的方法。gydF4y2Ba9gydF4y2Ba2013年允许替换、升级或添加单个资源,而不是整个节点。随着快速互连技术(如InfiniBand、RDMA和RoCE)的可用性,在今天的大规模云数据中心中,将存储与计算分离已经很常见了,这大大降低了总体拥有成本,并提高了存储利用率的效率。然而,存储分解是一个挑战gydF4y2Ba15gydF4y2Ba由于存储介质的访问延迟正在向个位数微秒级发展gydF4y2BapgydF4y2Ba与磁盘的毫秒延迟相比,它比快速网络开销大得多。在未来几年内,随着具有极低延迟的新型非易失性内存的出现,网络延迟很可能会成为瓶颈。gydF4y2Ba

可以通过使用可编程存储来克服存储分离的这一挑战,使完全可编程的存储基板与主机基板解耦,如中所述gydF4y2Ba图7gydF4y2Ba.这种将存储视为可编程基板的观点使应用程序开发人员不仅可以通过在存储设备内部运行程序来利用非常低的存储介质访问延迟,而且还可以访问任何远程存储设备,而无需涉及设备物理连接的远程主机服务器(参见gydF4y2Ba图7gydF4y2Ba),在织物上使用NVMe (NVMe- of)gydF4y2Ba问gydF4y2BaRDMA。gydF4y2Ba

f7.jpggydF4y2Ba
图7。启用与主机基板解耦的可编程存储基板。gydF4y2Ba

有了可编程存储基板,我们可以考虑超越单设备块接口。例如,存储内部的微服务器可以公开更丰富的接口,比如分布式键值存储或分布式流。或者存储基础设施可以作为一个结构进行管理,而不是作为单个设备进行管理。可编程存储基板还可以提供高级数据中心功能(例如备份、数据快照、复制、重复数据删除和分级),这些功能通常在计算和存储分离的数据中心服务器环境中得到支持。这意味着可编程存储基板可以被视为一种超融合基础设施,存储、网络和计算紧密耦合,实现低延迟、高吞吐量访问,同时仍然提供可用性。gydF4y2Ba

回到顶部gydF4y2Ba

结论gydF4y2Ba

在本文中,我们展示了云数据中心中完全可编程的存储基板的愿景,允许应用程序开发人员以云计算的速度创新存储基础设施,就像软件应用程序/OS基础设施一样。ssd可编程性的发展为将其作为云数据中心的一流可编程平台提供了机会,使软硬件创新能够弥合应用程序/操作系统需求和存储能力/限制之间的差距。我们希望阐明软件定义存储的未来,并为设计、构建、部署和利用云数据中心的软件定义存储架构指明方向。gydF4y2Ba

回到顶部gydF4y2Ba

致谢gydF4y2Ba

这项工作得到了美国国家科学基金1629395奖的部分支持。gydF4y2Ba

回到顶部gydF4y2Ba

参考文献gydF4y2Ba

1.阿尔维斯,V.原位加工。闪存峰会(Santa Clara, CA, 8月810),2017。gydF4y2Ba

2.Bjørling, M., González, J., Bonnet, P. Lightnvm: Linux开放通道SSD子系统。在gydF4y2Ba第十五届USENIX文件和存储技术会议论文集gydF4y2Ba(加州圣克拉拉,3月27日2). USENIX协会,加州伯克利,2017,359374。gydF4y2Ba

3.邦纳,p,储存层级是怎么回事?在gydF4y2Ba8年会议记录gydF4y2BathgydF4y2Ba两年一次的创新数据系统研究会议gydF4y2Ba(加州查米纳德,1月811日),2017。gydF4y2Ba

4.康威尔,M.解剖固态驱动器。gydF4y2BaCommun。ACM 55gydF4y2Ba, 12(2012年12月),5963。gydF4y2Ba

5.Softflash:未来数据中心的可编程存储。在gydF4y2Ba20个会议的会议记录gydF4y2BathgydF4y2BaSNIA存储开发者大会gydF4y2Ba(加州圣克拉拉,9月1114日),2017。gydF4y2Ba

6.Do, J., Kee, y.s。,Patel, J.M., Park, C., Park, K., and DeWitt, D.J. Query processing on smart SSDs: Opportunities and challenges. InACM SIGMOD数据管理国际会议论文集gydF4y2Ba(纽约,纽约,2227年6月)ACM出版社,纽约,2013,12211230。gydF4y2Ba

7.Gu B, Yoon, A. S., Bae, D.-H。,Jo, I., Lee, J., Yoon, J., Kang, J.-U., Kwon, M., Yoon, C., Cho, S., et al. Biscuit: A framework for near data processing of big data workloads. InACM/IEEE会议论文集43gydF4y2Ba理查德·道金斯gydF4y2Ba计算机体系结构年度国际研讨会gydF4y2Ba(1822年6月,韩国首尔)。IEEE 2016, 153165。gydF4y2Ba

8.海迪,f,邪恶的快速存储和超越。在gydF4y2Ba七项会议的议事程序gydF4y2BathgydF4y2Ba非易失性存储器车间gydF4y2Ba(加州圣地亚哥,3月68日)。主题,2016年。gydF4y2Ba

9.Han, S., Egi, N., Panda, A., Ratnasamy, S., Shi, G.和Shenker, S.下一代数据中心资源分解的网络支持。在gydF4y2Ba12个gydF4y2BathgydF4y2Ba美国计算机学会网络热点专题研讨会gydF4y2Ba(College Park, MD, 2122年11月)。ACM出版社,纽约,2013,10。gydF4y2Ba

10.Huang, J., Xu, J., Xing, X., Liu, P.和Qureshi, M. K. Flashguard:利用内在的闪光特性来防御加密勒索软件。在gydF4y2Ba2017年ACM计算机与通信安全SIGSAC会议论文集gydF4y2Ba(11月30日,德克萨斯州达拉斯3). ACM出版社,纽约,2017,22312244。gydF4y2Ba

11.István, Z., Sidler, D.和Alonso, G. Caribou:智能分布式存储。在gydF4y2Ba10 . VLDB基金论文集gydF4y2Ba, 11(2017年8月),12021213。gydF4y2Ba

12.Jo,我,Bae, d - h。,Yoon, A.S., Kang, J.-U., Cho, S., Lee, D.D., and Jeong, J. YourSQL: A high-performance database system leveraging in storage computing. InVLDB基金论文集gydF4y2Ba9,12(2016年8月),924935。gydF4y2Ba

13.小君,S.-W。,Liu, M., Lee, S., Hicks, J., Ankcorn, J., King, M., Xu, S., et al. BlueDBM: An appliance for big data analytics. InACM/IEEE学报42gydF4y2BandgydF4y2Ba计算机体系结构年度国际研讨会gydF4y2Ba(波特兰,OR, 1317年6月)。IEEE 2015, 113。gydF4y2Ba

14.Kang J.-U。,Hyun, J., Maeng, H., and Cho, S. The multi-streamed solid-state drive. In6年的会议记录gydF4y2BathgydF4y2BaUSENIX存储和文件系统热点专题研讨会gydF4y2Ba(1718年6月,宾夕法尼亚州费城)。USENIX协会,加州伯克利,2014。gydF4y2Ba

15.Klimovic, A., Kozyrakis, C., Thereska, E., John, B., and Kumar, S.闪存分解。在gydF4y2Ba11年会议记录gydF4y2BathgydF4y2Ba欧洲计算机系统会议gydF4y2Ba(英国伦敦,1821年4月)。ACM出版社,纽约,2016,29。gydF4y2Ba

16.欧阳杰,林绍平,蒋绍平,侯志刚,王勇,王勇。SDF:面向网络规模互联网存储系统的软件定义flash。在gydF4y2Ba19年会议纪要gydF4y2BathgydF4y2Ba编程语言和操作系统体系结构支持国际会议gydF4y2Ba(盐湖城,犹他州,3月15日)。ACM出版社,纽约,2014,471484。gydF4y2Ba

17.帕克,K,基,y - s。,Patel, J.M., Do, J., Park, C., and Dewitt, D.J. Query processing on smart SSDs.数据工程学报gydF4y2Ba, 2(2014年6月),1926。gydF4y2Ba

18.Picoli, i.l., Pasco, cv, Jónsson, B.Þ。,Bouganim, L., and Bonnet, P. uFLIP-OC: Understanding flash I/O patterns on open-channel solid state drives. In8年会议记录gydF4y2BathgydF4y2Ba亚太系统研讨会gydF4y2Ba(9月23日,印度孟买)。ACM出版社,纽约,2017,20。gydF4y2Ba

19.Schroeder, B., Lagisetty, R.和Merchant, A.生产中的Flash可靠性:预期和意外。在gydF4y2Ba14年的会议记录gydF4y2BathgydF4y2BaUSENIX文件和存储技术会议gydF4y2Ba(加州圣克拉拉,2225年2月)。USENIX协会,加州伯克利,2016,6780。gydF4y2Ba

20.Seshadri, S., Gahagan, M., Bhaskaran, S., Bunker, T., De, A., Jin, Y., Liu, Y., and Swanson, S. Willow:用户可编程SSD。在gydF4y2Ba11年会议记录gydF4y2BathgydF4y2BaUSENIX操作系统设计与实现研讨会gydF4y2Ba(Broomfield, CO, 10月68日)。USENIX协会,加州伯克利,2014,6780。gydF4y2Ba

21.伍兹,L., István, Z.和阿隆索,G. Ibex:支持高级SQL卸载的智能存储引擎。在gydF4y2BaVLDB基金会议录gydF4y2Ba, 11(2014年7月),963974。gydF4y2Ba

回到顶部gydF4y2Ba

作者gydF4y2Ba

Jaeyoung做gydF4y2Ba(gydF4y2Bajaedo@microsoft.comgydF4y2Ba)是美国西澳雷德蒙德微软研究院的研究员。他正在领导一个名为SoftFlash的项目,该项目旨在在云数据中心使用可编程ssd。gydF4y2Ba

Sudipta森古普塔gydF4y2Ba(gydF4y2Basudipta@amazon.comgydF4y2Ba)正在美国华盛顿州西雅图的亚马逊AWS领导人工智能/深度学习的新举措;这篇文章中报道的研究是他在美国华盛顿州雷德蒙德的微软研究院完成的。gydF4y2Ba

史蒂文SwansongydF4y2Ba(gydF4y2Baswanson@cs.ucsd.edugydF4y2Ba)是美国加州大学圣地亚哥分校计算机科学与工程系的教授。gydF4y2Ba

回到顶部gydF4y2Ba

脚注gydF4y2Ba

一个。gydF4y2Bahttps://ibm.co/2XNvHPkgydF4y2Ba

b.通过PCI Express (PCI Express)总线访问非易失性内存的设备接口。gydF4y2Ba

c.普通PCIe SSD的实际顺序读带宽。gydF4y2Ba

d. flash ssd中每种组件都有几家厂商生产。例如:Marvell、PMC(被Microsemi收购)、Sandforce(被希捷收购)、Indilinx(被OCZ收购)的flash控制器、三星、东芝、美光的flash存储器。gydF4y2Ba

e.许多大型数据中心操作员(如谷歌gydF4y2Ba19gydF4y2Ba和百度gydF4y2Ba16gydF4y2Ba)构建他们自己的ssd盘,这些ssd盘完全针对他们自己的应用需求进行优化。gydF4y2Ba

f. Linux kernel 4.4版本中引入了Linux Open-Channel SSD子系统。gydF4y2Ba

g。gydF4y2Bahttps://bit.ly/2GCuIumgydF4y2Ba

h。gydF4y2Bahttps://bit.ly/2L8LfM4gydF4y2Ba

i.注意到SCSI/SAS的多流技术在2015年5月20日的T10中被标准化。gydF4y2Ba

j。gydF4y2Bahttps://software.intel.com/en-us/sgxgydF4y2Ba

k。gydF4y2Bahttps://github.com/DFC-OpenSourcegydF4y2Ba

lgydF4y2Bahttp://www.ngdsystems.comgydF4y2Ba

m。gydF4y2Bahttp://www.scaleflux.comgydF4y2Ba

n。gydF4y2Bahttps://github.com/apache/orcgydF4y2Ba

o.注意,为了有效地比较每种情况下的数据处理能力,在x86和ARM+解压缩加速器的设备中,每个处理器只使用一个单核。gydF4y2Ba

p.例如,3D XPoint的访问时延为5~10 |isec, NVMe SSD和disk的访问时延分别为~50100 |isec和10 msec。gydF4y2Ba8gydF4y2Ba

q.一种为非易失性存储器设计的技术规范,用于通过网络在主机和目标系统/设备之间传输数据。大约90%的NVMe- of协议与NVMe协议是相同的。gydF4y2Ba


版权由作者/所有者持有。授权给ACM的出版权。gydF4y2Ba
请求发布的权限gydF4y2Bapermissions@acm.orggydF4y2Ba

数字图书馆是由计算机协会出版的。版权所有©2019 ACM股份有限公司gydF4y2Ba


没有发现记录gydF4y2Ba

Baidu
map