云计算之分布式文件系统

时间:14-07-10 栏目:云计算 作者:爱说云网 评论:0 点击: 1,563 次

云计算的分布式文件系统(如Google的GFS)是整个云计算的基石,提供上层表格系统所需的可靠和高效的数据存储,假设是:

        容错与自动故障恢复是DNA

整个文件系统由许多廉价计算机组成,机器故障是常事而非例外,系统需要不停地进行自我检测和监控,发现故障机器并自动恢复;

        系统存储大文件而非小文件

整个文件系统存储数百万数千万的100MB或更大尺寸的文件,而不是数十亿的KB尺寸小文件,支持对小文件的创建、读写,但不高效;

        文件的主要修改是追加

文件系统支持高效的大尺寸数据追加,特别是来自多个用户的无锁并发追加,小尺寸的数据追加和数据的改写也支持,但不高效;

        高效的大尺寸顺序读

大尺寸的顺序读数据十分高效,小尺寸随机读相对比较低效;

        持续可用的网络带宽比低的单次读写延时更加重要

多数上层应用程序对数据吞吐量有较高的要求,但对单次读写时间没有很高的要求。保持持续可用的网络带宽比保证每次读写的低延时有更大的意义。

 

在云计算的分布式文件系统中,数据被分成固定大小的块,即chunk(在GFS中是64MB)。由于可靠性和性能的需求,每个chunk在系统中有若干份拷贝(缺省是3份),保存在不同的worker上。此外,这3份拷贝通所在的worker通常位于不同的机架和不同的网络交换机,因此一个机架或交换机故障不会导致数据不可用。把多个拷贝分布到不同交换机上进一步提高了数据读出的可用网络带宽,增加了数据读出的性能,但却增加了写入时在不同交换机之间传输的数据量,增加了写入成本,由于数据的读远远多于对数据的写,这种做法提高了系统的总体性能。

 

与云计算架构的其他子系统一样,云计算的分布式文件系统采用了“单一master+多个worker”的结构,其中worker保存chunk数据的拷贝,master保存了文件和目录的名字空间、文件到chunk的映射、当前worker列表、chunk拷贝在当前worker上的分布等。此外,master还记录了worker的chunk数据大小、可用磁盘空间、数据读写次数等,并在必要的时候进行chunk迁移以便实现负载的相对平衡。

 

云计算的分布式文件系统还提供了客户端库,应用程序通过客户端库访问文件数据。例如,当客户端需要读出一个文件从某个位置开始的数据时,客户端库通过询问master获得该文件的指定位置所在的chunk以及该chunk所在的worker列表,客户端库再向其中的一个worker(通常是离该客户端网络距离最近的worker)发起读chunk(指定的偏移值和指定的长度)的请求,worker读出指定的数据后返回给客户端库,客户端库再返回给应用程序。

 

以上对云计算的分布式文件系统做了一个大致描述,后续文章还有更多的叙述。

相关文章

该用开源PaaS还是专有PaaS?两条标准帮你选择...
views 1641
如果您的企业的工作团队想在PaaS上开发、测试及部署应用程序,但却很难在开源PaaS或专有PaaS之间作出选择。预算是影响你选择办公工具和PaaS的一大因素。 开源PaaS是免费的。它是用广大开发人员和用户组成的社区贡献的代码构建而成的,例子包括Cloudify、Cloud Foundry、Ope...
阿里云计算推全新大数据工具“采云间”...
views 1745
25日,阿里云计算发布大数据工具采云间——基于ODPS的简易工具解决方案。利用采云间,中小型公司不用再购买上百万元的商业智能(BI)软件,大大降低大数据分析的门槛。   采云间是一个Web端的在线工具,简称DPC(Data Process Center),内部集成了阿里数据开发者套件和商业智能套件...
Docker入门教程:15个Docker基本命令及用法...
views 2249
本文中,我们将学习15个Docker命令以及命令的用法和功能,并通过实践学习它是如何工作的。 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到此命令,则表示Docker没有正确安装。如果正确安装会输出类似下面的内容: 到这一步Docker...
什么是云计算
views 1708
云计算是指通过因特网提供的应用和服务。这些服务从数据中心遍布世界各地,它们共同被称为所提供的“云”。这个比喻代表了互联网的无形的,但普遍性质。    “云”的概念,简化了参与在线服务的网络连接以及计算机系统。事实上,很多网络图使用云代表了互联网的形象。这象征着互联网的广泛的覆盖范围,同时简化其复...
揭秘关于云计算的十大常见术语
views 2539
云计算是当前的一个热门话题,但是如果你想了解云计算的时候,你需要先从一些技术词语下手。这里笔者为那些想了解云计算网友总结了关于云计算的常见十大术语。  SaaS,BDaaS和IaaS  看到上面三个英文单词,可能很多人会表示不解,其实了解这三者并不难,其只是云计算的三个技术单词的缩写。IaaS代表的...
分布式计算、并行计算及集群、网格、云计算的区别...
views 1204
并行计算:并行计算是相对于串行计算来说的。可分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。例如基于CUDA编程。并行计算的目的就是提供单处理器无法提供的性能(处理器能力或存储器),使用多处理器求解单个问题。 总结:并行的主体 -- 处...
谷歌技术”三宝”之BigTable — 大数据云计算时代...
views 1802
2006年的OSDI有两篇google的论文,分别 是BigTable和Chubby。Chubby是一个分布式锁服务,基于Paxos算法;BigTable是一个用于管理结构化数据的分布式存储系统, 构建在GFS、Chubby、SSTable等google技术之上。相当多的google应用使用了Big...
高性能计算解决方案_华为云服务
views 2083
华为云服务高性能计算定位 高性能计算(High Performance Computing, HPC)是IT应用的一个重要分支。科研人员、工程师为了解决复杂的科学计算、工业设计和数据分析等问题,需要超高计算能力、海量存储、高速低延迟网络等 IT资源。高性能计算是解决这些高度复杂问题的方...

声明: 本文由( 爱说云网 )原创编译,转载请保留链接: 云计算之分布式文件系统

云计算之分布式文件系统:等您坐沙发呢!

发表评论


读者排行