科技网

当前位置: 首页 >电商

3谈存储

来源: 作者: 2018-09-21 09:45:16

3. 谈存储

从人类有语言之日起,吟游诗人用歌谣颂扬着传说;文字出现之后,我们使用甲骨文与纸张记载着历史;每一次新材料的出现,人类总试图将其与存储联系在一起,各类磁介质、硅介质,直至坚硬的蓝宝石介质。至今,存储世界已历经五千余年。在IT基础设施的三大领域,计算、络与存储中,如果说计算在比拼着智慧,络在比拼着记忆力,存储就是在比拼着一份执着。

存储对于稳定性的要求压倒了一切。在一个存储系统的所有Feature中,稳定性是1,剩余的所有特性是其后的0。如果一个存储系统谈不上稳定,那么其身后的所有特性都将无用武之地,一个存储系统所追求的首要目标,永远不是速度、带宽、延时与IOPS。而证明稳定性的方法无他,唯有时间的磨练。这决定了进入存储行业就是参加了一场没有终点的马拉松赛跑。

在IT基础设施的三大领域中,存储行业之执迷守旧,刻骨铭心。计算与络的世界虽然精彩,但是人类文明的传承,最终还是依靠那几页纸。始皇帝的焚书坑儒,使华夏殷商前的文明成为传说;亚历山大的几次大火,让古埃及文化在人类历史上的展现仅剩下了几座金字塔。人类已无法再次忍受数据的大规模丢失。

这种无法忍受对存储系统的稳定性提出了苛刻的需求,也使得证明过自己存在价值的存储设备极难被淘汰。纸张依然在使用中,至今尚无退出历史舞台的征兆。也许是因为杰文斯效应作梗,在全世界大力提倡并实施无纸化的今天,纸张的使用有增无减。单纯从稳定性和数据保存的持久性上看,当代的多数存储系统还远不如墨水与纸张。

曾多次被预言很快退出历史舞台的磁带,依然活跃在今天的云归档基础设施中,NAND Flash与最新的存储类内存SCM (Storage-Class Memory)也没有终结硬盘。存储行业是最苛刻同时也是最宽容的领域,进入门槛极高也极难被淘汰。移动互联尝试过的各类无孔不入的颠覆,并没有对存储这个古老的行业带来质的冲击。近期出现的SD存储远没有确立自己最后的存在。

在移动互联爆发之前,世间没有任何IT基础设施能够满足其对于超级高并发的需求。这使得以Google、Amazon、FaceBook、包括中国的TAB在内的移动互联厂商,为满足自身IT基础设施需求,所进行的试错与开发过程中,创建了一套计算、络与存储混合的IT基础设施框架。Wikibon将这个正在使用的,基于移动互联的IT基础框架,统称之为ServerSAN。

ServerSAN是近期软件定义存储各种概念的合集,具备计算、络、存储与服务器虚拟化功能,几乎包罗万象。ServerSAN最重要的两个子集是虚拟化计算与分布式存储层。在云计算时代,传统的IOE架构很难适应弹性扩展要求与高并发而举步维艰。这使得世界上几乎每一个角落的移动互联厂商都在去IOE,并不限于中国政府。Wikibon对ServerSAN的发展寄予厚望,在2016年提出了一个激进的路线图。

图1?5 2016年Wikibon对ServerSAN的预测[21]

Wikibon坚信Server SAN在未来将逐步取代传统的存储设备,包括SAN、NAS与DAS,但是也将E3S(Enterprise Server SAN Storage)的年复合增长率CAGR(Compound Annual Growth Rate)从2015年预测的44.2%剧烈的下调至22%[22]。显然,这个增长还是一个非常激进的数字,也很显然Wikibon的评估充满变数。

图1?6 2014年Wikibon对ServerSAN的预测[22]

硅工业的事实停滞影响了整个IT基础设施行业,也使得与这个行业相关的多数产业很难获得两位数以上的CAGR,在这个大背景下,整个IT基础设备进行的依然还是此消彼长的零和游戏。ServerSAN与之前出现的HCI (Hyper ConvergenceInfrastructure)是计算,是络,还是存储,还是三者皆非?ServerSAN自身到底是什么?

Wikibon从未给出过Server SAN的精确定义,这种不精确为Wikibon带来的最大优点是,其观点很难出现错误。Wikibon之外的组织也没有给出过Server SAN的精准定义。相比较而言,只有H3S (Hyperscale Server SAN Storage)的定义相对较为清晰,Google、Facebook、Amazon、TAB这些移动互联厂商正在使用的,自产自销的IT基础架构即为H3S。

剩余的存储本质可以归为一类,无论是传统的企业级存储或者是E3S。E3S与传统的企业级存储可以在文字游戏中转化。图1?5中的各种数据也许很容易得出,首先计算存储直至2027年的CAGR,并以此获得存储市场的总容量,之后计算移动互联厂商的自产自销,剩余的两部分使用文字上的技巧进行份额划分即可。

E3S的定义事实上可有可无。本质上,ServerSAN所面临的问题是,移动互联所使用的H3S架构如何真正进入一个企业内部。对于多数企业,不存在移动互联厂商追求的超高并发度和高弹性扩展需求,也不需要规模如此庞大的IT基础设施;H3S的维护者是昂贵的研发工程师,而不是普通的获得几个认证即可从业的IT工作人员。

ServerSAN架构需要在企业中找到适合的应用,找到用户真正使用ServerSAN而抛弃传统存储架构的原因。如果仅是因为传统存储厂商不情愿使用Scale Up方法向上扩展存储,而导致传统存储的价格居高不下,我并不认为ServerSAN找到了自己的生存空间。诸多ServerSAN厂商提供的产品,就其技术上的合理性而言,是否真正超过了双控盘阵列这个历尽沧桑的设计。

我们无法忽视绝大多数移动互联厂商使用的H3C架构,依然停留在二层交换机连接着的廉价PC机的组成结构中。在移动互联快速演进的时代,这些H3C架构主要在为移动互联的应用,更为准确的说是超高并发访问服务。Google、Amazon、Facebook与TAB这些厂商从解决共同面临的超高并发访问处入手,并在解决各自面临的不同问题的过程中,迅速差异化。至今,现有移动互联IT基础设施的H3S架构,最大的特点是任意两家的H3S架构间并无相近之处。

移动互联厂商所进行的大规模工程化而后逐步形成的H3S,设计之初,只为解决自身应用的一个或者几个问题,所构建的基础设施,从全局视觉下观看,遍体鳞伤。事实上,几乎任何一个存活超过十年的大型IT基础设施,都是遍体鳞伤,在无限追求完美的设计者心中,都有强烈地将其推倒重来的冲动。也许这些H3S在等待着下一次轮回,直到世界尽头。万生终有一死。

已然如此的H3S架构,直接将其通用化,并大规模替换现今企业正在使用的IT系统的前景,没有Wikibon想象中乐观。如果准备进入企业市场的超融合架构,依然基于H3S使用的二层交换机组合大量的廉价PC的设计理念,不管是披着HCI或是ServerSAN的外衣,依然会面对绝大多数企业没有大规模并发、高度弹性扩展的业务需求的这些事实。

即便如此,国内外还有许多初创公司涉足ServerSAN这个领域。很多打着ServerSAN旗号的产品,仅是从Github下载若干开源软件,之后进行简单的排列组合,最后再加上一个管理界面而已。许多准备进军这个广阔的企业级存储市场的初创公司,真正的技术含量甚至只有一个华丽的用户界面。

H3S和E3S在架构上的合理,可能远不及几十年前的Supercomputer。在多数Supercomputer系统中,处理器与I/O设备独立组成两张络,之后这两张络采用某种拓扑结构进行连接,分离计算节点与I/O节点,以便于分离计算与I/O,获得最短的平均访问延迟与最大的访问带宽。但是这种结构在十几年前,在移动互联呈爆发式增长的前夜,没有被主流互联厂商接受。

在那个年代,没有太多的移动互联厂商真正关心所采用IT基础设施的绝对合理性,而是重点关注着业务的高速推进,和与其密切相关的超高并发访问。移动互联厂商当时所追求的是用最快的速度,不是最完美的IT基础设施解决所面临的问题。有些互联厂商尝试过IBM在银行系统中使用的Mainframe,Mainframe的居高不下的价格并不是被他们弃用的最主要的原因。

搭建IT基础设施的首要目的是为应用服务,Mainframe与SQL数据库的组合没有解决移动互联应用对高并发访问的需求,迟钝的售后无法满足高速运转的互联应用的开发步伐。这使得移动互联厂商决定搭建一套属于自己的全新的系统。对未来的茫然,使得他们务实地选择了,最易于重构系统也是最易获得的,基于以太与PC机的系统。

几乎所有互联应用对数据库都有着重度的依赖。传统的SQL数据库不仅价格昂贵,可扩展性差,而且无法满足移动互联应用所要求的高并发,随着移动互联的蓬勃发展,这类数据库迅速的在移动互联应用中沦为配角。

NoSQL (Non SQL, Not Relational or Not Only SQL)数据库应运而生,这个新型数据库重创了SQL数据库,也重创了SQL数据库之后的传统集中式存储。这些NoSQL的一个显著特征,就是相互间没有什么绝对的共性。两个都被称为NoSQL的数据库,其相互间的差异远大于两个都被称之为SQL的数据库。

在移动互联时代,各类业务快速推进,且基于对未来不确定性的考虑,使得NoSQL数据库的每次发展更似一次试错。NoSQL数据库对于存储系统的使用更加务实,可以直接使用内存,也可以直接使用本地硬盘。NoSQL数据库的设计初衷不是为了排斥集中式存储,只是Cassandra、HBase和MongoDB的设计者可能没有购买盘阵列的资金,所以采用了RAM、硬盘、SSD、PC机这类最容易获得的硬件资源,以搭建底层的存储系统。这使得集中式存储在无意中被冷落。

为了保证数据存储的可靠性,NoSQL数据库多采用了直接且粗暴的做法,最常用的手段是使用DHT (DistributedHash Table)算法保存多个副本。这种至简有显而易见的不足,简陋的多副本策略甚至可以将香农气醒,也因为其至简,NoSQL相对于SQL数据库更具可扩展性,可以运行在相对低廉的硬件系统中,由普通PC机与交换机组成的集群系统中。

如果从ACID (Atomicity, Consistency, Isolationand Durability)的特性上对比NoSQL与SQL,前者不堪一击。ACID模型是SQL数据库创建时立下的规则,在这套规则体系下,SQL数据库是上帝。NoSQL建立在BASE (Basically Available, Softstate and Eventually Consistent)模型基础之上,所坚持的只是基本可用。这种基本可用所带来的灵活性,使得移动互联应用所追求的极度高并发特性得以满足。ACID与BASE本质上是两种完全不同的设计策略。

BASE模型的特点之一是我行我素,对Consistency没有过高的要求,这种我行我素在某种程度上,使得基于BASE设计理念的NoSQL数据库各不相同。移动互联应用绝非不重视数据的Consistency,只是在更加追求系统的高可用与高并发性的过程中,不得已舍弃了Consistency特性。对于绝大多数的移动互联应用,过强的Consistency特性并非不可或缺。

为了降低系统访问延迟并尽最大可能的保证容错,移动互联厂商所使用的存储系统多采用Geo-Replicated架构。在这种架构下,数据在不同的地理区域中有多个副本存在,这些多个数据副本的Consistency在跨地域布置的前提下,需要与系统的可用性进行取舍。

图1?7 Geo-replicated架构下的数据分布[23]

移动互联厂商所采用Geo-Replicated架构使得Eventual Consistency模型几乎成为必然的选择。Eventual Consistency模型似乎很简单,在不同分区下的数据副本最终获得一致即可,对数据的最后一次更新最终将体现在所有的分区中,但是并不保证每次读取的数据是最新的。这种对Eventual Consistency的定义非常模糊,而且在一定程度上是误导。事实上一个数据中心的设计者如果不采用一定的策略,即便是最简单的Eventual Consistency模型也无法满足。

Lloyd Wyatt et al.[23]给出了Eventual Consistency模型较为严格的定义,在一个Geo-Replicated架构中,写入到一个数据中心的数据,需要最终写入到其他数据中心,如果所有数据中心都收到了相同数据集合的写入操作,那么在整个系统中这个数据集合的所有的数据副本需要保持一致。即便不考虑有人恶意插拔线与主机电源而制造的数据分区,仅考虑络报文延迟与传输顺序,在整个系统中即便只保证Eventual Consistency也并非易事。

Eventual Consistency这种弱一致性模型,有许多显见的问题。Lloyd Wyatt et al

3谈存储

.列举了一些互联应用,因为采用Eventual Consistency所导致的一系列问题,如Comment Reordering、Photo Privacy与Double Money Withdrawal等[23]。有些问题不伤大雅,有些问题较为严重。Lloyd Wyatt et al.所列出的这些问题是,移动互联厂商为了追求系统容错与访问延迟所付出的应有代价。

Consistency是一个非常重要的概念,但是99.9%的IT从业人员不必去深入理会这些概念。除非你立志做个类似于SPARK的系统,而不是去简单地使用。虽然SPARK这类系统,世界上只需要一个,但是依然有一个问题值得思考,这个系统为什么不能出自中国。

在移动互联世界中,Consistency概念首次引发较大范围的关注是在1998年。那一年EricBrewer正式提出CAP(Consistency, Available and Partition tolerance)[24]猜测并于1999年正式发表“Towardsrobust distributed systems”这篇文章。

其正确性在2002年由Seth Gilbert和Nancy Lynch证明,CAP Conjecture也正式转换为Theorem[25]。传统的CAP理论认为,在一个络系统中,数据一致性(C)、数据的高可用性(A)和数据对分区的容忍性(P),三者不可兼得。

CAP理论的最简单的解释是假设系统仅存在两个节点,并处于分区的两侧。如果仅允许一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,但是这又会导致丧失P性质。一般来说跨区域的系统,设计师无法舍弃P性质,那么就只能在数据一致性和可用性上做一个艰难选择[24]。

2012年,Eric Brewer重新回顾了CAP理论,并针对实际情况做出了一些修订。在CAP三个特性中选二,并不是简单的非黑即白。首先在一个分布式系统中,真正支持绝对分区的系统并不多见,Kyle Kingsbury在[26]中列举的在分布式系统中存在的分区情况,基本上都是因为各类异常导致的。

即便是在数据分区成立的前提下,为了实现100%的可用性而不顾一致性,或者为了实现100%的一致性而不顾可用性,都是过于绝对,而并不可取。在一个实际系统中,可以在时间空间的更加细粒度的划分中,使得系统基本可用,基本一致。这些对“基本”的选择是系统设计中需要考虑的权衡与取舍[27]。

CAP理论缘于Eric Brewer一次闲聊,对于之前熟悉Leslie Lamport分布式系统的学者或者工程师而言,CAP理论严格意义上是一次不错的推导,不过这并不影响CAP原理带给互联与移动互联的巨大推动作用,也许更多的人开始学习并认识分布式理论源自简单的CAP推论而不是LeslieLamport晦涩的论文。

CAP理论的出现,给予了NoSQL对抗SQL数据库的有力武器,特别是在讨论强Consistency对于一个数据库是否不可或缺这样的话题。此后依照BASE理念,而不是ACID理念,互联厂商逐步自行研发自己的分布式系统,以满足移动互联应用对于超大并发数的追求。之后Google提出了MapReduce、GFS (Google Filesystem)和Bigtable这些简练的能够让普通程序员即可掌握的分布式编程模型。

随后继承了MapReduce方法和GFS理念的Apache Hadoop分布式得到了迅速普及与发展。Hadoop使用HDFS (HadoopDistributed File System)管理文件系统,可以部署在低廉的硬件平台之上的同时,提供较高的吞吐量。从分布式计算的理论上讲,MapReduce模型较不完美,但是简单实用的编程模型使Hadoop系统突飞猛进。

MapReduce将所有操作归为Map和Reduce两个操作,可能是当时的Google在面对当时的程序员素质在当时做出的选择。这种简单分类并不完美,但是极易被程序员掌握。MapReduce编程模式采用了最简单的分而治之策略,简单粗暴,易于掌握,却很难是最优,甚至是次优编程模型。而后出现的SPARK在计算框架上与Hadoop相比有了一次较大的提升,我认为在集群计算模型上优于Hadoop,也依然认为Hadoop由于是第一次出现,其历史地位不可撼动。

整个IT史册在充斥着并不完美中奋然前行。在IT基础领域中,太难的算法和实现策略很难推行,晦涩的算法不容易实现,也不容易理解。这个行业在飞速发展的年代,一边是市场人员Time-to-Market的压力,一边是尽快提交代码的压力,这一切使得在工程实现的算法都可能不是已知理论的最优,甚至不是次优算法。KISS理论在移动互联高速发展的时代再度胜出。

至今IT基础设施的三大领域,均遭遇瓶颈。硅工业发展的事实停滞,使得基础设施跌下神坛,不能再次依靠自身驱动自身的方式前行。这使得一些更优的算法与体系结构有机会重整旗鼓,至少尝试一下已知理论上的最优,以精益求精。另一方面寻求下一个硅的脚步从未停息,ITRS在面临硅工业的困境,提出了六个可能的方向,System Integration、Heterogeneous Integration、Outside System Connectivity、More Moore、Beyond CMOS和Factory Integration[1]。

在这些方向中,最具颠覆的莫过于Beyond CMOS。Beyond CMOS是在寻求新的材料替代硅,也许需要几个世纪,也许就在明天。假设这些BeyondCMOS的某一种新材料能够真正取代硅,那么这种新材料的应用将率先在存储领域出现。从设计的角度上看,诸多存储Cell的一字排列,其复杂程度远低于CPU或者络设备的交叉矩阵;人类历史上也从来没有像今天这样依赖着存储,所有历史上存在的数据已不堪舍去,新的数据川流不息。

这使得在IT基础设施的三大领域,计算、络与存储中,存储被寄予厚望,存储级内存SCM正在暂露头角。从Intel与Micron合作的3D xPoint开始,近些年会陆续诞生一些新型的SCM,2017年1月已经宣布量产的CrossBAR的ReRAM[28];Nantero与富士通合作在2018年推出基于CNT (CarbonNanotube)的NRAM[29];Samsung收购Grandis后与IBM一道全力推进STT-RAM[30].

图1?8存储器分类[31]

这些SCM也许在近期很难在Volatile领域全面替代DRAM,或者在Nonvolatile领域全面替代NAND Flash,但至少会给一潭死水的存储器层次结构引入变数,从而带来冲击。内心深处,希望一切使用新型材料的SCM取得革命性的突破,心中坚信在计算、络与存储三大领域中,存储将最先取得突破。

相关推荐