zoukankan      html  css  js  c++  java
  • Moosefs基本概念

          Moosefs概念

    • MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。从其对文件操作的情况看,MooseFS就相当于一个类UNIX文件系统。

    • MooseFS各组件间时间相差不能超过1s

          Moosefs基础框架

    • Master(元数据服务器): 一台。负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝。单个机器管理整个文件系统,用来存储记录每一个文件的Metadata(记录文件的大小、文件的属性、文件的位置,也包括非规则文件的系统,如目录、sockets、管道和设备)。
    • Metalogger(元数据日志服务器): 多台。负责备份Master服务器的changelog。文件类型为 changelog.*.mfs ,以便在Master出问题时接替其工作
    • Chunk(数据存储服务器): 多台。服从Master Server 的安排,定期向 Master Server 发送自己的状态信息,除此之外,还能向客户提供数据存储空间,能够向客户传输数据。
    • Client(客户端挂载): 多台。通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器,使用起来和本地文件系统一样

          

          Moosefs组件端口列表

    组件角色 端口列表 端口描述
    mfsmaster 9419 监听metalogger连接
    9420 监听chunkserver连接
    9421 监听client连接
    chunkserver 9422 监听client连接

         

          Moosefs分布式读写

    •   读

                下图中Master Server用三角形表示,Chunk Server用圆形表示,Client 用方形表示。

    整个读过程有以下四个步骤:
    1. 首先client客户端访问主服务器master,获取文件实体的位置等相关信息。
    2. 主服务器master查询缓存记录,把文件实体的位置等相关信息发给client客户端。
    3. Client客户端根据拿到的信息去访问对应的存储实体数据的服务器(data servers或者 chunk servers)。
    4. 存储实体数据的服务器(data servers或者 chunk servers)把对应的数据返回给Client客户端。



    •   写

    图中Master Server用三角形表示,Chunk Server用圆形表示,Client用方形表示。

    整个写过程要分为下面八个步骤:
    1. Client客户端访问主服务器master,请求写入数据。
    2. 主服务器master查询缓存记录,如果是新文件,则会联系后面的数据服务器创建对应的chunk对象准备存放文件。  
    3. 数据服务器返回创建对应的chunk对象成功给主服务器
    4. 主服务器master把文件实体的位置等相关信息发给client客户端。
    5. Client客户端访问对应的数据服务器写数据
    6. 数据服务器之间进行数据同步,互相确认成功
    7. 数据服务器返回成功写入信息给Client客户端
    8. Client客户端回报给主服务器master写入结束







     
  • 相关阅读:
    [Groovy] List里的Inject方法
    [Groovy]你意想不到的用法
    buildr学习笔记(1): buildr的安装
    [Groovy]如何在Groovy里得到命令行的返回值
    underscore.js
    [Groovy] *符号在Groovy里的一种特殊用法
    [Groovy]如何定义和使用一个Java里的Enum类型
    [Ruby]$: 是什么意思?
    Optional Parameter/Default Values
    如何在Rake 的Task里加入多个输入参数
  • 原文地址:https://www.cnblogs.com/brownyangyang/p/9003890.html
Copyright © 2011-2022 走看看