GFS

GFS

GFS(Google File System)是一个分布式的文件系统。

主要四个目标:
  (1)高可用:容错性能好
  (2)高可靠:读取数据准确
  (3)高性能:大文件存储,大规模的流式读取
  (4)可扩展:能线性的追加机器

GFS架构
在这里插入图片描述
(1)客户端(GFS client)

  • 提供的就是对外要用的接口(API)
  • 与Master结点交互获取元数据信息
  • 与Chunkserver交互实现所有有关数据的操作

(2) 主服务器(GFS master)

  • 管理文件系统元数据
    (元数据:命名空间;文件到chunk的映射关系;每个chunk的位置)
  • 对chunk的租约管理,无用chunk的回收,以及chunk的迁移
  • 周期性与chunkserver发送心跳信息,获取chunk副本的位置信息

(3) 存储服务器(GFS chunk-server)

  • 集群,实现对文件的存储

读写操作

(1)读操作

  1. client读本地缓存,看文件在哪些chunk-server上;
  2. 如果client本地缓存找不到,询问master文件所在位置,并更新本地缓存;
  3. 从一个chunk-server里读文件,如果读取到,就返回;

(2)写操作
    要备份三份,存在三个chunk-server上
在这里插入图片描述
    写操作,必须所有chunk写成功,才会返回client写成功
    读操作只要一个chunk读取成功,就能返回读成功

GFS特点

GFS的高可用
(1) master高可用:冗余了一台影子master,平时不工作,master挂了工作
(2) chunk-server高可用:本身是集群,冗余服务;
(当有chunk-server挂掉,master能检测到,并且知道哪些文件存储在chunk-server上,就可以启动新的实例,并复制相关文件。)

(3) 文件存储高可用:每一份文件会存三份,冗余文件;

GFS的高性能
多个chunk-server可以通过线性扩展提升处理能力和存储空间,GFS的潜在瓶颈是单点master,所以GFS要想达到超高性能,主要架构优化思路在于,“提升master性能,减少与master交互”。

GFS的可靠性
(1) 元数据的变更,会先写日志,以确保不会丢失;
(2) master会轮询探测chunk-server的存活性,保证有chunk-server失效时,chunk-server的状态是准确的;
(3) 元数据的修改是原子的,由master控制,master必须保证元数据修改的顺序性;
(4) 文件的正确性,通过checksum保证;
(5) 监控,快速发现问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值