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

  • 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 存储节点2 Client 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.cfg META_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. 在CentOS上安装部署MooseFS分布式文件系统

    参考资料: http://www.moosefs.org/tl_files/manpageszip/moosefs-step-by-step-tutorial-cn-v.1.1.pdf 环境介绍:OS ...

  2. centos7下部署FastDFS分布式文件系统

    前言 项目中用到文件服务器,有朋友推荐用FastDFS,所以就了解学习了一番,感觉确实颇为强大,在此再次感谢淘宝资深架构师余庆大神开源了如此优秀的轻量级分布式文件系统,本篇文章就记录一下FastDFS ...

  3. 关于Linux单机、集群部署FastDFS分布式文件系统的步骤。

    集群部署:2台tarcker服务器,2台storage服务器. 192.168.201.86   ---------(trackerd+storage+nginx) 192.168.201.87   ...

  4. ceph_deploy部署ceph分布式文件系统

    1.前期准备:centos6.5 minimal版本3台 选择其中一台作为一个安装节点,能无密码登录其他机器.ssh-keygen ssh-keygen -i ~/.ssh/id_rsa.pub no ...

  5. MooseFS分布式文件系统介绍及安装教程详解

    MFS系统由4个部分构成:master.metalogger.chunkserver.client. 1.Master —— mfs的大脑,记录着管理信息,比如:文件大小,存储的位置,份数等,和inn ...

  6. MFS分布式文件系统

    一.MFS概述: MooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统一样,包含了层级结构(目录树 ...

  7. CentOS7搭建FastDFS V5.11分布式文件系统-第三篇

    1.测试 前面两篇博文已对FastDFS的安装和配置,做了比较详细的讲解.FastDFS的基础模块都搭好了,现在开始测试下载. 1.1 配置客户端 同样的,需要修改客户端的配置文件: /etc/fdf ...

  8. CentOS7搭建FastDFS V5.11分布式文件系统(三)

    1.测试 前面两篇博文已对FastDFS的安装和配置,做了比较详细的讲解.FastDFS的基础模块都搭好了,现在开始测试下载. 1.1 配置客户端 同样的,需要修改客户端的配置文件: /etc/fdf ...

  9. CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程

    1.1 FastDFS的应用场景 FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片.视频.文档等文件.对于互联网应用,和其他分布式文件系统相比,优势非常明显.其中 ...

  10. 分布式文件系统之 FastDFS

    FastDFS 百度百科 FastDFS 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合 ...

随机推荐

  1. 【白话科普】聊聊 DNS 的那些小知识

    你是否在上网时,遇到过这样的情况:QQ 能正常发送消息,但是网页却打不开,查看网络连接又正常显示.面对这种情况很多小伙伴都感到有些无措.那究竟要怎么处理,这究竟是怎么回事呢? 上网查询得知,一般情况下 ...

  2. 自用 IntelliJ IDEA Vim 插件配置

    Prefrence: https://einverne.github.io/post/2020/12/my-idea-vimrc-config.html https://gist.github.com ...

  3. Step by step guide to becoming a C++ developer in 2023

    https://roadmap.sh/cpp https://roadmap.sh/backend

  4. 从青铜到王者,揭秘 Serverless 自动化函数最佳配置

    [福利活动]1分钟Serverless部署PHP商城实验班上线啦! 带你体验如何使用 Serverless 应用引擎 SAE 快速部署一个PHP商城,并体验 SAE 带来的弹性伸缩.应用监控等强大能力 ...

  5. mybatis-plus-QueryWrapper like的用法

    mybatis-plus 中想写like的语句 一.直接用 QueryWrapper 中的 like String deptLevelCodeTemp = "1000010001" ...

  6. vue-router路由复用后页面没有刷新

    vue-router提供了页面路由功能,可以用来构建单页面应用,在使用vue-router的动态路由匹配的时候,遇到了url变化了,但是页面却没有任何动静的问题,记录一下. 动态路由匹配url变化了, ...

  7. java基础-IO流-day13

    目录 1. IO的概念 2. 一个一个字符 完成文件的复制 3. 字节流 4. 转换字节流 5. System.in 7.基本数据类型的数据 8. object的处理 1. IO的概念 计算机内存中的 ...

  8. (已解决)C·lash 核心崩溃“failed to c·lash core, logs are not available”

    问题情况: 解决方案:管理员打开 cmd,输入 netsh winsock reset,重启电脑就可以了! 原经验帖:https://www.oleou.com/soft/715.html 谢谢这位大 ...

  9. Skywalking 的使用

    本文为博主原创,未经允许不得转载: 官网:http://skywalking.apache.org/下载:http://skywalking.apache.org/downloads/Github:h ...

  10. idea 修改 jsp文件之后不生效问题