CentOS下MFS分布式文件系统搭建

MFS : 网络分布式文件系统中的一种
Project web site: http://www.moosefs.com/

Installation and using MooseFS:
http://www.moosefs.org/reference-guide.html
在这里插入图片描述
mooseFS(moose 驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。

拓扑图:
在这里插入图片描述
在这里插入图片描述

MooseFS文件系统介绍

MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:
1 管理服务器managing server (master)
 管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
2 元数据日志服务器Metalogger server(Metalogger)
元数据日志服务器: 负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作
3 数据存储服务器data servers (chunk servers )
真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器chunkserver之间复 制(复制份数可以手工指定,建议设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。
4 客户机挂载使用client computers
使用MFS文件系统来存储和访问的主机称为MFS的客户端,成功挂接MFS文件系统以后,就可以像以前使用NFS一样共享这个虚拟性的存储了。

什么场景用到MFS?

5T : 找一个大硬盘,做raid5
50T : SAN 存储
5000T:分布式存储, 比如:MFS技术

数据比较多时,会想使用SAN存储。
为什么要使用MFS?
LVS集群+IP SAN存储拓扑图:

在这里插入图片描述
SAN存储: 20盘位: SAS盘:600G *20= 12000G 大约12T
在这里插入图片描述
MFS实验拓扑图 :
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验环境:

服务器 角色
xuegod63 管理服务器managing server (master) 和元数据日志服务器(Metalogger)
xuegod64 数据存储服务器data servers (chunk servers )
xuegod62 客户机挂载使用client computers
安装环境准备:
fuse.ko
所有服务器端和客户端都要支持fuse内核模块。
由于mfs的客户端程序也就是加载mfs磁盘系统的命令是使用了fuse.
用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如NTFS-3G(作用:让Linux中对NTFS文件系统提供支持) 使用FUSE实现。
2.6以上内核,都自带fuse
在这里插入图片描述
在这里插入图片描述
配置 : mfs管理服务器 : xuegod63
准备:xuegod63,64, 62

[root@xuegod63 ~]# yum install gcc fuse fuse-devel zlib-devel -y
 [root@xuegod63 mfs-1.6.27]# tar zxvf mfs-1.6.27-5.tar.gz
[root@xuegod63 ~]# cd mfs-1.6.27

创建用户:mfs

[root@xuegod63 mfs-1.6.27]# useradd  -s /sbin/nologin mfs
[root@xuegod63 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

[root@xuegod63 mfs-1.6.27]# make && make install

[root@xuegod63 ~]# scp mfs-1.6.27-5.tar.gz 192.168.1.64:/root/
root@192.168.1.64's password: 
mfs-1.6.27-5.tar.gz                    100%  766KB 766.1KB/s   00:00    
[root@xuegod63 ~]# scp mfs-1.6.27-5.tar.gz 192.168.1.62:/root/
root@192.168.1.62's password: 
mfs-1.6.27-5.tar.gz                    100%  766KB 766.1KB/s   00:00   

安装:xuegod63 元数据日志服务器:

[root@xuegod63 ~]# rm -rf mfs-1.6.27
[root@xuegod63 ~]# tar -zxvf mfs-1.6.27-5.tar.gz
[root@xuegod63 ~]#cd  mfs-1.6.27
[root@xuegod63 mfs-1.6.27]# useradd  -s /sbin/nologin mfs
[root@xuegod63 mfs-1.6.27]#  ./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs  && make  && make install 

安装:xuegod64 chunck server 数据存储

[root@xuegod64 mfs-1.6.27]# yum install gcc fuse fuse-devel zlib-devel -y
[root@xuegod64 mfs-1.6.27]#useradd  -s /sbin/nologin mfs
[root@xuegod64 mfs-1.6.27]#./configure --prefix=/usr/local/mfsmetachunk --with-default-user=mfs --with-default-group=mfs  && make  && make install 

安装:xuegod62 客户端:

[root@xuegod62 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount

报错:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... configure: error: newly created file is older than distributed files!
Check your system clock


yum install gcc fuse fuse-devel zlib-devel -y
useradd  -s /sbin/nologin mfs
./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs  && make  && make install 

开始配置:
xuegod63
查看安装后的目录结构:

[root@xuegod63 ~]# ls /usr/local/mfs*
/usr/local/mfs:
bin  etc  sbin  share  var

生成配置文件:

[root@xuegod63 mfs]# pwd
/usr/local/mfs/etc/mfs
[root@xuegod63 mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@xuegod63 mfs]# cp mfsexports.cfg.dist mfsexports.cfg
[root@xuegod63 mfs]# cp mfstopology.cfg.dist mfstopology.cfg
[root@xuegod63 mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@xuegod63 mfs]# cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs

vim  mfsmaster.cfg
# MATOCS_LISTEN_HOST = *
# MATOCS_LISTEN_PORT = 9420   # master会打开9420端口等待 mfschunkserver 数据存储服务器连接

修改目录权限:

[root@xuegod63 mfs]# chown  -R mfs:mfs /usr/local/mfs

启动,关闭服务 master

 [root@xuegod63 mfs]# /usr/local/mfs/sbin/mfsmaster restart/start/stop

[root@xuegod63 mfs]# ls var/mfs/
metadata.mfs.back    metadata.mfs.empty  stats.mfs
metadata.mfs.back.1  sessions.mfs

[root@xuegod63 mfs]# echo '/usr/local/mfs/sbin/mfsmaster restart ' >> /etc/rc.local

[root@xuegod63 mfs]# tail /var/log/messages

配置访问共享权限:

[root@xuegod63 mfs]# vim mfsexports.cfg 
192.168.1.0/24      /   rw,alldirs,maproot=0

b.被挂载的目录
/ 表示MooseFS的根
. 表示MFSMETA文件系统

c.客户端拥有的权限
ro 只读
rw 读写
alldirs 允许挂载任何指定的子目录
maproot 映射为root用户还是指定的用户

元数据日志服务器:

[root@xuegod63 mfs]# pwd
/usr/local/mfsmeta/etc/mfs
[root@xuegod63 mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg  #改:
15 # MASTER_HOST = mfsmaster
 16 # MASTER_PORT = 9419
MASTER_HOST = 192.168.1.63
MASTER_PORT = 9419

[root@xuegod63 mfs]# chown -R mfs:mfs /usr/local/mfsmeta/

启动:

[root@xuegod63 mfs]# /usr/local/mfsmeta/sbin/mfsmetalogger start

[root@xuegod63 mfsmeta]# pwd
/usr/local/mfsmeta
[root@xuegod63 mfsmeta]# ls var/mfs/
changelog_ml_back.0.mfs  metadata.mfs.empty    sessions_ml.mfs
changelog_ml_back.1.mfs  metadata_ml.mfs.back

数据存储服务器 (chunkserver xuegod64)

生成配置文件:

[root@xuegod64 mfs]# pwd
/usr/local/mfs/etc/mfs
[root@xuegod64 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@xuegod64 mfs]# cp mfshdd.cfg.dist mfshdd.cfg

[root@xuegod64 mfs]# vim mfschunkserver.cfg
12 MASTER_HOST = 192.168.1.63
 13 MASTER_PORT = 9420

# DATA_PATH = /usr/local/mfs/var/mfs  
# HDD_CONF_FILENAME = /usr/local/mfs/etc/mfs/mfshdd.cfg   #指点共享数据的位置

[root@xuegod64 mfs]# vim /usr/local/mfs/etc/mfs/mfshdd.cfg

在这里插入图片描述
修改权限:

[root@xuegod64 mfs]# chown  -R mfs:mfs /tmp/
[root@xuegod64 mfs]# ls /tmp/
pulse-7FfPPwcWjR7M  VMwareDnD
[root@xuegod64 mfs]# chown  -R mfs:mfs /usr/local/mfs

启动:

[root@xuegod64 mfs]# /usr/local/mfs/sbin/mfschunkserver start
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfschunkserver modules ...
hdd space manager: path to scan: /tmp/
hdd space manager: start background hdd scanning (searching for available chunks)
main server module: listen on *:9422
no charts data file - initializing empty charts
mfschunkserver daemon initialized properly

网盘上传一个 疯狂动物城.avi
网盘服务器的存储结点存储的是 疯狂动物城.avi 吗? 是:1 不是:2
存的效果如下: 每个块存在下面的文件中
在这里插入图片描述
查看方式在浏览器中输入http://192.168.1.63:9425 (我这个部署在MASTER服务器上)
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值