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. Linux day2:文件和文件夹相关命令 文件内容编辑命令 Linux常用目录 Linux重要文件

    目录 问题说明 前期必备知识 系统运行命令 shutdown -c 快捷方式命令 ctrl+e 目录结构相关命令 mkdir -p 文件和文件夹相关命令 创建文件 touch 查看文件和目录 ls - ...

  2. 详解 SSL(二):SSL 证书对网站的好处

    在如今谷歌.百度等互联网巨头强制性要求网站 HTTPS 化的情况下, 网站部署 SSL 证书已然成为互联网的发展趋势.而在上一篇< 详解 SSL(一):网址栏的小绿锁有什么意义?>中,我们 ...

  3. Codeforces Round #736 (Div. 2) A~D

    比赛链接:Here 1549A. Gregor and Cryptography 不难,观察一下就容易得知要想使得 \(p\pmod a = p\pmod b\) 令 \(a = 2,b=p - 1\ ...

  4. Educational Codeforces Round 109 (Rated for Div. 2) 个人补题记录(A~D,AB思维,C模拟构造,D题DP)

    补题链接:Here 1525A. Potion-making (思维 [题意描述] 作为一个魔法师,现在我想配置一杯药物浓度为 \(k\%\) 的药水, 每次操作能进行添加: 一升水 一升药物精华 作 ...

  5. Codeforces Round #706 Editorial

    1496A. Split it! 类回文判断,只要 k = 0 或者 \(s[1,k] 和 s[n - k + 1,n]\)是回文即可 特判情况 n < 2 * k + 1 为 NO int m ...

  6. 如何使用VNC进行远程桌面控制

    VNC是一款很实用的可以实现远程桌面控制的小工具,我遇到的有两种情况比较常见,一是有时候时候可能你会外出或离开自己办公室(但可以访问到办公司的网络),而很多资料都保存在办公室的台式机上,这时如果突然有 ...

  7. java基础-运算符--day03

    目录 1. 算数运算符 2.+号 3. ++ 4. = 赋值操作 5. 关系运算 6. 逻辑运算 7. 三元运算 8 位运算 1. 算数运算符 / 处以 % 取余 public class TestO ...

  8. spring IoC 源码

    spring IoC 容器的加载过程 1.实例化容器: AnnotationConfigApplicationContext 实例化工厂: DefauiltListableBeanFactory 实例 ...

  9. 应用程序使用统计信息 – .NET CORE(C#) WPF界面设计

    应用程序使用统计信息 - .NET CORE(C#) WPF界面设计 首发文章地址:https://dotnet9.com/10546.html 关键功能点 抽屉式菜单 圆形进度条 Demo演示: 1 ...

  10. 2023第十四届极客大挑战 — RE WP

    RE方向出自:队友. Shiftjmp 去花后按p然后再反编译 最后flag为SYC{W3lc0me_tO_th3_r3veR5e_w0r1d~} 点击就送的逆向题 gcc 1.s -o 1` 生成e ...