大规模存储的未来——内存云

计算机系统中最快的存储方式是传统上主要用作内存的RAM。由于硬盘的访问性能多年来有恶化的趋势,而RAM的成本不断降低,近年来,有很多研究者都在探索如何用内存取代硬盘。

早在1980年代,David DeWitt等和Garcia-Molina等就发表过主存数据库方面的论文。Steven Robbins的文章指出,图灵奖得主Jim Gray更明确提出了“内存将成为硬盘,硬盘将成为磁带”的说法(出自2006年Tim Bray一篇讨论网格计算的博客,2003年的访谈中他已经表达了同样的意思)。IMDG(内存数据网格)曾经是一种非常流行的概念。在实践中,Google和Yahoo等搜索引擎已经完全将索引放在DRAM中,Google甚至把互联网中所有网页的快照都保存在内存里。memcached和BigTable也是利用内存作为重要存储介质的实际案例。2008年Dare Obsanjo在分析Twitter的架构时也看到,类似的新型应用的最大负担是硬盘I/O,因此会倾向于将随机操作都放到RAM里,只将顺序操作留给硬盘。

Tcl/Tk的创始人、美国工程院院士、ACM Fellow John Ousterhout 2008年离开工业界到斯坦福大学任教,在Facebook、Mellanox、NEC、NetApp、SAP的支持下,领导一个团队从事RAMCloud——内存云方面的研究,更是将这一趋势推到了极致。顾名思义,RAMCloud就是这样一种新型数据中心存储系统,它是由成千上万台普通服务器的主存所组成的大规模系统,任何时候、所有信息都存储在这些快速的DRAM(动态随机访问存储器,即俗称的内存)中,内存取代了传统系统中的硬盘,而硬盘只作为备份使用。

2009年底Ousterhout团队曾经在SIGOPS Operating Systems Review发表了论文“The Case for RAMCloud”,引起了广泛关注。最新出版的Communications of ACM 2011年8月刊发表了Ousterhout与他的团队合作撰写的同名论文,更加全面和完整地阐述了内存云的理论与实践。

文章指出,在过去四十年,计算机系统的主要存储方式是硬盘,文件系统和关系型数据库都是针对硬盘发展起来的。但是,虽然硬盘的容量提高很快(自1980年代中期以来提高超过1000倍),但性能相比之下却一直难如人意,传输速率仅提高50倍,延迟更是只提高了2倍。如果按容量/带宽(Jim Gray's Rule)来衡量,硬盘的访问延迟实际上急剧恶化了,如下图(本文中图均来自CACM论文)。

与此同时,互联网的迅猛发展,使软件的架构也发生了巨大变化。如下图所示,与传统应用数据和计算、应用逻辑都在一台计算机上不同,Web应用架构往往采用计算与存储分离的方式,在数据中心中有专门负责应用的业务逻辑、前端呈现的应用服务器,另外还有专门的存储服务器。其中应用服务器是无状态的,只存储当前浏览器请求的状态。这种分离和无状态的方式使系统能够很好地扩展到成百上千台服务器,满足动辄数百万用户的访问需求。但是,这种架构也使数据访问的延迟问题加剧了——大型网站如Facebook或Amazon为了生成一个HTML页面,需要发出一两百次内部请求,访问多次硬盘。当服务器增加了4-5个数量级后,应用程序的复杂性也大大增加,软件开发难度和工作量都激增。

于是,硬盘访问速度成为目前计算机系统发展的主要瓶颈。

为了解决数据访问延迟问题,研发人员和研究者们提出了各种解决方案:用memcached等缓存(Cache),数据库的分区,更多地用闪存替代硬盘,SSD,采用MapReduce和Hadoop等异步作业调度,NoSQL,分布式文件系统等等。

而Ousterhout团队则提出了一种新的解决方案——RAMCloud(内存云),通过大规模普通服务器的内存集群,将在线数据的主要存储中心从硬盘迁移到DRAM上,而硬盘只作为备份/归档之用。这种内存云可以同时实现大规模(100~1000 TB)和低延迟(同一数据中心应用程序访问少量内存云数据只需5~10ms,比目前系统快100~1000倍)。

RAMCloud概述

论文中指出,RAMCloud最适合的场景是已经将服务器分为应用服务器(主要实现生成网页和执行业务规则等应用逻辑)和存储服务器(为应用服务器提供长期共享存储)的数据中心。这些数据中心一般支持许多应用,有的很小,只使用一台服务器的一部分能力,有的很大,要用到数千台专用应用和存储服务器。

RAMCloud与其他存储系统有两点不同:

所有信息任何时候都保存在DRAM中,不是memcached那样的缓存,也不使用闪存那样的I/O设备; 必须能够自动伸缩到数千台存储服务器,而存储服务器的数量对于应用而言是透明的,在开发人员看来,好像就是一个存储系统。

而且,内存云中保存的信息必须和硬盘一样持久,单个存储服务器的故障不能造成数据丢失和哪怕几秒钟的服务不可用。

RAMCloud将所有数据存放在DRAM中,性能可以达到比目前最高性能的硬盘存储系统还要高100~1000倍。在访问延迟方面,RAMCloud方案中运行在应用服务器中的一个进程从同一数据中心的存储服务器中通过网络读取数百字节数据只需5~10μs,而目前实际系统一般要花费0.5~10ms,具体取决于数据是在服务器内存缓存中,还是硬盘中。而且,一台多核存储服务器每秒可以服务至少100万次小读取请求。而硬盘系统中同样的机器每秒只能服务1000~10000次请求。

RAMCloud的实用性

全面采用内存作为主存储介质,一个常见的问题当然是成本。论文中对此作出了说明。下表中列出了一个RAMCloud配置,2000台服务器,每台服务器配置24GB的DRAM,整个内存云的容量可以达到48TB,按2010年的价格计算,平均每GB成本是65美元。通过增加服务器数量,总容量可以高达数百TB。而到2020年,随着DRAM技术的不断完善,价格不断降低,内存云容量可能达到1~10PB,而每GB成本仅需6美元。

RAMCloud已经可以用于许多实际应用。下表估计了一个大型的网络零售商和大型机票订票系统如果采用RAMCloud的成本,在几万到几十万美元之间。而截止2009年8月,Facebook所有非图像数据大约有260TB,这可能是目前RAMCloud实际应用的上限。内存云目前还无法用来存储视频、照片、歌曲等数据,但情况在几年之内有望很快改变。

与其他方案的比较

目前为了解决大规模互联网应用系统的数据访问延迟瓶颈,已经提出了很多方案,但这些方案各有各的问题。论文中对此进行了概述。

1.MapReduce

MapReduce将应用组织成多个并行步骤,数据分成多个大块顺序读取,有效地解决了许多大规模问题,因此近年来变得非常流行。但是MapReduce难以应用于必须随机访问数据的应用。事实上,Google除MapReduce之外还有一种专门用于图处理的架构,称为Pregel。另外透露一下,Pregel项目的创始人G.Malewicz将出席今年的Hadoop in China大会。

而RAMCloud由于同时具备可伸缩性和低延迟,基本上没有这样的局限。相反,大规模集体协作型的应用、统计语言翻译这样需要遍历图模型的应用很可能是内存云的最佳用武之地。

2.NoSQL

NoSQL的兴起主要是因为互联网站达到了前所未有的规模,用常规关系型数据库无法应对。但各种NoSQL方案总体上都无法达到关系型数据库的那种通用性,而且,它们仍然受硬盘存储性能的限制。

RAMCloud的目的是提供可伸缩性远远超过已有方案的统一存储系统,大大简化开发,不仅适于新应用,也可以为已有应用进行扩展,甚至无需重组应用代码。

3.Caching

在理想情况下,Caching(缓存)可以为系统带来DRAM级的读写性能。但是,缓存的问题在于,未命中的数据仍然保存在硬盘上,因此很小的失效率也会带来很大的性能损失。而且,越来越多应用生成的数据之间有更复杂的联系(比如Facebook、微博中朋友或者关注关系),很难局部化,造成Cache越来越大。以Facebook为例,2009年8月时近25%的所有在线数据保存在memcached服务器中,如果加上数据库服务器中的缓存,实际上已经有近75%的数据在内存中。

显然,RAMCloud与缓存相比只需要增加少量成本(Facebook的例子里增加四分之一内存),却能避免访问模式和局部性问题。

4. 闪存

RAMCloud其实可以用闪存搭建,成本和能耗更低。但延迟和吞吐量上与DRAM仍有差距。即使是成本方面,高查询率和小数据集的情况下,DRAM是成本最低的;低查询率和大数据集的情况下,硬盘成本最低;而闪存处于中间。

未来闪存在延迟上可能赶上DRAM,相变内存等新技术也可能比DRAM更有优势,但现在基于DRAM研发的好处是没有不确定性,现有方案(复制机制、群集管理和延迟的系统方法)对未来其他技术仍然可以沿用。

RAMCloud面临的挑战

低延迟RPC:大多数目前的网络设计都是牺牲延迟保吞吐量。虽然已经有Infiniband、Myrinet、Arista 7100S等高速网络设备,但普通数据中心还是基于以太网/TCP/IP的,要达到5~10μs延迟(Ousterhout最初设想RPC能达到1μs,看来有相当难度),必须解决软硬件的诸多问题。

持久性和可用性:DRAM属于易失性存储,要达到至少和硬盘相当的持久性和可用性当然至关重要。一台服务器的故障、数据中心的系统性断电等都不能导致数据丢失和服务中断。容易想到的解决方法是在不同服务器的DRAM里保存多个副本,但成本太高,而且数据中心全部断电的话,数据仍然会丢失。备份在服务器上如何呢?但是写操作时如果要同步更新硬盘,延迟就太大,丧失了内存云的优势。为此,Ousterhout等提出了“缓冲日志”(buffered logging)的思路。其原理如下图所示。

群集管理:但数据表很大的时候,RAMCloud软件必须能够透明地在多个服务器上进行自动分区,且不影响运行中的应用。为保证系统的吞吐量,尽量减少复制,只在维护数据持久性和可用性必需时才进行复制。

多租户:为支持云计算的多租户模式,内存云需要支持各种规模的应用,并提供相应的计费方式。而且,需要为不同用户提供访问控制和安全机制。另外,高负荷的应用不能影响其他应用的性能。

数据模型:关系型数据库与生俱来的开销较大,与内存云的低延迟不兼容。内存云可能需要具有ACID特性的K-V存储。

并发、事务与一致性:内存云应该提供何种程度的事务性,这是一个问题。但内存云的高速更新,可以明显缓解事务冲突,而且能在较大规模提供原子性和一致性。

RAMCloud的缺点

RAMCloud最明显的缺陷,是按bit计算成本和能耗都比较高,比硬盘系统要差50~100倍,比闪存系统要差5~10倍。而且所占数据中心的面积也更大。如果你的系统成本要求高,而且对访问性能要求不高,那么RAMCloud不是理想方案。但是,按操作次数计算的话,RAMCloud的成本和能耗却要远远好于其他类型。对于高吞吐量的系统,RAMCloud不仅能提供高性能,还能提供高能效。

RAMCloud的另一个缺点,是只能在一个数据中心中提供高性能。对于跨多数据中心的应用,更新延迟是由数据中心之间的距离决定的,因此RAMCloud在写操作上没有优势,但对跨数据中心的读操作仍然能提供更低的延迟。

RAMCloud的潜在影响

显然,内存云如果能够得到大量实际运用,将对计算机界产生广泛影响。

首先,将催生新的数据密集型应用,比如涉及大规模图算法的应用。解决了目前最影响开发人员生产力的许多可伸缩性问题,从而简化了大型Web应用的开发。1 000~10 000台存储服务器组成的RAMCloud能够支持成千上万的应用服务器以109–1010次请求/秒的总速度访问1014~1015B (100TB~1PB)的数据集。而且内存云的存储模型是平的,任何对象无论放在哪里都可以高速访问。 其次,提供云计算和其他数据中心应用所需的可伸缩存储基础,将加速云计算的采纳进程。 第三,内存云要求极低的延迟,将对原来主要考虑带宽的网络基础架构包括协议、设备都产生显著影响。 第四,可能影响数据中心的设计与管理。运维经理要更多地从低延迟的角度思考问题,内存云将推动新型存储设备的采用。 最后,会激发服务器架构新方法涌现,包括新的电源管理技术(电池备份、超级电容),体现速度、内存容量、能耗新平衡的服务器设计,服务器集群的自动管理等。

对内存云的评论

基于内存的各种架构其实很多,Highscability的文章曾经提到思科的UCS、Oracle的Coherence、IBM的WebSphere eXtreme Scale、Terracota、GigaSpace等等,最近可能还要加上SAP宣传非常多的内存计算。但是像RAMCloud这样完全要将硬盘降格为备份设备的激进项目,是否会得到实际应用乃至成为主流,持怀疑态度的大有人在。

Hacker News上讨论中有人直言这是纯粹的忽悠。Infoq今年1月的一篇文章中收集了两个反对的声音。其中,在Red Hat负责云文件系统开发的Jeff Darcy写了一篇批评IMDG的博客,他认为所谓基于内存的架构与目前已经成熟的缓存系统本质其实是一回事,前者在容量上肯定还是会遇到限制,这时仍然需要依赖硬盘,而且采用的是事后补救的方式,那何必不采用已经经过实践检验、算法非常成熟的缓存系统呢?纽约大学布法罗分校的副教授Murat Demirbas则指出,论文中对成本的分析过于乐观。由于硬盘的价格下降更快,内存的成本劣势长远看仍然非常明显——当硬盘每GB成本只需要0.07美元的时候,谁会用60美元/G的内存呢?

Amazon的James Hamilton2009年底第二次听Ousterhout的相关讲座,在博客中做了详细笔记,称赞讲座“发人深省”,值得再听一遍。不过信奉“没有放之四海而皆准”的他也对Ousterhout预言关系型数据库将消失、未来数据全部将在内存中的说法不敢苟同。

曾经任职Amazon和微软的资深架构师Greg Linden评论说,内存数据库的概念并不新,但此前他认为仅适合一些特殊场合,没想到Ousterhout会预言内存云未来成为主流。

事实上,RAMCloud最初的论文版本发表到本月,已有一年多的时间,Ousterhout的主要观点并无变化,相反,RAMCloud项目的进展很快。值得注意的是,这篇CACM论文的审稿人里有Google MapReduce等项目的主要开发者Jeff Dean,有微软研究院的资深研究院James Larus,Veritas创始人Jeff Rothschild,计算机体系结构权威David Patterson等。在RAMCloud项目网站里还能看到Jeff Dean等人对项目所作的设计评审。

回顾历史,电力系统在大联网之后,原来各个工厂和居民区的自备电厂、自有小发电机等渐渐消失,全社会除了紧急备用电源之外,基本全部使用大型电网的供电。而电网公司也由此发展了之前不可想象的一系列高度专门化的大规模发电和输电技术。我们预测,随着云计算进入主流,计算、网络和存储由少数云计算服务商提供,也会发展出一系列与今天非常不同的高度专门化的技术。今天Google、Facebook等大型互联网公司的特殊技术可以说这种趋势的初露端倪。所以,一切皆有可能,不能用以前线性的观点来看,内存云也是如此。

时间: 2024-10-30 11:32:46

大规模存储的未来——内存云的相关文章

大规模存储的未来——内存云?

Tcl/Tk的创始人.美国工程院院士.ACM Fellow John Ousterhout目前在斯坦福大学任教,他近年来的主要研究项目是RAMCloud--内存云.顾名思义,RAMCloud就是这样一种新型数据中心存储系统,它是由成千上万台普通服务器的主存所组成的大规模系统,任何时候,所有信息都存储在这些快速的DRAM(动态随机访问存储器,即俗称的内存)中,内存取代了传统系统中的硬盘,硬盘只作为备份使用. 内存云由此能同时实现大规模 (100-1000 TB) 和低延迟(同一数据中心应用程序访问

内存云正一步步笼罩存储市场

近年来,Tcl/Tk的创始人.美国工程院院士.ACM Fellow John Ousterhout在斯坦福大学任教时,研究了一个庞大的项目RAMCloud--内存云,一种新型数据中心存储系统,它由成千上万台普通服务器的主存所组成的大规模系统,无论什么时候,所有信息都存储在这些快速的DRAM(动态随机访问存储器,即俗称的内存)中,内存取代了传统系统中的硬盘,银盘被取而代之之后,就只能作为备份使用. 内存云不仅是简化大型Web应用的开发,更是将催生新的数据密集型应用.它能同时实现大规模 (100-1

业界观察:EMC摸索云存储的未来方向

本文讲的是业界观察:EMC摸索云存储的未来方向,[IT168 资讯]"现在,我们正处在一个重大的变革期,整个IT界正在从以设备/应用程序为中心转向以信息为中心,而这一转变还将引发一系列的变革,并影响到技术和业务模式两个层面."在EMC中国研发中心举办的首个"创新日"上,EMC中国研发中心总架构师任翔宇表示.任翔宇认为,云存储的最大特点是海量.高性能/高访问量以及低成本,而其带来的最大变革是,提供商逐渐从销售工具转向根据工具的实际使用收费,也就是从卖产品转向了卖服务.

部署未来就绪云存储战略的六大举措

     不断增长的存储需求促使许多企业转向云计算.云计算是新现实,但确保云存储在安全,性能和可扩展性方面得到正确构建也至关重要. 我们可以将其归咎于复制数据管理不善,合规性要求或物联网要求,但数据存储容量正在呈指数级增长,并且没有减弱的迹象.管理有限资源里的巨大的存储需求是许多企业所面临的最大挑战.为了减轻负担,许多企业已经转向云计算. 分析机构451 Research的研究调查显示了企业正在增大它们外部存储空间的范围. 647位受访企业技术与IT专业人士中有35%表示正在考虑立即购买云存储.

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

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

云存储的未来在于服务

7月百度网盘以及其低廉.几近免费的价格提供100G空间的续费功能.8月,金山云推出100G的永久免费体验计划:两天后,360云盘又推出PC端+移动端一共送360G永久免费空间:而坐拥1亿用户的微云虽然至今不动声色,但其所有用户相册存储容量无上限这一产品特性,也让腾讯方面在容量大战面前显得很从容. 用容量数字圈用户 这次云存储产品的火热竞争态势源自空间容量的数字大小比拼.作为网络存储产品,空间容量确实是一个很重要的参数,也是一个很吸引用户的关注点.迄今为止,这类产品的收费方式也主要是用户购买空间容

Ceph分布式存储学习指南1.3 Ceph和存储的未来

1.3 Ceph和存储的未来 企业存储需求最近几年暴发性增长.研究表明,大企业的数据年增长率为40%-60%,而且许多公司的数据占用空间每年翻一番.IDC分析师估计2000年全世界数据量大约是54.4EB.2007年这个数字达到295EB,而到2014年年底,预计会达到8591EB. 所有存储系统的要求都是统一.分布式.可靠.高性能,最重要的是,能够大规模扩展至艾字节,甚至更高级别.Ceph存储系统是一个真正的解决方案,它可以应对这个星球上爆炸式增长的数据.Ceph能够闪电式兴起的原因在于它活跃

新型存储技术助力私有云性能

共享是伟大的,但是共享是否能够提高私有云存储服务性能呢?可考虑使用新型固态硬盘(SSD)和网络选项来帮助您获得您所需的速度. 私有云可提供一个集敏捷性.灵活性和运营开销于一体的定价模式,但是其性能,尤其是与存储服务相关的性能是一大挑战.当用户在管理私有云时,管理员们需要经常地了解底层存储资源的使用状况,以避免出现存储资源短缺的情况. 企业中的所有用户都在共享使用他们的私有云存储服务.这是可能的,因为私有云是网络存储,同时根据数据中心的配置,私有云可能距离服务器实例并不遥远.网络和协议的延迟将降低

49元1G内存云主机,助煤老板跑马圈地

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 近年来,随着云计算.云主机服务等云产业的兴起,全国各地都纷纷掀起了"云产业"的风潮,各省各市也纷纷宣布打造"云基地".而作为煤炭大省的山西也不甘落后,厂家.商家甚至政府都不惜投入巨资,俨然一副煤老板和煤炭大省一夜之间要变为"云老板"和科技大省的样子. 而据云技术业内人士表示,建立&q