3. 谈存储

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 王齐

 

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

 

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

 

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

 

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

 


 

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

 

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

 

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

 


15 2016WikibonServerSAN的预测[21]

 
 

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

 
 


16 2014WikibonServerSAN的预测[22]

 

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

 

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

 

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

 


 

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

 

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

 

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

 

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

 


 

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

 

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

 

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

 

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

 


 

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

 

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

 

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

 

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

 


 

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

 

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

 

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

 

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

 


17 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.列举了一些互联网应用,因为采用Eventual Consistency所导致的一系列问题,如Comment ReorderingPhoto PrivacyDouble 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 GilbertNancy 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提出了MapReduceGFS (Google Filesystem)Bigtable这些简练的能够让普通程序员即可掌握的分布式编程模型。

 


 

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

 

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

 

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

 


 

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

 

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

 

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

 


18存储器分类[31]

 

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

经作者同意,转载自微信公众号南郭比特https://mp.weixin.qq.com/s/q8cv2EYFOcxuK4U3s5lTVg

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。