首页 > 其他分享 >0-5 分布式文件系统

0-5 分布式文件系统

时间:2023-02-04 11:14:13浏览次数:69  
标签:-- chunk server write Master 分布式文件系统 备份

分布式文件系统 (GFS)

设计流程

文件位置

一个 chunk 备份到三个 chunk server 中

|---------------------------|
|          Master           |
|---------------------------|
| filename                  |
| chunk-01 -> CS1, CS3, CS4 |
| chunk-02 -> CS2, CS3, CS5 |
| chunk-03 -> CS1, CS2, CS3 | 
| filesize                  |
|---------------------------|
| ...                       |
|                           |
|                           |
|-------------------------------|
|      CS(Chunk Server)         |
|-------------------------------|
| filename chunk-xx -> offset1  | 
| filename chunk-xx -> offset2  | 
| ...                           |
|-------------------------------|
| offset1        64MB           |
| offset2        64MB           |
| ...                           |

写入

graph LR A(Client) --> | 1 write request | B B(Master) --> | 2 assign chunk servers | A A --> | 3 write | C(chunk server) A --> | 3 write | D(chunk server) A --> | 3 write | E(chunk server) C --> | 4 write finished | B D --> | 4 write finished | B E --> | 4 write finished | B

修改(非追加)

同写入

读取

graph LR A(Client) --> | 1 read request | B(Master) B --> | 2 chunk server's offset list | A A --> | 3 read | C(chunk server) A --> | 3 read | D(chunk server) A --> | 3 read | E(chunk server) C --> | 4 part of file | A D --> | 4 part of file | A E --> | 4 part of file | A

读完之后在 Client 将它们合并在一起.

扩展

Master

一般来说, 工业界 90% 是一个 Master.

双 Master

https://research.facebook.com/publications/apache-hadoop-goes-realtime-at-facebook/

多 Master

https://lamport.azurewebsites.net/pubs/paxos-simple.pdf

Chunk Server

判断磁盘是否损坏的方法, 在写入文件的时候就计算文章的 MD5 的值, 然后在读数据的时候重新计算文件的 MD5, 如果有变化, 则文件被修改了, 说明磁盘损坏.

MD5 的值直接写入到文件的最后就行, 写在一个 chunk (块) 的最后.

备份

一个文件有三个备份, 三个备份的地理位置选择: 同城2个放在一个机架上, 跨城1个.

如果一个 chunk 坏掉了, 那么就问一下 master 这个 chunk 的备份在哪里. 然后用同城的备份来恢复.

Master 使用心跳机制来确保 chunk server 可用.

写瓶颈的解决方案

Client 需要将每一个文件的每一个块都传输三次, 因为有三个备份. 这样就会导致 Client 出现写瓶颈. 解决方案是将一个文件传递给一个备份, 然后让这个备份复制到另外两个备份上.

怎么选择这个快备份的机器呢: 比较 Master 对于这个 chunk 给的三个 chunk server, 选择近的, 选择不忙的.

传输的时候 chunk server 挂了

告诉 Master, Master 会为这个文件块重新分配三个 Chunk Server.

面试

设计一个只读的 lookup service, 后台的数据是 10 billion 个 key-value pair, 服务形式是接收用户输入的 key, 返回对应的 value. 已知每个 key 的 size 是 0.1KB, 每个 value 的 size 是 1KB. 要求系统 QPS >= 5000, latency <= 200ms.

server 性能参数: 8X CPU cores, 32G memory, 6T disk. 任意数量的 server.

硬盘询道时间大概: 10ms. 磁盘读 1MB 的数据大概需要 30ms.

在硬盘中读取一次 value 的时间为: 10ms x 1KB/1MB x 30ms == 10ms, 在磁盘中读取一次 key 的时间为 10ms x 0.1KB/1MB x 30ms == 1ms. 在内存中读取的时间忽略不计. 10 billion 的 value 的大小: 10 billion x 1KB = 10TB, 10 billion 的 key 的大小: 10 billion x 0.1KB = 1TB.

这样我们假设每一台 server 都有全部的数据, 有两个 disk. 一个 server 有 32 G 的内存, 用来存放 key -- position, position 大概需要 8bit 就可以. 这样 40 台机器就有 1TB 内存, 就够了.

标签:--,chunk,server,write,Master,分布式文件系统,备份
From: https://www.cnblogs.com/geraldkohn/p/17091088.html

相关文章

  • 分布式文件系统seaweedfs搭建配置
    官方网站:https://github.com/chrislusf/seaweedfs/wiki/Getting-Startedseaweedfs是一个非常优秀的由golang开发的分布式存储开源项目。它是用来存储文件的系统,并且与......
  • 分布式文件系统之FastDFS
    目录结构:一分布式文件系统二 FastDFS入门三FastDFS环境搭建四 FastDFS在Java项目中开发示例五 FastDFS分布式文件系统集群一分布式文件系统分布式文件系统(D......
  • Google分布式文件系统GFS论文学习
    GFS作为最著名的分布式文件系统,首先具备了大规模、可扩展、适配大文件、自动运维等高级特性。虽然是比较早期的分布式文件系统,但是它里面的设计思想还是值得现代分布式系统......
  • 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
    一、安装Nginx和fastdfs-nginx-module安装Nginx请看:​​从零开始学Java-CentOS下安装Nginx​​,其实我只想放这一句话。但想想我还是一步一步写详细吧。1.下载Ngi......
  • 【FastDFS】分布式文件系统FastDFS
    一、参考资料​​FastDFS海量小文件存储解决之道-知乎​​​​FastDFS实战视频教程-分布式文件系统FastDFS详解-FastDFS从基础到集群实践_哔哩哔哩_bilibili​​​​芋道......
  • GFS分布式文件系统
     前言 文件系统:用于存储和管理文件的相关系统。存储系统类型存储技术块存储硬盘文件存储NFS、SISC、FTP对象存储OSS、S3(公有云)分布式存储GFS、......
  • GFS分布式文件系统
    一、GlusterFS概述1.1GlusterFS简介GlusterFS是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器......
  • GFS分布式文件系统
    一.GFS概述GlusterFs是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统......
  • GFS分布式文件系统
    一、GlusterFS概述1.1GlusterFS简介GlusterFS是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务......
  • GFS分布式文件系统
    一、文件系统简介1.1文件系统的组成接口:文件系统接口功能模块(管理、存储的工具):对对象管理里的软件集合对象及属性:(使用此文件系统的消费者1.2文件系统的作用从系......