Google File System读书笔记

GFSgoogle分布式存储的基石,其他存储系统,比如Google的bigtable、megastore、percolator均直接或者间接的构建在GFS上。

  • 系统架构

    • GFS Master
      维护了系统的元数据,包括文件及chunk命名空间、文件到chunk的映射关系、chunk的位置信息;复制整个系统的全局控制,master定期会与CS通过心跳的方式交换信息
    • GFS ChunkServer(CS,数据块服务器)
      64MB的chunk块,由master在创建时分配一个64位全局唯一的chunk句柄,CS以普通的linux文件的形式将chunk存储在磁盘中
    • GFS客户端
      客户端是GFS提供给应用程序的访问接口,是一组专用接口,以库文件形式提供 ,GFS客户端不缓存文件数据,只缓存主控服务器中获取的元数据

关键问题

  • 租约机制
    GFS数据追加以记录为单位,GFS系统中通过租约(lease)机制将chunk写操作授权给chunkmaster,拥有租约的chunserver为主chunkserver,其他副本所在的chunkservcer为备chunkserver
  • 一致性模型 -- 追加一致性
  • 追加流程 -- GFS中最为复杂的部分
    GFS追加流程有两个特色:流水线及分离数据流和控制流
  • 容错机制
    master保存三种元数据:命名空间(name space)、文件到chunk的映射、chunk副本的位置信息 (1)master容错:操作日志 + checkpoint、shadow master (2)chunkserver容错:

Master设计

  • 新副本所在的chunkserver的磁盘利用率远远低于平均水平
  • 限制每个chunkserver“最近”创建的数量
  • 每个chunkserver的所有副本不能在同一个机架
  • Master内存占用
  • 负载均衡
    串讲chunk的三种情况:chunk创建、chunk复制(re-replicantion)、负载均衡(rebalancing)
  • 垃圾回收
    GFS采用延迟删除的机制
  • 快照(snapshot)

ChunkServer设计

ChunkServer是一个磁盘和网络IO密集型的应用

总结

  • GFS是一个具有良好扩展性并且在软件层面可以自动处理各种异常情况的系统
  • 单Master的设计是可行的

Linux GFS和Google GFS的区别

Linux GFS中的GFS是Global FileSystem,指的是全局文件系统,要解决的是共享存储的读写。如下图:

Linux GFS类似于一个并发锁的处理器:获得独占锁的节点才可以进行写操作。

所以,Linux GFS面对的存储设备有两种:iSCSI和FC

Google GFS中的GFS是Google FileSystem,指的是分布式文件系统,要解决的问题是文件系统的分布。

除了管理节点外,其它的都是数据节点;数据节点存放具体的数据。

总结:

Linux GFS是把让昂贵的存储共享起来给大家用;

Google GFS是把便宜的各个本地存储集中起来共享给大家用。

http://www.90rhca.com/?p=126

Google File System读书笔记,布布扣,bubuko.com

时间: 2024-12-25 22:27:53

Google File System读书笔记的相关文章

Google File System 论文阅读笔记

核心目标:Google File System是一个面向密集应用的,可伸缩的大规模分布式文件系统.GFS运行在廉价的设备上,提供给了灾难冗余的能力,为大量客户机提供了高性能的服务. 1.一系列前提 GFS的系统构建针对其自身使用的特点在传统的分布式系统的基础上又进行了一些创新,基于的前提假设主要包括以下方面: 1.由于系统由廉价的商用机构成,组件失效被认为是一种常态,系统必须可以持续监控自身的状态. 2.系统存储以大文件为主,小文件也支持,但是没有进行特别的优化处理. 3.系统的工作负载主要包含

The Google File System

摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务. 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础 的,不管现在还是将来,GFS和早期的分布式文件系统的设想都有明显的不同.所以我们重新审视了传统文件系统在设计上的折衷选择,衍生出了完全不同的设计 思路.

谷歌三大核心技术(一)Google File System中文版

The Google File System中文版 译者:alex 摘要 我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务. 虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,但是,我们的设计还是以我们对自己的应用的负载情况和技术环境的分析为基础 的,不管现在还是将来,GFS和早期的分布式文件系统的设想都有明显的不同.所以我们重新审

Colossus: Successor to the Google File System (GFS)

Colossus is the successor to the Google File System (GFS) as mentioned in the recent paper on Spanner on OSDI 2012. Colossus is also used by spanner to store its tablets. The information about Colossus is slim compared with GFS which is published in 

《Google File System》阅读总结

goals and assumptions Google file system shares the same goals as previous distributed file systems: 1. scalability 2. performance 3. reliability 4. availability However, it has special assumptions about application workloads and technological enviro

Google File System设计方面的问题汇总

1.Google File System概述 google file system是一个分布式文件系统,针对的是数据密集型应用,提供容错功能,运行在低廉的服务器上,同时给大量的用户提供高性能服务.尽管google file system有着传统的分布式文件系统的目标,但是GFS的开发兼顾观察现在Internet应用下的技术需求和场景,为了扩展也考虑将来的场景,这是Google File System与传统的分布式文件系统不同的地方. 2.GFS设计时的目标及考虑因素 传统的分布式文件系统的目标:

GFS Google File System(中文翻译)

Google文件系统 GFS是一个可扩展的分布式文件系统,用于大型的.分布式的.对大量数据进行访问的应用.它运行于廉价的普通硬件上,但可以提供容错功能.它可以给大量的用户提供总体性能较高的服务. 1.设计概览 (1)设计想定 GFS与过去的分布式文件系统有很多相同的目标,但GFS的设计受到了当前及预期的应用方面的工作量及技术环境的驱动,这反映了它与早期的文件系统明显不同的设想.这就需要对传统的选择进行重新检验并进行完全不同的设计观点的探索. GFS与以往的文件系统的不同的观点如下: 1.部件错误

《淘宝技术这十年》读书笔记 (三). 创造技术TFS和Tair

前面两篇文章介绍了淘宝的发展历程和Java时代的变迁: <淘宝技术这十年>读书笔记 (一).淘宝网技术简介及来源 <淘宝技术这十年>读书笔记 (二).Java时代的脱胎换骨和坚若磐石 马云说过"创新不是为了与对手竞争,而是跟明天竞争",所以这篇文章讲述淘宝的创新技术TFS和Tair及创新的产品. 该篇文章不仅仅对在读大学生非常有所帮助,因为你能从文章中看到很多你需要学习的知识,不仅仅包括数据库.计算机网络.操作系统.数据结构等基础课程:还根据时代的技术变迁讲述了

HDFS(Hadoop Distributed File System )

HDFS(Hadoop Distributed File System ) HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Google 文件系统(中文,英文). 1. 架构分析 基础名词解释: Block: 在HDFS中,每个文件都是采用的分块的方式存储,每个block放在不同的datanode上,每个block的标识是一个三元组(block id, n