当前位置: 首页 > news >正文

MFS分布式文件系统服务搭建

分布式原理

  • 通过计算机网络与节点相连,就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。
  • 分布式文件系统的好处是集中访问、简化操作、数据容灾以及提高文件的存取性能。

MFS原理

  • 元数据服务器(master):在整个体系中负责管理文件系统,维护元数据。
  • 元数据日志服务器(metalogger):备份master服务器的变化日志文件,文件类型为changelog_ml. * . mfs ,当master服务器数据丢失或者损坏时,可以从日志服务器中取得文件 ,进行恢复。
  • 数据存储服务器(chunkserver):真正的存储数据的服务器,存储文件是,会把文件分块保存,并在数据服务器之间进行复制,数据服务器越多,能使用的“容量”越大,可靠性就越高,性能就越好
  • 客户端(client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。

MFS读取数据的处理过程

  • 客户端向元数据服务器发出读请求
  • 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端
  • 客户端向已知的Chunk Server请求发送数据
  • Chunk Server向客户端发送数据

MFS写入数据的处理过程

  • 客户端向元数据服务器发送写入请求。
  • 元数据服务器与Chunk Server进行交互(只有当所需的分块Chunk存在的时候才进行交互),但元数据服务器只在 某些服务器创建新的分块chunks,创建成功后由Chunk Servers告知元数据服务器操作成功。
  • 元数据服务器告知客户端,可以在哪个Chunk Server的那些chunks写入数据。
  • 客户端向指定的Chunk Server写入数据。
  • 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。
  • 客户端告知元数据服务器本次写入完毕。

MFS优势

  • 高可用性:没有单点故障也称为无SPOF配置。文件系统的元数据在物理冗余服务器上保存为两个或多个副本。用户数据冗余地分布在系统中的存储服务器上。
    低成本的数据安全:MooseFS使用户能够节省大量硬盘空间,保持相同的数据冗余级别。在大多数常见情况下,将节省至少55%的硬盘空间.
  • 可扩展性:存储可以扩展到16字节(~16000千兆字节),这使我们可以存储超过20亿个文件
    高性能:旨在支持高性能I/O操作。用户数据可以在许多存储节点上同时读取/写入,从而避免单个中央服务器或单个网络连接瓶颈。

实验环境

主机操作系统IP地址
Master ServerCentOS-7-x86_64192.168.144.110
MetalLogger ServerCentOS-7-x86_64192.168.144.112
Chunk Server1CentOS-7-x86_64192.168.144.111
Chunk Server2CentOS-7-x86_64192.168.144.113
ClientCentOS-7-x86_64192.168.144.114

实验部署

安装方式

  • 根据官方网站提供的安装方式,我们可以按照官方提供的方式安装,简易也节约时间。

MFS分布式文件系统服务搭建

1、搭建Master Server

  • 按上图方式安装完成Master Server后,直接启动即可。

mfsmaster start

  • 若是需要停止

mfsmaster -s

2、搭建MetaLogger Server

  • 按官方提供安装方式安装。
  • 安装完成后,需要此台服务器监控master。

vim /etc/mfs/mfsmetalogger.cfg

MASTER_HOST = 192.168.144.110       //添加指向master的IP地址
  • 启动服务即可。

mfsmetalogger start

  • 若想停止服务。

mfsmetalogger -s

3、搭建chunk server

  • 本实验有两台chunkserver,搭建步骤完全相同
  • 安装方式如官方方式

vim /etc/mfs/mfschunkserver.cfg

MASTER_HOST = 192.168.144.110   //提供存储给master

vim /etc/mfs/mfshdd.cfg

/data     //添加一行,在这里/data是一个给MFSmaster的分区,实际生产环境中最好使用独立的分区或磁盘挂载到此目录

mkdir /data/
chown -R mfs.mfs /data/ #更改属主属组

  • 完成如上配置后,chunkserver算是配置完成,启动即可。

mfschunkserver start

  • 若想停止服务。

mfschunkserver -s

4、客户端配置

  • 安装方式如官方方式。

  • 客户端安装完成后,创建挂载master提供空间的目录。

mkdir /abc
mfsmount -H 192.168.144.110 /abc

  • 挂载完成后,查看挂载状态,如下图所示

MFS分布式文件系统服务搭建

5、客户端MFS常用操作

  • mfsgetgoal命令常用来查询文件被复制的份数,-r命令可以对整个目录进行递归,goal是指文件被复制的份数。

    mfsgetgoal -r /abc/

/abc/:
 files with goal                2 :          1
 directories with goal          2 :          1
  • mfssetgoal命令用来设置文件被复制的份数,生产环境chunkserver节点数量至少大于2,文件副本数量小于等于chunkserver服务器的数量。

mfssetgoal -r 2 /abc/

/abc/:
 inodes with goal changed:                       0
 inodes with goal not changed:                   2
 inodes with permission denied:                  0

mfsgetgoal -r /abc/

/abc/:
 files with goal                2 :          1
 directories with goal          2 :          1
  • 创建文件测试如下:

cd /abc
touch test
mfsgetgoal /abc/

/abc/: 2

6、MFS监控

  • MFscgiserv使用Python编写的一个web服务器,监听端口为9425,可以在master上通过命令启动。

mfscgiserv

  • 在客户端上通过浏览器访问http://192.168.144.110:9425

MFS分布式文件系统服务搭建

转载于:https://blog.51cto.com/13659253/2150762

相关文章:

  • redis系列:通过文章点赞排名案例学习sortedset命令
  • 自抗凝透析器研究取得系列进展
  • (转)visual stdio 书签功能介绍
  • 如何高效学习和工作(撸代码)
  • python代码-leetcode1 两数相加
  • WPF 简洁的主界面
  • PowerDesigner使用小总结
  • 用开源技术巧解代账公司开票据难题
  • mysql 主从同步详细配置教程
  • cURL error 60: SSL certificate problem...
  • OSPF动态路由重分发实验
  • 数据库名称
  • 分库分表的面试题5
  • nginx配置.htaccess伪静态
  • pip更改国内源
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • GitUp, 你不可错过的秀外慧中的git工具
  • Gradle 5.0 正式版发布
  • IndexedDB
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • mongodb--安装和初步使用教程
  • MySQL数据库运维之数据恢复
  • vue-router 实现分析
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊redis的数据结构的应用
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 漂亮刷新控件-iOS
  • 如何解决微信端直接跳WAP端
  • 手写一个CommonJS打包工具(一)
  • 算法-图和图算法
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 小程序01:wepy框架整合iview webapp UI
  • 小试R空间处理新库sf
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)(1.9) MSP (version 4.2)
  • (3)nginx 配置(nginx.conf)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二)丶RabbitMQ的六大核心
  • (翻译)terry crowley: 写给程序员
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • 、写入Shellcode到注册表上线
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET Core 版本不支持的问题