/weixin_45494421/article/details/98760782
概要:常见的分布式文件系统有GFS、HDFS等,也有新兴的基于区块链IPFS/Filecoin等。有的广泛应用,有的开始挑战,有的是闭源,有的开源。在不同的领域和不同的计算机发展阶段,它们都对数据存储起到了各自的作用。那么这些分布式文件系统都有什么优缺点?我们应该怎样选择适合自己的解决方案?
一、HDFS:被雅虎开源的分布式文件系统
Hadoop分布式文件系统(HDFS),是一个分布式、可扩展的Hadoop框架,具有高容错、低成本部署优势。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大型数据集的应用程序。HDFS最初是作为Apache Nutch网络搜索引擎项目的基础设施而构建的,现在是Apache Hadoop子项目。
HDFS如何工作?HDFS支持计算节点之间的数据快速传输,文件系统多次复制或复制每个数据,并将副本分发到各个节点,将至少一个副本放在与其他服务器机架不同的服务器上。因此,崩溃的节点上的数据可以在群集中的其他位置找到。这可确保在恢复数据时继续处理。这使得HDFS高容错性。简单来说,HDFS将文件拆分为块,并将它们分布在集群中的节点上。
架构分析:HDFS采用的是主/从架构(master/slave )。HDFS集群由单个NameNode(主节点),这相当于一个主服务器,用于管理文件系统命名空间和管理客户端对文件访问。此外,还有许多DataNode(数据节点),通常是集群中每个节点之一,用于管理连接到运行的节点存储。在HDFS中,文件被分成一个或多个块,这些块存储在一组DataNode中。NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。它还确定了块到DataNode的映射。DataNode负责提供来自文件系统客户端的读写请求。
发展简史:源于谷歌,终于雅虎,归于开源
最开始,雅虎公司为了加强广告服务和搜索引擎功能,推出了Hadoop分布式文件系统。由于优势明显,Facebook,eBay,LinkedIn和Twitter都开始使用它来处理不断增长的应用程序数据,还被纽约时报用作大规模图像转换。
,Hadoop的创始人将HDFS交给了Apache软件基金会。,HDFS和Hadoop的版本1.0正式开启使用。12月推出Hadoop 3.0,使得HDFS具备更强大的数据压缩和扩展性。1月,Apache Hadoop 3.2发布。
实际上,HDFS的主节点“数据分块”属性借鉴了谷歌文件系统(GFS)和IBM的GPFS的设计。尽管在Google算法的打击下,雅虎梦断搜索。但HDFS却躲开了攻击,成为最知名的分布式文件系统解决方案之一。6月,雅虎把Hadoop开源了源代码可供开源社区使用。从搜索业务上,雅虎是“失败”和无奈的,但是从计算机数据处理和全球商业设施上讲,软件开源的价值是无价的。
优势尽显,一半的财富50强公司使用
HDFS通信协议都在TCP / IP协议之上,且主要使用Java语言构建,多端运行起来几乎没有障碍,这使得它的应用场景方便而快捷。这让许多公司的部署成本降至最低。HDFS是许多Hadoop生态系统技术的关键部分。
,Facebook宣布拥有全球最大的Hadoop集群,拥有21 PB的存储空间,两年后达到100 PB。截至,Hadoop的应用已经变得非常普遍,且非常成功:超过一半的财富50强公司使用Hadoop。
HDFS的最初灵感来自10月发布的谷歌文件系统论文,这篇论文催生了谷歌的另一篇论文“MapReduce:大集群中的简化数据处理”()。可见谷歌在分布式文件系统上研究不仅早,而且行业领先。
二、谷歌GFS和Colossus
GFS(Google File System)又称为谷歌文件系统,是一种分布式文件系统。
在GFS架构中(如下图),GFS的节点分为两类:主节点和大量的Chunkservers。Chunkservers存储数据文件,这些单个的文件象常见的文件系统中的簇或者扇区那样被分成固定大小的数据块(这也是名字的由来)。GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个Chunk(数据块),每个Chunk都有一个对应的索引号(Index)。而Client是GFS提供给应用程序的访问接口,也扮演节点的角色。
流程简析:GFS采用中心服务器模式,即Master管理分布式文件系统中的所有元数据。文件划分为Chunk进行存储,对于Master来说,每个Chunk Server只是一个存储空间。Client发起的所有操作都需要先通过Master才能执行。
好处是,只有一个中心服务器,元数据的一致性问题自然解决。坏处是整个系统会遭遇瓶颈,分布式节点(Chunk Server)之间没有保持关系。
Google的核心需求是数据存储和使用。最初的GFS主要是为搜索引擎服务,最后变为云计算战略的一部分。如果要评价GFS,给予任何溢美之词都不为过,因为GFS从理念和设计都是划时代的。
随着谷歌的壮大,凭借搜索、流媒体和云服务,霸占了数据高地。逐渐地,GFS的单点损坏和效率已经严重制约谷歌的下一步计划。
,Google公布了Colossus(直译“巨象”)项目,作为下一代的Google文件系统。
早在,谷歌发布了一个非常简单的云存储的架构文档“Colossus - Google Cloud”,并辅以文字描述,“Google operates planet-scale storage systems. What keeps us programming: Enabling application developers. Improving data locality and......”翻译过来就是:谷歌运营大规模的存储系统,让开发和应用产生质变。
Colossus File System从一出生,它的使命只有一个:效率。它的最重要的特点之一就是自动分片元数据层。
,国际并行数据系统研讨会(PDSW)上,谷歌的高级软件工程师Denis Serenyi讲述了Colossus是如何提升存储效率。他指出了GFS架构问题:
●一台机器不足以满足大型文件存储
●元数据操作的单一瓶颈
●容错不够高
●延迟问题(尽管可以预见)
鉴于此,GFS master节点只能被Colossus替代。Colossus存储效率对于优化谷歌的产品非常有用,它体现在:
●元数据扩展可以对资源进行分块
●能够组合不同大小的磁盘和各种类型的工作负载
冷热数据的平衡与新分发
Colossus是一个进化版,而非全新的版本。Colossus重新平衡了旧的冷数据,并在磁盘上进行进行新数据的分发。这样,像Youtube这样的视频平台,大量的数据存储和播放需求,会在分布式系统中以最快的效率触达用户。
小知识:什么是冷数据?热数据?
数据冷热管理是非常重要的一部分。比如IBM就会开发一套解决方案来测量数据的“温度”,并协助制定包含数据的运营和业务决策。
热数据: 指的是将被频繁访问的数据,它们通常存储在快速存储器中。
温数据:是指被访问频率相对较低的数据则,它们存储在相对较慢的存储器中。
冷数据:极少被访问的数据,它们则会被存储在企业最慢的存储器中。
三、IBM通用并行文件系统:GPFS
IBM通用并行文件系统(General Parallel File System,简称GPFS)是一个面向企业的文件系统,用于替代HDFS。
根据IBM官方的描述,GPFS支持数千个节点和PB级存储,数据在多个节点上复制存储,因此不存在单点故障。官方还不忘diss了一下HDFS的单点故障问题。解决IBM单点故障的方法是:如果节点出现故障,则会将更改复制到其他节点,GPFS会快速确定并恢复哪些块。节点崩溃时发生的更改也将复制恢复到上一个节点,以便节点与集群让的其他节点同步。
IBM还使用了新的磁盘阵列技术(GPFS Native RAID)(如下图),针对破碎数据的重建和资源消耗,比传统的阵列减少了三到四倍。因为GPFS跨集群管理,整个系统性能表现对单个节点的重建存储阵列速度的依赖更加小。
这让规模磁盘管理、镜像、基于策略的自动化和灾难恢复等成为GPFS的主要特点。
GPFS是面向大规模高性能计算和大规模存储环境,可以跨多个服务器分发和管理数据。在GPFS集群之间的共享文件系统效率更高,提高了系统性能和文件一致性数据可用性和系统灵活性也提高,并简化了存储管理。
,IBM改名部将GPFS改为Spectrum Scale,成为IBM Spectrum Storage(光谱存储)的一部分。下图为IBM官方架构图:
IBM Spectrum Scale是针对云计算、大数据、数据、对象等的非结构化数据的高级存储管理系统,具备许多特点:高扩展性能、极高吞吐量、低延迟、数据感知和智能管理、全球协作、利用身份验证和加密保证数据完整性和安全性。在官网中,IBM称“企业组织的底层存储必须支持新时代的大数据和人工智能工作负载以及传统应用程序,同时确保安全性,可靠性和高性能。”而IBM Spectrum Scale作为一种高性能的大规模数据管理解决方案,正是为此而生。
而且它还可在Amazon Web Services上使用。可见,IBM已经不甘心于做一个只存文件的文件系统,而是一个将文件存储作为底层设施的数据经济系统。将存储成本降低已经不再是第一优先目标,全局管理、全球共享、人工智能,都预示着IBM转变数据经济学的发展战略。
四、华为分布式存储:FusionStorage
FusionStorage是华为的一款可大规模横向扩展的智能分布式存储产品。面向虚拟化/云资源池、关键业务数据库、大数据分析、内容存储/备份归档等应用场景,是客户具备云基础架构的弹性按需服务能力,又满足企业关键业务需求。在其官网,目前客户已经有招商银行、中国移动、中国电信。
那么,华为分布式存储的架构是什么?FusionStorage块存储采用分布式集群控制技术和 DHT网络路由技术,提供分布式存储功能特性。(如下是块存储功能架构图)
在系统架构上,FusionStorage使用全分布式架构。在企业级特性上,FusionStorage优势明显:快照,链接克隆,数据加密,Active-Active,远程复制,精简配置,重删压缩和QoS等。在存储底层,依旧采用了分布式数据路由和集群管理,这是常见的技术解决方案。为了解决一致性问题,华为加入了强一致性复制协议,和并行数据重建功能。在存储服务层,值得关注的是分布式Cache技术,这利于索引效率和容灾备份。最后,FusionStorage提供了存储接口的良好支持,对上层的应用和虚拟机提供标准的iSCSI块存储接口。
强一致性复制协议:
当应用程序成功写入一份数据时,后端的几个数据副本必然是一致的,当应用程序再次读时,无论在哪个副本上读取,都是之前写入的数据。FusionStorage采用类似同步镜像、复制技术,一份数据在本地写成功,还会等待其他远端副本返回写成功后,才标志着本次写成功,返回上层业务。
SCSI:
即小型计算机系统接口。它是各种计算机与外部设备之间的接口标准。iSCSI是由Cisco和 IBM两家发起的,基于TCP/IP上的协议。iSCSI的优势:长距离连接,更低成本,简化部署和实施,固有的安全性。但是iSCSI仍受到几个掣肘:iSCSI架构于IP协议之上,因此也继承了IP协议本身的缺陷:区分不同流量优先等级,防止丢包的QoS与流量控制机制不足。如果主机I/O处理能力、存储阵列性能无法跟上,则存储网络整体性能同样会受到影响。目前iSCSI在高I/O环境下的性能表现仍不如光纤通道。
值得强调的是,FusionStorage 支持使用HDFS插件,实现与业界主流大数据平台的对接。(下图为FusionStorage逻辑架构)
FusionStorage 文件存储当前支持与 Huawei FusionInsight、Cloudera CDH 等主流厂商的大数据软件产品的对接。FusionStorage 对象存储提供兼容 Amazon S3 的对象存储接口,支持与 Hadoop 大数据平台的对接。并支持OpenStack等云平台兼容。
除了在金融、大企业等领域,在制造、运营商等行业中,随着新兴业务的激增、业务数据呈现几何倍数的快速增长,使得企业数据中心存储系统开始面临新的挑战。FusionStorage 通过系统软件将通用硬件的本地存储资源组织起来构建全分布式存储池,支持灵活购买和部署,帮助企业轻松应对业务快速变化时的数据灵活、高效存取需求。
华为在发布FusionStorage,目前最新的版本是重大升级后的FusionStorage 8.0。根据Intel官方文件,华为FusionStorage已经进入Intel Select Solutions(因特尔选择方案)。
五、星际文件系统:IPFS
IPFS(InterPlanetary File System)星际文件系统,是一个点对点的分布式存储和超媒体传输协议,使用内容寻址的进行数据分发。IPFS依靠分散的全球网络节点构成一个分布式系统,使得网络更加安全和高效。IPFS属于开源项目,创始人为斯坦福大学Juan Benet,他建立了协议实验室Protocol Labs,主导开发了IPFS、Filecoin等协议。
IPFS旨在让全球计算设备连接到同一个文件系统中,且是分布式和结构。IPFS提供了一个高吞吐量、按内容寻址的块存储模型IPFS没有单点故障,并且节点不需要相互信任。为了激励更多节点,IPFS官方发布了一个由加密数字货币驱动的分布式存储网络——Filecoin建立在IPFS协议之上,它是IPFS的激励层。
Filecoin建立的是一个去中心化的存储市场,客户支付FIL进行存储数据,矿工(存储节点)提供硬盘空间存下数据获得FIL奖励。这是其基本经济模型。
Filecoin的文件经过哈希算法,安全存储于分布式节点,经过点对点传输。存储节点并不知道存储的数据副本具体是什么,因为Filecoin采用了端对端加密技术。由于采用分布式哈希路由,同上文中的HDFS\GPFS等系统一样,IPFS同样具备高容错性。
不过Filecoin最突出的地方在于,它是区块链技术形态下的分布式文件系统,意味着它是去中心化架构。没有中心化服务器控制,没有单点故障(并不意味着不会发生,而是有专门的修复机制),无需中间人,节点之间也无需第三方来保证信任。Filecoin是一个透明、开发、可信的网络,区块链就是它的信任链,在链上,数据交易全部可查。基于Filecoin的文件版本机制,文件可溯源,解决数据大量重复存储和冗余问题。
作为去中心化的存储网络,都会设计共识Proof of Storage(存储证明),Filecoin和Sia等网络均如此。不过,Filecoin设计了新的证明机制叫做PoRep(复制证明),用于证明机器设备存储了数据。还有PoST(时空证明),用于锚定存储数据和时间戳,证明在某一时间矿工存储着数据。依靠两种算法机制,有效防止女巫攻击等数据造假、欺骗等行为。Filecoin存储网络最大的特征就是安全。
截至8月,Filecoin主网并未上线。根据官方路线图, 预计上线时间为 Q3/Q4,在上线之前之前将会(必须)进行代码冻结并申请美国的审计。从时间点上看,Filecoin还未真正步入全球云存储市场,但是它的设计将会为分布式文件系统带来新的解决方案。
总结Filecoin的优点:
●去中心化
●分布式节点网络,无单点问题
●加密技术保护数据完整性和安全性
●存储成本和传输成本远低于中心化系统
●通证激励
Filecoin是IPFS官方激励层,同样在IPFS生态,IPSE承担着IPFS应用检索层的重任。Filecoin重存储,IPSE重搜索。但这并不代表Filecoin网络没有检索,实际上,检索市场也是其数据验证环节的关键部分。同样不能将IPSE单纯规类为分布式搜索,因为它也有底层的存储方案。(下图是IPSE的分布式存储结构和共识机制)
为了让分布式节点的数据能以最快的速度触达,IPSE采用效率优先原则。基于区块链共识机制PoST(存真证明)和数据持有证明PDP,使数据安全存储在磁盘介质上。尽管如此,为了实现更好的存储安全性,IPSE的数据多份保存和多节点分散保存。矿工如果无法完成对挑战到的数据切片做出PDP持有性证明将会遭受惩罚。对于陈旧的数据,IPSE采用智能嗅探和周期性任务分发,使数据保存期限将和机器硬件使用寿命同步。
为了数据被访问到,依靠强大的检索引擎,IPSE数据索引能能够获取分布式节点网络上的数据。从数据源-数据存储-数据检索-数据访问,构建了完整的数据生命流程。
除了上述网络,分布式文件系统的解决方案包括:Sia和Sotrj。它们都建立了一个租用和支付通证的存储空间,去中心化,数据为自己的私有,存储都将进行加密。目前,Sia已经进行了商用,Storj还在Alpha 4开发阶段。
六、总结:
分布式文件系统最初是为响应逐渐增大的数据规模而设计,相继出现了不同的解决方案。有谷歌、IBM等传统科技大公司为自己设计的系统,也有进行开源而被大众使用的系统。
它们都想获得这样的目标:满足PB级的数量存储、高吞吐量、尽可能低的访问延迟、快速部署与低成本应用。
它们都使用了相同或相似的技术架构和思路:集群系统、节点管理系统、可扩展结构、副本备份、容错管理。
它们都遇到了同样的问题:一致性事物处理、通信资源消耗、数据的存取结构复杂、数据的安全性和保密性。
因此,只要存储存在,机会和挑战就并存。而且方案不止一种(其它的分布式文件系统还有:Lustre文件系统、淘宝TFS系统等)。
毫无疑问,对比通用文件系统,分布式文件系统非常适合大规模数据集上应用,为企业组织的业务部署带来了成本和管理优势。不过如果追求高效,那么就要有数据丢失和安全方面的牺牲。如果着重安全,效率又会收到影响。如果问,哪个分布式文件系统最好?闭源还是开源?中心化和去中心化应该如何选择?
寻找分布式文件系统的最佳答案,不如先从计算机网络发展的三个主要阶段中寻找。(如图)
第一阶段,集中式网络。这是第一个计算机网络。它们以一台主计算机(服务器)为中心代表,周围有有许多其他计算机连接到它。结果,如果主计算机上的信息被擦除或丢失,数据就从整个网络中消失了。
第二阶段,去中心化的网络。意味着有多个主服务器连接了多个辅助服务器。因此,其中一个服务器的问题不会影响整个网络。弊端是控制主服务器就控制了关联数据。
第三个阶段,分布式网络。目前,我们正在见证一种全新的、革命性的计算机网络的兴起——分布式网络节点内的所有计算机都作为对等体存在,且互相连接。假如其中一个节点关闭或者崩溃,数据信息仍将在网络中的其余计算机节点上可用(直到最后一个节点关闭)。
传统的分布式文件系统(无论谷歌闭源的GFS还是开源的HDFS),在效率上和应用上都具备实践优势。但它们都为摆脱中心化结构。因此,引发了安全和信任问题。随着计算机网络进入新的阶段,分布式存储文件系统的技术要求将更高,同时要在开发难度和易用性做出平衡,在部署上要取得更好的成本优势。基于区块链技术的分布式文件系统(如IPFS/Filecoin/IPSE/Sia)提供了透明可信任的网络,展示了不同的数据形态。但是,这些网络在大规模商用上还处于探索和初步实践阶段。
参考资料
[1]HDFS介绍
/docs/r1.2.1/hdfs_design.html
[2]《GFS谷歌文件系统论文()》
https://ai.google/research/pubs/pub51
[3]Colossus - Google Cloud
/files/storage_architecture_and_challenges.pdf
[4]Denis Serenyi《Cluster-Level Storage at Google,How we use Colossus to improve storage efficiency?》
/pdsw-discs17/slides/PDSW-DISCS-Google-Keynote.pdf
[5]《华为FusionStorage 6.3 技术白皮书》
[6]FusionStorage 8.0.0 产品描述
/cn/products/cloud-computing-dc/storage/cloud-storage/fusionstorage#specification
[7]iSCSI存储系统基础知识
/docs/DOC-33815
[8]GPFS 4.1.0.4-Advanced Administration Guide
https://www-/support/docview.wss?uid=pub1ga76044201
IBM Spectrum Scale 5.0.0: Administration Guide
/support/knowledgecenter/STXKQY_5.0.0/com.ibm.spectrum.scale.v5r00.doc/pdf/scale_adm.pdf
[9]Implementing the IBM General Parallel File System (GPFS) in a Cross-Platform Environment
[11]Google: Storage Architecture and Challenges
[12]《IBM红皮书:IBM Spectrum Scale (formerly GPFS) 》
http://www./redbooks/pdfs/sg248254.pdf
[13]IPFS星际文件系统
https://ipfs.io/
[14]IPSE技术黄皮书
https://ipfssearch.io/
[15]Sia白皮书
https://sia.tech/sia.pdf
[16]Filecoin白皮书
https://filecoin.io/filecoin.pdf
[17]Filecoin路线图
/document/d/1cgss-rifFO2iSJgnMmOsD_tPal40MUp1m7crTFQuVYQ/edit#