关于预期和实现:
在Google的面向大规模的数据密集型的分布式运用中,GFS都是关键和基础。同时,开源的hadoop File System 与GFS也是很相似的。
与传统的文件系统相比,GFS在设计上有以下几种特点:
一、组件失效被认为是常态,而不是意外
这很好理解,Google 的应用动辄数百甚至数千台机器,访问量又是巨大的。在系统集群工作期的任何时间点都有可能出现组件失效的事故,而且也要做好故障不能在短时间内被排除的准备。因此,在设计之初就考虑了多种优化机制来解决这个问题。
二、文件尺寸巨大
由于众所周知的原因,GFS的设计指标就是处理大规模和超大规模的数据集。因此,GFS的一些假设条件和参数都是适用于大规模数据计算的,在小规模计算上效率并不是太好。如:I/O操作和基本Block大小等,都是适配与大数据量的。
三、绝大多数文件修改操作都是采用文件尾部追加数据,而不是采用覆盖原有数据的形式
这点在大规模分布式系统上面是很重要的。由于带宽和距离的客观限制,我们并不能保证所有原子操作的顺序正确性。因此,数据的一致性很难得到保证。为每个数据保持多个副本,而不是保存最近的数据是必要的。通常master结点会选择所需要的数据。
四、应用程序和文件系统的API的协同设计提高了系统的灵活性
不太理解。但大致意思是,由于GFS的API与应用时同步的,使得接口设计的比较简洁,易于应用。
关于架构:
一个实现了GFS的集群包括一个Master结点(这里的单独的Master概念是指逻辑上只有一个Master组件,由于安全方面的原因,实际上包括二台物理主机)、多态Chunk服务器,并且同时被多台客户机所访问。如下图:
一、单一的Master结点:
Master结点管理所有的文件系统元数据,包括命名空间、访问控制信息、文件和Chunk映射信息、以及当前的Chunk的位置信息。Master结点还应该文件存储和读取的活动信息,如:Chunk租约(lease)、孤儿Chunk、Chunk位置的迁移等。
单一的Master结点的设计在设计上是清晰和明确的。Master结点通过存储全局性的数据来精确定位请求的Chunk的位置和状态,并指挥控制文件操作。但是这有一个很明显的缺点,就是系统必须保证尽量减少对Master结点的读取,以免Master成为系统的性能瓶颈。所以,Master本身并不存储数据,而是仅仅根据客户端提供的文件名和Chunk索引来定位Chunk服务器,然后客户在接下来的一段时间只需要与Chunk服务器打交道了。
二、Chunk的大小
Chunk的大小是GFS的一项关键性参数。
事实上,对所有的File System来说,元文件的大小都是影响性能的关键性参数。当文件块的大小过大时容易生成大量的文件块碎片,造成毁灭性的空间浪费。同时,每次文件操作(即使你只需1KB的数据),都必须传输较大的文件块,对带宽的要求比较高。而且,当多个关键性文件存储在同一个Chunk块时,在多客服同时访问时会造成麻烦。当文件块过小时,Master结点与Chunk服务器的通讯就会大大增加,这会大大增大Master端的压力。
Google File System选择的Chunk大小为64MB,这相对其他的File System来说应该是比较大的。选择这么大的Chunk也是有理由的。首先,降低了客户端和Master结点的通讯要求。一般对于一次客户端请求,只需一次与Master结点就能满足需求,减少了TCP连接建立花费的时间。其次,Chunk大,那么Chunk数量必定会少,易于客户端的缓存。第三,对于Master结点来说,内存就足够能缓存所有的元数据信息。
三、元数据
作为整个GFS的“管家”,Master服务器很存储多种数据,下面介绍最重要的三种:
文件和Chunk的命名空间:当客服请求fileName名字的文件,而又有多台Chunk主机保存有这个名字的文件时,区分不同的文件。
文件和Chunk的对应关系:只有拥有了这个数据,当客服请求某文件时,Master才知道应该返回那台Chunk服务器的地址。
每个Chunk副本的存放点:这个重要性同上
Master服务器的元数据都是保存在内存中的,所以Master结点的工作效率很高。通常,GFS会启动一个线程来周期性的扫描元数据,用于排错、垃圾回收、更新等。
四、操作日志
对于企业级的应用,操作日志的重要性不需要我多说了吧。
在GFS中,在关键性的元数据变更且确保持久性之后,会被记录到操作日志中去。这样做可以避免丢失部分客户端的操作信息。系统会定期做一个checkpoint来保存最新的日志(数据状态),一些机制会被采取来保证checkpoint不会影响正常的工作。
明天继续!!
- 大小: 158.2 KB
分享到:
相关推荐
### 关于《The Google File System》中文版论文的...综上所述,《The Google File System》中文版论文详细介绍了GFS的设计理念、关键技术以及其实现细节,为理解和实现大规模分布式文件系统提供了宝贵的经验和指导。
根据提供的文件信息,下面将详细阐述关于Google File System(GFS)中文版的知识点。 ### 标题知识点 #### Google File System中文版 - **分布式文件系统概念**:GFS是一种面向大数据存储和处理的分布式文件系统。...
Google文件系统(GFS)是Google为满足自身大规模数据处理需求而设计和实现的一个分布文件系统。它运行在廉价的普通硬件上,同时提供了容错能力和高性能服务,满足了大规模分布式应用的需求。GFS的设计理念受到Google...
Google文件系统(Google File System,简称GFS)是一项由Google设计并实现的分布式文件系统,旨在为大规模数据密集型应用提供支持。该系统能够在廉价硬件上运行,并提供灾难冗余能力,以确保高可用性和高性能。 ###...
《谷歌文件系统(The Google File System)》是Google公司于2003年发布的一篇技术论文,它详细阐述了一种专为大规模分布式计算环境设计的文件系统。这篇论文成为了后来许多分布式文件系统的设计基础,对云计算和大...
### Google File System (GFS) 关键知识点 #### 摘要与背景 - **设计与实现**:GFS是一个面向大规模数据密集型应用的、可伸缩的分布式文件系统,旨在通过廉价的通用硬件提供高可靠性和高性能的服务。 - **应用场景...
标题《The Google file system》指的是谷歌文件系统,这是一种专为处理大规模分布式数据密集型应用而设计和实施的可扩展分布式文件系统。该文件系统以低成本的商品化硬件为运行平台,在提供容错能力的同时,为大量...
- **设计目的**:为了满足Google内部大规模数据密集型应用的需求,构建了一种可扩展的分布式文件系统。 - **技术环境**:该文件系统运行在廉价的商品硬件上,并能够为大量客户端提供高聚合性能和容错能力。 #### 二...
谷歌的三大论文是分布式计算领域的里程碑,它们定义了现代大数据处理的基础框架和技术。这三篇论文分别是《MapReduce:大规模数据集的并行计算》、《Bigtable:一个结构化数据的分布式存储系统》和《The Google File...
谷歌的三篇经典论文——Bigtable、File-System和MapReduce,对现代大数据处理和分布式系统的发展产生了深远影响。这三篇文章分别详细介绍了谷歌在数据存储、文件系统和大规模并行计算上的创新解决方案。 首先,让...
它的设计灵感来自于Google的论文《The Google File System》和《MapReduce: Simplified Data Processing on Large Clusters》。 1. **表格模型**:Bigtable将数据存储在表格中,表格由行和列组成,行和列都有唯一的...
### Google文件系统(Google File System)论文中文版关键知识点解析 #### 一、引言 Google文件系统(Google File System, GFS)是一项为满足Google迅速增长的数据处理需求而设计和实现的分布式文件系统。GFS的目标...
2. **GFS(Google文件系统)**:另一篇由Google的Sanjay Ghemawat、Howard Gobioff和Shun-Tak Leung于2003年撰写的论文名为《The Google File System》。GFS是一个高度容错、高吞吐量的分布式文件系统,设计用于支持...
### Google云计算三大论文知识点概述 #### 一、Bigtable:一个分布式的结构化数据存储系统 **1.1 概述** Bigtable是Google开发的一个分布式数据存储系统,旨在处理大规模的数据集,其数据量通常达到PB级别。该...
1. 2003年,Google发布Google File System论文,这是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,提供容错功能。从根本上说:文件被分割成很多块,...
谷歌的三大论文——“分布式文件系统GFS”、“大规模数据管理Bigtable”和“并行计算模型MapReduce”——是大数据处理领域的里程碑式工作,它们为现代云计算和大数据技术奠定了基础。这三篇论文详细阐述了谷歌如何...
这三篇论文分别是《Bigtable:一个结构化数据的分布式存储系统》(Google_BigTable)、《The Google File System》(Google_Files_System)以及《MapReduce:大规模数据集的并行编程模型》(Google_MapReduce)。...
《Google三大论文》是互联网巨头Google在早期发布的一系列开创性技术论文,这些论文对现代分布式计算和大数据处理产生了深远影响。以下是对这三篇论文的详细解读: 1. **《The Google File System》(谷歌文件系统...
谷歌的三篇大数据著名论文,包括“MapReduce:大规模数据集的简单并行计算模型”、“The Google File System”和“Bigtable:一个结构化数据的分布式存储系统”,是大数据领域的重要里程碑,对后续的技术发展产生了...
在云计算领域,Google无疑是引领潮流的巨头之一,其在2000年代初期发表的三篇论文——"The Google File System"(GFS)、"MapReduce: Simplified Data Processing on Large Clusters"和"Bigtable: A Distributed ...