MooseFS是一个分布式文件系统,其本身具有高可用性,高拓展性,开放源代码,高容错,等在数据的读写性能方面,通过dd测试,MooseFS也就是写入的速度稍微好于NFS,读上没有差别.

♥ 文章声明 ♥
该系列文章部分文字描述,整理于以下文献,化繁为简.
《鸟哥的Linux私房菜 (基础学习篇 第三版)》 - 作者:鸟哥
《Linux就该这么学》 - 作者:刘遄
《linux运维之道》- 作者:丁明一

  • MooseFS的文件系统结构体系可分为以下四种角色,分别对应不同的功能:
  • 1.管理服务器managing server (master)
  • 2.元数据日志服务器Metalogger server(Metalogger)
  • 3.数据存储服务器data servers (chunkservers)
  • 4.客户机挂载使用client computers

下面我们分别编译安装MFS的每个组件,实现一个企业环境的分布式文件系统.

实验环境与IP分配

[主机类型]       [主机IP]      [主机作用]Master-Server     192.168.22.195      主控服务器MetaLogger-Server  192.168.22.191      备份服务器Cunk-Server        192.168.22.192      存储节点1
Cunk-Server     192.168.22.193      存储节点2Client         192.168.22.194      挂载客户端

Master-Server配置

管理服务器managing server (master):负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝单个机器管理整个文件系统,用来存储记录每一个文件的Metadata(记录文件的大小、文件的属性、文件的位置,也包括非规则文件的系统,如目录、sockets、管道和设备),Master-Server相当于MFS的大脑,用于管理协调服务器之间正常工作,此处也就是主控服务器.

1.服务器上的/etc/hosts中添加下面指向,指明主服务器IP.

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.22.195 mfsmaster                #在原来的基础上添加这一条即可

2.源码编译安装Master-Server.

[root@localhost ~]# yum install -y gcc zlib zlib-devel                #安装依赖
[root@localhost ~]# groupadd mfs                                      #创建用户组
[root@localhost ~]# useradd -M -s /sbin/nologin -g mfs mfs            #创建用户并将其加入用户组[root@localhost ~]# tar –xzvf moosefs-3.0.99.tar.gz
[root@localhost ~]# cd moosefs-3.0.99/
[root@localhost ~]# ./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfschunkserver \
--disable-mfsmount#----------------------------------------------------------------------------------
#[参数解释]--prefix=/usr                   #指定主目录存放位置--sysconfdir=/etc               #指定配置文件存放位置--localstatedir=/var/lib        #存放二进制文件metadata和文本文件changelog--with-default-user=mfs         #指定用户--with-default-group=mfs        #指定组--disable-mfschunkserver        #关闭chunk-server--disable-mfsmount              #关闭挂载
#---------------------------------------------------------------------------------[root@localhost ~]# make && make install

3.成功安装Master以后,系统会在/etc/mfs目录自动生成样例配置文件,我们需要将此配置文件修改一下,去掉后缀.sample配置文件才会生效.

[root@localhost ~]# cd /etc/mfs/
[root@localhost ~]# cp -a mfsmaster.cfg.sample mfsmaster.cfg
[root@localhost ~]# cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@localhost ~]# cp -a mfsexports.cfg.sample mfsexports.cfg[root@localhost ~]# cd /var/lib/mfs
[root@localhost ~]# cp -a metadata.mfs.empty metadata.mfs

4.启动Master-Server服务和CGI监控服务.

[root@localhost ~]# /usr/sbin/mfsmaster start           #启动Master-Server
[root@localhost ~]# /usr/sbin/mfscgiserv                #启动监控服务

5.设置Mfsmaster和mfscgiserv进程开机自启动,此处将开机命令追加写入/etc/profile系统每次开机都会执行这条指令,从而实现开机自启动.

[root@localhost ~]# echo "/usr/sbin/mfsmaster start" >> /etc/profile
[root@localhost ~]# echo "/usr/sbin/mfscgiserv" >> /etc/profile

6.现在我们来测试一下,使用浏览器访问以下地址,成功的话会看到监控页面.

[root@localhost ~]# curl http://192.168.22.195:9425     #查看是否启动成功

MetaLogger-Server配置

元数据日志服务器Metalogger server(Metalogger):负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作,Metalogger server主要作用是主控服务器的备份,他的作用是起到主控服务器崩溃了它自动顶上,所以Metalogger server的安装和master server的安装大体是一样的,当然备份服务器不安装照样能使用,但是就失去了备份的功能.

1.服务器上的/etc/hosts中添加下面指向,指向主服务器IP(可选/如果不做第1步则要做第3步).

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.22.195 mfsmaster                #在原来的基础上添加这一条即可

2.源码编译安装Masterlog-Server.

[root@localhost ~]# yum install -y gcc zlib zlib-devel                #安装依赖
[root@localhost ~]# groupadd mfs                                      #创建用户组
[root@localhost ~]# useradd -M -s /sbin/nologin -g mfs mfs            #创建用户并将其加入用户组[root@localhost ~]# tar -xzvf moosefs-3.0.99.tar.gz
[root@localhost ~]# cd moosefs-3.0.99/
[root@localhost ~]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib \
--with-default-user=mfs --with-default-group=mfs \
--disable-mfschunkserver --disable-mfsmount#----------------------------------------------------------------------------------
#[参数解释]--prefix=/usr                   #指定主目录存放位置--sysconfdir=/etc               #指定配置文件存放位置--localstatedir=/var/lib        #存放二进制文件metadata和文本文件changelog--with-default-user=mfs         #指定用户--with-default-group=mfs        #指定组--disable-mfschunkserver        #关闭chunk-server--disable-mfsmount              #关闭挂载
#----------------------------------------------------------------------------------[root@localhost ~]# make && make install

3.Masterlog-Server修改主配置文件,指定主服务器IP.

#[开启配置文件]
#----------------------------------------------------------------------------------
[root@localhost ~]# cd /etc/mfs
[root@localhost ~]# cp -a mfsmetalogger.cfg.sample mfsmetalogger.cfg
#----------------------------------------------------------------------------------#[配置参数]
#----------------------------------------------------------------------------------
[root@localhost ~]# vim /etc/mfs/mfsmetalogger.cfgMETA_DOWNLOAD_FREQ = 2                      #元数据备份文件下载请求频率(默认24小时)
MASTER_HOST = 192.168.22.195               #指定Master-Server地址(主控地址)
#----------------------------------------------------------------------------------

4.启动Metalogger server备用服务器进程,并设置开机自启动.

[root@localhost ~]# /usr/sbin/mfsmetalogger start
[root@localhost ~]# echo "/usr/sbin/mfsmetalogger start" >> /etc/profile

5.检查从服务器是否启动成功并同步了数据.

[root@localhost ~]# cd /var/lib/mfs    #查看是否有文件产生(产生了文件说明成功)
[root@localhost ~]# lsof -i :9419      #检查端口是否开启

Cunk-Server配置

数据存储服务器data servers (chunkservers):负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.真正存储数据的节点,扩建它增加容量,可以多台每个文件可能在不同服务器间拷贝.

1.Cunk-server服务器上的/etc/hosts中添加下面指向,指明主服务器IP
(可选/如果不做第1步则要做第3步).

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.22.195 mfsmaster                #在原来的基础上添加这一条即可

2.源码编译安装Cunk-Server.

[root@localhost ~]# yum install -y gcc zlib zlib-devel                 #安装依赖
[root@localhost ~]# groupadd mfs                                       #创建用户组
[root@localhost ~]# useradd -M -s /sbin/nologin -g mfs mfs             #创建用户并将其加入用户组[root@localhost ~]# tar -xzvf moosefs-3.0.99.tar.gz
[root@localhost ~]# cd moosefs-3.0.99/
[root@localhost ~]# ./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfsmaster#----------------------------------------------------------------------------------
#[参数解释]--prefix=/usr                  #指定主目录存放位置--sysconfdir=/etc              #指定配置文件存放位置--localstatedir=/var/lib       #存放二进制文件metadata和文本文件changelog--with-default-user=mfs        #指定用户--with-default-group=mfs       #指定组--disable-mfschunkserver       #关闭chunk-server--disable-mfsmount             #关闭挂载
#----------------------------------------------------------------------------------[root@localhost ~]# make && make install

3.拷贝 Chunk-Server 服务所需的配置文件(开启配置文件),去掉.sample后缀开启.

[root@localhost ~]# cd /etc/mfs
[root@localhost ~]# cp -a mfschunkserver.cfg.sample mfschunkserver.cfg
[root@localhost ~]# cp -a mfshdd.cfg.sample mfshdd.cfg

4.修改Chunk-Server 配置文件,指定服务器地址,端口,和共享的磁盘.

[root@localhost ~]# vim /etc/mfs/mfschunkserver.cfg    MASTER_HOST = 192.168.22.195              #指明Master-Server服务器地址
MASTER_PORT = 9420                        #指明Master-Server端口
HDD_CONF_FILENAME = /etc/mfs/mfshdd.cfg   #指明哪个配置文件来配置共享磁盘的

5.编辑/etc/mfs/mfshdd.cfg,在最后面添加下面的文本行,并创建相应挂载目录.

在配置文件 mfshdd.cfg 中我们给出了用于客户端挂接 MooseFS 分布式文件系统根分区所使用的共享空间位置.
建议在Chunk-Server上划分单独的空间给 MooseFS 使用,这样做的好处是便于管理剩余空间.
此处我们假定要使用一个共享点/mnt/mfschunk(如果没有,请先创建共享点).

#----------------------------------------------------------------------------------
#[写入配置][root@localhost ~]# echo "/mnt/mfschunk" >>/etc/mfs/mfshdd.cfg #Chunk-Server共享的目录
#----------------------------------------------------------------------------------
#[创建共享目录][root@localhost ~]# mkdir -p /mnt/mfschunk
[root@localhost ~]# chown -R mfs:mfs /mnt/mfschunk
#----------------------------------------------------------------------------------

6.启动 Cunk-Server 服务,并设置开机自启动.

[root@localhost ~]# /usr/sbin/mfschunkserver start
[root@localhost ~]# echo "/usr/sbin/mfschunkserver start" >> /etc/profile

7.现在通过浏览器访问,主控地址.

网页中,应该可以看见这个 MooseFS 系统的全部信息(包括主控 master和存储服务 chunkserver)
在Disks上可以看到我们的挂载/ghost目录了

Client客户端配置

实际的使用节点,例如:每台Apache都挂载上共享目录,即可实现所有Apache服务器全部共享一个目录

1.在/etc/hosts中添加下面指向,指明主服务器IP(可选/不指定则要通过IP挂载).

[root@localhost ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.22.195 mfsmaster                #在原来的基础上添加这一条即可

2.为了挂载基于MooseFS的文件系统,需要所有客户端安装FUSE包.

[root@localhost ~]# tar -xzvf fuse-2.9.3.tar.gz
[root@localhost ~]# cd fuse-2.9.3/
[root@localhost ~]# ./configure
[root@localhost ~]# make && make install

3.Linux下执行下面命令,不然编译mfsmount会报Fuse不存在的错.

[root@localhost ~]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

4.编译安装客户端软件mfsmount.

[root@localhost ~]# yum install -y gcc zlib zlib-devel                   #安装依赖
[root@localhost ~]# groupadd mfs                                         #创建用户组
[root@localhost ~]# useradd -M -s /sbin/nologin -g mfs mfs               #创建用户并将其加入用户组[root@localhost ~]# tar -xzvf moosefs-3.0.99.tar.gz
[root@localhost ~]# cd moosefs-3.0.99/
[root@localhost ~]# ./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var/lib --with-default-user=mfs \
--with-default-group=mfs --disable-mfsmaster \
--disable-mfschunkserver#----------------------------------------------------------------------------------
#[参数解释]--prefix=/usr                   #指定主目录存放位置--sysconfdir=/etc               #指定配置文件存放位置--localstatedir=/var/lib        #存放二进制文件metadata和文本文件changelog--with-default-user=mfs         #指定用户--with-default-group=mfs        #指定组--disable-mfschunkserver        #关闭chunk-server--disable-mfsmount              #关闭挂载
#----------------------------------------------------------------------------------[root@localhost ~]# make && make install

5.假定客户端的挂接点是 /media,我们将以下面的指令来使用 MooseFS 分布式系统.

[root@localhost ~]# /usr/bin/mfsmount/mfsmount /media -H mfsmaster     #不指定挂接地址
[root@localhost ~]# /usr/bin/mfsmount/mfsmount /media -H 192.168.1.12  #挂接地址挂载(指定主存储IP)#上面的解释,用/usr/bin/mfsmount将192.168.22.195的资源挂载到本地/media下
#挂载成功后,执行命令 df -h 查看分区情况

6.应该写入配置文件/etc/fstab或者/etc/profile开机自动挂载.

[root@localhost ~]# echo "/usr/bin/mfsmount /media -H 192.168.22.195" >> /etc/profile

MooseFS常用功能

1.数据误删除恢复操作,垃圾回收站机制.

[root@localhost ~]# mfssettrashtime  64800  /ghost/l1.txt       #给1.txt设置一个保存时间
[root@localhost ~]# mkdir /back
[root@localhost ~]# chown mfs.mfs /back
[root@localhost ~]# mfsmount -m /back -H 192.168.22.195         #指定服务器IP[root@localhost ~]# find . -name *1.txt*                        #搜索删除的1.txt
[root@localhost ~]# mv 002/00000002\|1.txt  /back/trash/undel/  #拿到undel队列里,就恢复了

2.快照功能(提取数据).

[root@localhost ~]# mkdir  /back
[root@localhost ~]# chown  mfs.mfs  back/
[root@localhost ~]# mfsmakesnapshot  1.txt  back/               #拷贝1.txt的源信息到back/目录下
[root@localhost ~]# cd back/                                    #拷贝出来的数据

3.冗余goal设置(自定义备份个数).

[root@localhost ~]# mfsgetgoal /ghost/1.txt                    #查看1.txt的冗余数
[root@localhost ~]# mfsfileinfo /ghost/1.txt                   #查看1.txt的冗余分布在那几台机器上
[root@localhost ~]# mfssetgoal     3 /ghost/1.txt                 #设置1.txt的冗余个数(要备份几份)

4.还原 master数据(主服务器的宕机/数据丢失/恢复数据).

我们要去从服务器,将从里的数据拷贝到主上,并重新建立文件索引,即可恢复丢失文件

[root@localhost ~]# scp /usr/local/mfs/var/mfs/*  root@10.10.10.12:/usr/local/mfs/var/mfs
[root@localhost ~]# mfsmaster -a                               #自动恢复重新建立索引
[root@localhost ~]# netstat -an |grep "9419"                   #检查是否开启成功

部署MooseFS分布式文件系统相关推荐

  1. Redhat5.4 系统上部署 MooseFS分布式文件系统的部署

    第一,               分布式文件系统的介绍 分布式文件系统有数十种方案可供选择.如:ustre ,hadoop,Pnfs 等.还有下面要实现的moosfes moosfes 文件系统具有 ...

  2. SHELL脚本自动化部署MFS分布式文件系统

    前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...

  3. Moosefs分布式文件系统的搭建与维护

    一.文件系统选型 在一般的生产环境中,NFS共享存储算是比较常用的,简单.方便,但随着业务的不断扩展,数据量也是承爆发式的增长,因而对存储这些数据的文件系统要求也越来越高了,分存式.可扩展.大容量,这 ...

  4. 存储调研:MooseFS分布式文件系统体系结构

    1.    简介 1.1.关于MooseFS MooseFS是一个容错的网络分布式文件系统.将数据分散在多个物理服务器中,但对于用户其实是作为一个可见资源.对于标准的文件操作MooseFS充当类似Un ...

  5. moosefs分布式文件系统

    环境搭建 [root@server1 ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repo ...

  6. fastdfs文件上传 read timeout_一文看懂centos7系统部署FastDFS 分布式文件系统

    概述 续前面对fastdfs部署方面的内容,今天主要介绍一下nginx的部署方面,下面一起来看看吧~ IP规划 一.安装Nginx(148) Nginx需与Storage安装在一台机上. 1.编译安装 ...

  7. Rook下快速部署ceph分布式文件系统

    由于CRD资源版本不匹配的问题,参考下面文章需要切换到0.9分支 https://github.com/rook/rook/issues/2338 $ git clone https://github ...

  8. 案例部署——GlusterFS分布式文件系统群集

    前言:大部分分布式解决方案都是通过元服务器存放目录结构等元数据,元数据服务器提供了整个分布式存储的索引工作.但是一单元数据服务器损坏,整个分布式存储页将无法工作.本次将介绍一款无元服务器的分布式存储解 ...

  9. mfs 分布式文件系统

    mfs权威指南(moosefs)分布式文件系统一站式解决方案(部署,性能测试)不断更新 http://bbs.chinaunix.net/thread-1644309-1-1.html 1. 我在性能 ...

最新文章

  1. 深度学习模型压缩与加速综述!
  2. 如何为某些HTML标记存储任意数据
  3. c++实现平面上的形状编辑
  4. SET IDENTITY_INSERT [Table] [ON|OFF]
  5. python3.4 使用pymysql 连接mysql数据库
  6. 移动端触屏网页的触摸事件
  7. Go性能测试benchmark
  8. 基于elementui的input的二次封装(非常实用)
  9. Vue.directive自定义指令
  10. linux 运行选择哪个cpu核,判断Linux进程在哪个CPU核运行的方法
  11. Opencv--CvMat声明和使用
  12. 基于MATLAB步态算法仿真的六足仿生机器人
  13. 离散数学 习题篇 —— 集合相等与子集关系判断
  14. html 字体样式及结果,css font-family 的种类、安全字体及写法(附样式图)
  15. 小米6手机关于 手机重启后密码策略更改 密码错误 及wifi解决办法
  16. mysql之(1366,Incorrect string value:'\\xF0\\x9F\\x98\\x82...' for column 'content' at row 1)20
  17. DeepLearning4J入门——使用LSTM进行大盘回归
  18. Python爬虫学习手册
  19. 统计学方法机器学习实战(二) K近邻算法
  20. Pr学习DAY2-----详解“项目面板“与“时间轴面板“

热门文章

  1. http状态码查询表(转载)
  2. Linux文件搜索命令find、which和whereis应用
  3. java放大缩小_如何用Java实现图形的放大和缩小?
  4. it企业实习_IT企业实习心得体会范文
  5. 如何记账能简单高效,记账全攻略来了
  6. 『迷你教程』识别人类活动的一维卷积神经网络模型,附完整代码
  7. 基于高德地图JsAPI进行浏览器精确定位,实现手机端考勤打卡功能
  8. 职业规划-Web前端开发工程师
  9. 批量wod转pdf、批量excle转pdf、pdf转excle、word实现方案
  10. PMCAFF微课17期 - 教你如何用数据玩转移动互联网APP运营(笔记下载)