• MooseFS学习-概述


    MFS(MooseFS)是一个容错的、网络分布式文件系统,是GFS的开源实现。它把数据分散在多个物理机上,对外展现为一个整体资源。

    支持的功能

    Unix的通用文件系统功能:目录树;记录POSIX文件属性(权限、最近读取、修改时间);支持特殊文件(块和字符设备、管道和套接口);符号链接和硬链接;根据IP和密码来设置读取文件的权限。

    特殊功能:高可靠(数据有多个备份存放在不同的机器上);通过增加新机器或硬盘可以动态扩展容量;回收在指定时间内删除的文件(有系统级的垃圾回收站);文件读写时也能进行一致性快照保存。

    四个组成单元

    管理服务器(master server):负责各个数据存储服务器的管理、文件读写调度、文件空间回收以及恢复、多节点拷贝。
    数据存储服务器(chunk server):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。
    元数据日志服务器(metalogger server):负责备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs ,以便于在master server 出问题的时候接替其进行工作。
    挂载或读取MFS文件的客户机(client computers):用mfsmount进程与管理服务器(读写文件元数据)、数据存储服务器(交换文件数据)通信。mfsmount基于fuse机制,在linux、freebsd,macos x等实现了fuse的操作系统上都能运行。

    优点

    高可用性:表现在chunkserver端任何文件可以设置多个数据备份,这样任何一个数据备份丢失,不会导致文件的丢失,避免单点或多点故障;在metalogger端会实时的同步master端的元数据信息,当master出现故障时,可以采用metalogger接管master提供的服务。

    高可扩展性:主要表现在数据存储可以支持在线的扩容,不会影响服务。

    高性能:表现在master端支持高并发的client读写请求处理,同时在client端对文件的读写时,master会采用就近原则分配chunkserver来进行读写操作,这样可以提高整个系统的读写性能。

    系统结构


    工作原理

    元数据存储同时存储在管理服务器的内存和磁盘上,二进制文件和log会传送到metalogger上以备份。文件会被切分成最大64MB的块,每块都以文件的形式存在各自的数据服务器上,通过配置冗余多份来实现高可靠。

    在挂载到MFS的客户机上操作文件,操作系统内核会把所有的操作传送给fuse模块,fuse与mfsmount进程通信。mfsmount进程通过网络与管理服务器和数据服务器通信,整个过程对用户是透明的。

    每当操作元数据的时候,mfsmount都会通知管理服务器,如创建文件、删除、读目录、改变文件属性、改变文件大小、读写数据开始时、获取文件元数据等。
    mfsmount会直接读取存有数据块的数据服务器;写文件完成后会通知管理服务器更新文件长度和最后修改时间。

    数据服务器间会互相通信备份数据,让一个文件在不同的机器上有适当数量的备份。



    补:FUSE(filesystem in userspace)-用户空间文件系统,完全在用户态实现的文件系统,通过linux的fuse内核模块实现。

  • 相关阅读:
    ZOJ 3713 In 7-bit (题意不好理解,十进制、二进制、十六进制的转换问题)
    C++ cout 如何保留小数输出
    ZOJ 3705 Applications 模拟
    Google Code Jam Round 1A 2015 Problem B. Haircut 二分
    --算法分析与设计--课程作业--【顺序统计】--【采用链表法散列表】--【开放地址法(双重散列)】
    C++获取当前时间和计算程序运行时间的方法
    【STL__set_的应用】
    ZOJ 3601 Unrequited Love 【STL__pair_的应用】
    Linux概念
    fragment创建
  • 原文地址:https://www.cnblogs.com/whuqin/p/4981978.html
Copyright © 2020-2023  润新知