探索谷歌的秘密花园:Google文件系统GFS之旅(Google File System)

文章目录

  • 🏘️GFS系统架构
    • GFS系统节点类型
    • GFS实现机制
  • 🍎GFS特点
    • 采用中心服务器模式
    • 不缓存数据
    • 在用户态下实现
    • 只提供专用接口
  • 容错机制
    • ⚒️Master容错机制
    • 🔄 Chunk Server容错
  • 🛠 系统管理技术

🏘️GFS系统架构

  • 大型分布式文件系统
  • Google的GFS采用廉价的商用机器构建,对硬件设施要求不高
  • GFS将容错交给文件系统完成,利用软件的方法解决系统可靠性问题
    在这里插入图片描述

在这里插入图片描述

GFS系统节点类型

  • GFS将整个系统节点分为三类角色
    在这里插入图片描述
  • Client:GFS提供给应用程序的访问接口,以库文件的形式提供
  • Master是GFS的管理节点,负责整个文件系统的管理,逻辑上只有一个
  • Chunk Server负责具体的存储工作,数据以文件的形式保存,可以有多个,其数目直接决定了GFS的规模

GFS实现机制

  1. 客户端与Master节点交互:
    • 客户端首先访问Master节点
    • 获取交互的Chunk Server信息
  2. 控制流与数据流的分离:
    • 客户端与Master: 仅存在控制流,无数据流
      • 🚀 降低了Master的负载
    • 客户端与Chunk Server: 直接进行数据流传输
      • 📈 由于文件分成多个Chunk分布式存储
      • 🚀 客户端可以同时访问多个Chunk Server
      • 📊 实现系统I/O的高度并行,提高系统整体性能
访问
获取Chunk Server信息
控制流
数据流
数据流
数据流
存储Chunk
存储Chunk
存储Chunk
客户端
Master节点
Chunk Server 1
Chunk Server 2
Chunk Server 3
Chunk 1
Chunk 2
Chunk 3

🍎GFS特点

采用中心服务器模式

  • 优点:

    • ✔️ 方便地增加Chunk Server
    • ✔️ Master掌握系统内所有Chunk Server的情况,方便进行负载均衡
    • ✔️ 不存在元数据的一致性问题
  • 缺点:

    • ❗ Master极易成为整个系统性能和可靠性上的瓶颈
  • 应对机制:

    • 🛠️ 控制元数据规模
    • 🛠️ 对Master进行远程备份
    • 🛠️ 控制信息和数据分流

不缓存数据

  • 客户端的文件操作大多是流式读写,使用Cache对性能提高不大

  • Chunk Server上数据以文件形式存储,本地的文件系统自然会进行缓存

  • GFS对存储在Master中的元数据采取缓存策略:

    • 🚀 Master需要频繁操作元数据,直接保存在内存里以提高操作的效率
    • 🚀 采用相应的压缩机制降低元数据占用空间大小,提高内存利用率

在用户态下实现

  • 利用POSIX编程接口存取数据,降低了实现难度,提高通用性
  • POSIX接口提供功能丰富,不受内核编程限制
  • 用户态下有多种调试工具,便于调试
  • Master和Chunk Server作为进程运行,不影响操作系统整体稳定性
  • GFS和操作系统运行在不同的空间,耦合性降低,方便独立升级

只提供专用接口

  • 降低了实现难度,直接在应用层实现
  • 根据应用特点提供特殊支持
  • 专用接口减少了操作系统的上下文切换

容错机制

⚒️Master容错机制

在这里插入图片描述

  • 当Master发生故障时,在磁盘数据保存完好的情况下,可以迅速恢复以上元数据
  • 为防止Master彻底死机的情况,GFS还提供Master远程的实时备份

预防措施
Master故障
迅速恢复元数据
命名空间 目录结构
Chunk与文件名映射表
Chunk副本位置信息
Master远程实时备份

🔄 Chunk Server容错

  • 副本机制 📦: GFS采用副本的方式实现Chunk Server的容错,每一个Chunk有多个存储副本(默认为三个)
  • 写入确认 ✅: 对于每一个Chunk,必须将所有的副本全部写入成功,才视为成功写入。
  • 自动复制副本 🔄: 相关的副本出现丢失或不可恢复等情况,Master自动将该副本复制到其他Chunk Server。
  • 文件与Chunk 📂: GFS中的每一个文件被划分成多个Chunk,Chunk的默认大小是64MB。
  • Block与校验和 🛠️: 每一个Chunk以Block为单位进行划分,大小为64KB,每一个Block对应一个32bit的校验和。

🛠 系统管理技术

  • 大规模集群安装技术 🌐: GFS集群中通常有非常多的节点,需要相应的技术支撑。
  • 故障检测技术 🔍: GFS构建在不可靠廉价计算机之上的文件系统,由于节点数目众多,故障发生十分频繁。
  • 节点动态加入技术 ➕: 新的Chunk Server加入时,只需裸机加入,大大减少GFS维护工作量。
  • 节能技术 💡: Google采用多种机制降低服务器能耗,如采用蓄电池代替昂贵的UPS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/537858.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA开启Run Dashboard

1、Run Dashboard是什么,为什么要使用 Run Dashboard 是 IntelliJ IDEA 中的一个工具窗口,用于管理和监视项目中正在运行的应用程序和配置。它提供了一种集中管理运行和调试过程的方式,可以让开发人员更方便地查看和控制正在运行的应用程序。…

kubernetes-污点和容忍

kubernetes-污点和容忍 kubernetes-污点和容忍1、什么是污点(Taint)2、什么是容忍度(Toleration)3、为什么master节点上不跑业务pod4、这种打污点让我想到了通过nodename可以指定node节点5、怎么打污点5.1、基本用法5.2、查了一下chat5.3、effect污点效果的三种状态5.4、打标签…

SQLite—免费开源数据库系列文章目录

SQLite系列相关文章较多特开本文为了便于读者阅读特写了本索引和目录之用本文将不断更新中有需要的读者可以收藏本文便于导航到各个专题( 持续更新中......)。收藏一篇等于收藏一个系列文章 简介类: SQLite——世界上部署最广泛的免费开源数据库(简介&…

一站式数据采集物联网平台:智能化解决方案,让数据管理更高效、更安全

JVS物联网平台的定位 JVS是企业信息化的“一站式解决方案”,其中包括了基础的数字化底座、各种企业级能力、企业内常见的应用,如下图所示: 整体平台能力层有三大基础能力: 低代码用于业务的定义;数据分析套件用于数据的自助式分…

渗透某巨型企业某个系统的奇葩姿势

前言 这个月都在做一个巨型合作企业的渗透测试,这个系统本无方式getshell,得亏我心够细,想的多,姿势够骚。 文中重码,且漏洞已修复。 过程 找到getshell点 目标系统功能很少,基本上就是一个展示页面&a…

C# EPPlus导出dataset----Excel2绘制图像

一、生成折线图方法 /// <summary> ///生成折线图 /// </summary> /// <param name="worksheet">sheet页数据 </param> /// <param name="colcount">总列数</param> /// &l…

如何通过libusb直接向zebra打印机发送zpl,跨平台win/linux

环境&#xff1a;windows & linux & Zebra打印机gt820 windows: 之前安装了Zebra打印机官方驱动&#xff0c;所以先卸载掉驱动。再安装Zadig&#xff0c;用Zadig工具来安装WinUSB驱动。 zadig下载&#xff1a;Zadig - USB driver installation made easy 记住这两个数…

C#制作软件时窗体的弹出与嵌入

文章目录 一、窗体的弹出二、窗体的嵌入 一、窗体的弹出 这里面我们以Windows窗体应用程序为例&#xff0c;这里面达到的效果如下&#xff1a; 点击指定按钮&#xff0c;弹出目标窗口。接下来我们看具体操作&#xff1a; 这是我们的主窗体&#xff1a; 接下来我们需要在这个…

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解

学习视频&#xff1a;Faster-RCNN理论合集 概念辨析 在目标检测中&#xff0c;proposals和anchors都是用于生成候选区域的概念&#xff0c;但它们在实现上有些许不同。 Anchors&#xff08;锚框&#xff09;&#xff1a; 锚框是在图像中预定义的一组框&#xff0c;它们通常以…

单据分页的实现

单据分页的实现 1. AceWzcgfkjtMaintainProxy.java package nc.ui.jych.wzcgfkjt.ace.serviceproxy;import nc.bs.framework.common.NCLocator; import nc.itf.jych.IWzcgfkjtMaintain; import nc.ui.uif2.components.pagination.IPaginationQueryService; import nc.vo.jych.…

《系统架构设计师教程(第2版)》第6章-据库设计基础知识-03-关系数据库设计

文章目录 0. 设计的基本步骤0.1 用户需求分析0.2 概念结构设计0.3 逻辑结构设计0.4 物理结构设计0.5 数据库实施阶段0.6 数据库运行和维护阶段 1. 数据需求分析1.1 概述1.2 需要获取的需求 2. 概念结构设计2.1 概述2.2 E-R方法2.3 概念结构设计工作步骤2.3.1 选择局部应用2.3.2…

Stable Diffusion 模型下载:Juggernaut(主宰、真实、幻想)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 该模型是一个真实模型&#xff0c;并且具有幻想和创意色彩。 作者述&#xff1a;我选取了…