• (2)Google云计算原理与应用之文件系统GFS


    Google云计算技术:让多达百万台廉价计算机协同工作,共同完成任务的简单而高效的技术。
     GFS是一个大型的分布式文件系统,为Google云计算提供海量存储,处于Google云计算所有核心技术的底层。
     
    GFS的系统架构:
    GFS的系统节点分为3类角色:
    (1)Client(客户端) 提供给应用程序的访问接口
    (2)Master(主服务器) GFS的管理节点,保存系统的元数据,负责整个文件系统的管理
    (3)Chunk Server(数据块服务器) 负责具体的存储工作,数据以文件的形式存储在ChunkServer中。
     
    GFS将文件按照固定大小进行分块,默认大小为64MB,每一块称为一个Chunk(数据块),每个Chunk都有一个对应的索引号。
    GFS的实现机制:
     
    GFS的特点:
    (1)采用中心服务器模式
    可以方便地增加Chunk Server
    Master维护了一个统一的命名空间,掌握系统内所有Chunk Server的情况,方便进行数据存储的负载均衡
    由于只有一个中心服务器,不存在元数据的一致性问题
    (2)不缓存数据
    文件操作大部分是流式读写,不存在大量重复读写,使用Cache对性能提高不大
    Chunk Server上数据存取使用本地文件系统
    从可行性看,Cache与实际数据的一致性维护也极其复杂
    对于存储在Master中的元数据,GFS采取了缓存策略。
    (3)在用户态下实现
    利用POSIX编程接口存取数据降低了实现难度,提高通用性
    POSIX接口提供功能更丰富
    用户态下有多种调试工具
    Master和Chunk Server都以进程方式运行,单个进程不影响整个操作系统
    GFS和操作系统运行在不同的空间,两者耦合性降低 
    (4)只提供专用接口
     
    GFS的容错机制:
    (1)Master的容错机制
    Master保存了GFS文件系统的3中元数据:
       命名空间(整个文件系统的目录结构)
       chunk与文件名的映射表
       chunk副本位置信息,直接保存在各个chunk server上(每一个chunk默认有3个副本)
     Master的容错机制:
    对于前两种元数据,GFS通过操作日志来提供容错功能。
    第三种元数据则保存在各个ChunkServer上。
    当Master发生故障时: 磁盘数据保存完好-->迅速恢复元数据
                               Master彻底死机-->使用Master的远程实时备份,另一个GFS Master可以迅速接替其工作。
    (2)ChunkServer容错机制
    GFS采用副本的方式实现Chunk Server的容错
    每一个Chunk有多个存储副本(默认为三个),分布存储在不同的Chunk Server上
    对于每一个Chunk,必须将所有的副本全部写入成功,才视为成功写入
    相关的副本出现丢失或不可恢复等情况,Master自动将该副本复制到其他Chunk Server,从而确保副本保持一定的个数
    GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB
    每一个Chunk以Block为单位进行划分,大小为64KB,每一个Block对应一个32bit的校验和 
     
    GFS的系统管理技术:
  • 相关阅读:
    Hadoop-03 基于Hadoop的JavaEE数据可视化简易案例(升级使用HBase存储结果集)
    Hadoop-02 基于Hadoop的JavaEE数据可视化简易案例
    Python03 变量
    Python01 VSCode开发环境和入门程序
    MyBatis01 Idea中搭建MyBatis开发环境
    Idea01 Idea2018中集成Tomcat9导致OutPut乱码
    MySQL-08 MySQL8.0新特性
    C11 C语言文件的读写
    C10 C语言数据结构
    C09 指针
  • 原文地址:https://www.cnblogs.com/paradis/p/11007748.html
Copyright © 2020-2023  润新知