分布式文件系统MooseFS(一)-----MFS简介+部署+应用

目录

一、分布式文件系统

二、MooseFS简介

 三、MooseFS的体系结构

四、Moosemfs系统的搭建与部署

1、master-server的部署

2、chunk server的部署

​ 3、访问web界面

 4、在master上下载lsof

 5、client的部署


一、分布式文件系统

分布式文件系统是指文件系统管理的物理存储资源,不一定在本地节点上,而是通过网络与节点相连。

就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文件夹)。

对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分散在各个计算机上的。

分布式文件系统的好处是集中访问简化操作数据容灾,以及提高文件的存取性能。

二、MooseFS简介

MooseFS 是一个高容错性的分布式文件系统,它能够将资源分布存储于几台不同的物理介质,对外只提供给用户一个访问接口。对它的操作与其它文件系统完全一样:

|         分层文件结构(目录树结构);

l         存储POSIX 文件属性(权限、最后访问、修改时间);

l         支持特殊的文件(块文件夹、字符文件及管道和socket )

l         软链接(文件名指向目标文件)及硬链接(不同的文件名指向同一块数据);

l         仅限于基于IP 地址或密码来访问文件系统。

MoosFS 具有以下特征:

l         高可靠性:数据可以被存储于几个不同的地方;

l         可扩展性:可以动态的添加计算机或磁盘来增加系统的容量产;

l         高可控性:系统能够设置删除文件的时间间隔;

l         可追溯性:能够根据文件的不同操作(写入/ 访问)生成文件快照。

 三、MooseFS的体系结构

MooseFS 体系结构包含以下四个模块:

l         管理服务器( master server ):它用来管理整个文件系统,用来存储每个文件的元数据(包括文件大小、属性及存储位置,同时也包括的一些非规则性的文件,如目录、 socket 、管道及设备);

l         数据服务器( chunk servers ):用于存储文件的服务器,同时它们之间可以同步数据;

l         元数据备份服务器( metalogger servers ):用于存储元数据变化日志并周期性的下载元数据文件;同时也可以替代管理服务器暂不能工作的情况;

l         客户端:用于访问 MooseFS 中的文件,采用 mfsmount 来与管理服务器进行交互(接收或修改元数据文件)及与数据服务器交换真正的数据。

   元数据存储在管理服务器内存磁盘中(周期性的更新二进制文件及增长的日志文件)。同时二进制文件及日志文件会被同步到元数据服务器。

文件数据被切分成最大不超过 64M 的不同的片段,每个片段会存储于备选的数据服务器中。可以通过将数据配置在多个不同的数据服务器来保证高可靠性,可以通过 mfssetgoal 命令来设定最终要将数据存储在几台服务器上。

客户端向元数据服务器发出读请求

元数据服务器把数据存放的位置
(Chunk Server的IP地址和Chunk编号)告知客户端
(一份大的数据会被分块,存储在不同的数据服务器上)

客户端向已知的Chunk Server请求发送数据

Chunk Server向客户端发送数据

 

客户端向元数据服务器发送写入请求

元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行交互),

但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Server告知元数据服务器操作成功。

元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据
(副本数是由master来维护的)


客户端向指定的Chunk Server写入数据

该Chunk Server与按照要求和其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功


客户端告知元数据服务器本次写入完毕

 原始的读/写速度很明显是主要取决于所使用的硬盘的性能、网络的容量和拓扑结构,使用的硬
盘和网络的吞吐量越好,整个系统的性能也就会越好。

四、Moosemfs系统的搭建与部署

1、master-server的部署

1、在浏览器上搜索moosemfs.com
2、进入网页后点击download进行下载
3、根据自己主机的配置,选择需要安装的yum源
首先要保证虚拟机可以上网,在真机中执行命令 
 iptables -t nat -I POSTROUTING -s 172.25.254.0/24 -j MASQUERADE 
4、curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
如果不需要gpgcheck,可以在文件中将它置0

5、安装master端的各种组件
yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli -y
6、编辑/etc/hosts文件,给master添加解析
172.25.254.1 vm1 mfsmaster
7、安装完,可以看到MFS的配置文件 mfsmaster.cfg 和 mfsexports.cfg
mfsexports.cfg:被挂接目录及权限设置

mfsmaster.cfg:主配置文件,凡是用#注释掉的变量均使用其默认值。
8、开启服务
systemctl enable --now moosefs-master 启动MASTER
systemctl enable --now moosefs-cgiserv 启动WEBUI监控服务
9、查看端口 netstat -antlp
9419:metalogger监听的端口地址,和元数据服务器通信的,当master宕机,可以通过它的日志,接管master的服务
9420:用于chunkserver连接的端口地址
9421:用于客户端挂接连接的端口地址
9425:web界面监控各个分布节点的端口

2、chunk server的部署

1、将maste端的仓库文件复制到chunk1、chunk2中,即虚拟机vm2和vm3
2、安装软件
yum install moosefs-chunkserver -y
3、安装后两个chunk节点都会生成mfs用户,并且具有相同的id
[root@vm2 mnt]# id mfs
uid=998(mfs) gid=996(mfs) groups=996(mfs)
4、在/etc/hosts文件中,给mfsmaster添加解析
5、在两个chunk节点分别进行如下操作:编辑空间配置文件/etc/mfs/mfshdd.cfg,写入mfs的分区/mnt/chunk1 或/mnt/chunk2
mfshdd.cfg:空间配置文件
/mnt/chunk1或/mnt/chunk2是一个给mfs 的分区,但在本机上是一个独立的目录,最好是一个单独的硬盘或者一个raid 卷,最低要求是一个分区。

6、创建目录 mkdir /mnt/chunk1 或 mkdir /mnt/chunk2
7、设置权限 chown -R mfs.mfs /mnt/chunk1 或 chown -R mfs.mfs /mnt/chunk2
8、开启服务:systemctl enable --now moosefs-chunkserver
9、查看端口: netstat -antlp 

3、访问web界面

 4、在master上下载lsof

lsof:列出系统当前打开的文件,在linux中任何事物都以文件的形式存在

yum install lsof -y

 

 5、client的部署

1、将maste端的仓库文件复制到client中,即我的真机
2、安装软件
yum install moosefs-client -y
3、在client的/etc/hosts文件中为master添加解析
4、建立空目录 mkdir /mnt/mfs
5、编写 /etc/mfs/mfsmount.cfg文件
添加一行内容: /mnt/mfs

6、执行mfsmount命令
mfsmount
# df -h
...
mfsmaster:9421
2729728
0 2729728 0% /mnt/mfs
7、cd /mnt/mfs
8、mkdir dir1 mkdir dir2
9、mfssetgoal -r 2 dir2/
设置在 dir2 中文件存储份数为两个,默认是一个

拷贝同一个文件到两个目录
cp /etc/passwd dir1
cp /etc/passwd dir2
查看文件信息
 mfsfileinfo dir1/passwd
mfsfileinfo dir2/passwd

当文件很大时,文件会被分块存储在每一个chunk上,每块文件默认为50M

在/dir目录下设置copy数是2,当挂掉chunk1时,chunk2中还有文件的备份

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值