MFS:分布式存储

一、介绍
MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。从其对文件操作的情况看,MooseFS就相当于一个类UNIX文件系统:
1、mfs是一个分层的目录树结构
2、存储支持POSIX标准的文件属性(权限,最后访问和修改时间)
3、支持特殊的文件,如:块设备,字符设备,管道和套接字,链接文件(符号链接和硬链接)
4、支持基于IP地址和密码的方式访问文件系统
二、功能作用
·MooseFS是一个具有容错性的网络分布式文件系统。
·它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。
在这里插入图片描述
三、组成部分
·元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
·元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当Master服务器数据丢失或者损坏时,可以从日志服务器中取得文件,进行恢复。
·数据存储服务器(Chunk Server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在数据服务器之间进行复制。数据服务器越多,能使用的“容量”就越大,可靠性就越高,性能也就越好。
·客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
(元数据被定义为:描述数据的数据,对数据及信息资源的描述性信息。)
四、MFS读取数据的处理过程
·客户端向元数据服务器发出读请求。
·元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端。
·客户端向已知的Chunk Server请求发送数据。
·Chunk Server向客户端发送数据。
五、MFS写入数据的处理过程
·客户端向元数据服务器发送写入请求。
·元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Servers告知元数据服务器操作成功。
·元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据。
·客户端向指定的Chunks Server写入数据。
·该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。
·客户端告知元数据服务器本次写入完毕。
六、案例实施

IP主机名
192.168.94.139master
192.168.94.140Metalogger server
192.168.94.141Chunk server1
192.168.94.142Chunk server2
192.168.94.143client

软件包下载:链接:https://pan.baidu.com/s/1QqREtYpjnEuAAnweiRNwAQ (1.6.27)
提取码:o15d
链接:https://pan.baidu.com/s/18VGAhdU9_X8KC0_xmPz7_Q (3.0.84)
提取码:1czb
将软件包上传至各个节点的/root目录下
保证所有的虚拟机防火墙均在关闭状态
一、master server节点:
1.环境准备

[root@master ~]# yum -y install zlib-devel gcc gcc-c++(所有节点)

2.创建用户

[root@master ~]# useradd -s /sbin/nologin -M mfs(所有节点)

3.解压软件包

[root@master ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src
[root@master ~]# cd /usr/src/mfs-1.6.27
[root@master mfs-1.6.27]# ./configure --prefix=/usr/local/mfs \
>--with-default-user=mfs --with-default-group=mfs \
>--disable-mfschunkserver --disable-mfsmount
[root@master mfs-1.6.27]# make && make install

4.调整配置文件

[root@master ~]# cd /usr/local/mfs/etc/mfs
[root@master mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@master mfs]# cp mfsexports.cfg.dist mfsexports.cfg 
[root@master mfs]# cp mfstopology.cfg.dist mfstopology.cfg
[root@master mfs]# cd /usr/local/mfs/var/mfs/
[root@master mfs]# cp metadata.mfs.empty metadata.mfs

5.启动master server:

[root@master ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@master ~]# mfsmaster start
[root@master ~]# netstat -anput | grep mfs
tcp      0      0 0.0.0.0:9419      0.0.0.0:*   LISTEN      9222/mfsmaster      
tcp      0      0 0.0.0.0:9420      0.0.0.0:*   LISTEN      9222/mfsmaster      
tcp      0      0 0.0.0.0:9421      0.0.0.0:*   LISTEN      9222/mfsmaster

可以发现mfsmaster端口已启动。
二、metalogger server节点:
1.解压软件包:

[root@metalogger ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src
[root@metalogger ~]# cd /usr/src/mfs-1.6.27
[root@metalogger mfs-1.6.27]# ./configure --prefix=/usr/local/mfs \
--with-default-user=mfs --with-default-group=mfs \
--disable-mfschunkserver --disable-mfsmount
[root@metalogger mfs-1.6.27]# make && make install

2.调整配置文件

[root@metalogger ~]# cd /usr/local/mfs/etc/mfs
[root@metalogger mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@metalogger mfs]# vim mfsmetalogger.cfg
# 修改为master的ip
MASTER_HOST = 192.168.94.139
MASTER_PORT = 9419

3.启动metalogger:

[root@metalogger ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@metalogger ~]# mfsmetalogger start
[root@metalogger ~]# netstat -anput | grep mfs
tcp    0   0 192.168.140:54654    192.168.94.139:9419   ESTABLISHED 72820/mfsmetalogger

发现该虚拟机已与master节点取得联系。
三、搭建chunk server1、chunk server2(两个节点操作一致)
1.解压软件包:

[root@chunk server1 ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src
[root@chunk server1 ~]# cd /usr/src/mfs-1.6.27
[root@chunk server1 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs \
--with-default-user=mfs --with-default-group=mfs \
--disable-mfsmaster --disable-mfsmount
[root@chunk server1 mfs-1.6.27]# make && make install

2.调整配置文件

[root@chunk server1 ~]# cd /usr/local/mfs/etc/mfs
[root@chunk server1 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@chunk server1 mfs]# cp mfshdd.cfg.dist mfshdd.cfg
[root@chunk server1 mfs]# vim mfschunkserver.cfg
# 修改为master的ip
MASTER_HOST = 192.168.94.139
MASTER_PORT = 9419(此处不需要修改,去掉前面的#即可)
[root@chunk server1 mfs]# vim mfshdd.cfg
# 末尾添加
/data
# 这里的/data是一个给MFS的分区
[root@chunk server1 mfs]# mkdir /data
[root@chunk server1 mfs]# chown -R mfs:mfs /data

3.启动chunk server:

[root@chunk server1 ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@chunk server1 ~]# mfschunkserver start
[root@chunk server1 mfs]#  netstat -anput | grep mfs
tcp   0   0 0.0.0.0:9422         0.0.0.0:*           LISTEN      16869/mfschunkserve 
tcp   0   0 192.168.94.141:37532   192.168.94.139:9420   ESTABLISHED 16869/mfschunkserve

四、client节点:
1.安装fuse:

[root@client ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@client ~]# mfschunkserver start
[root@client mfs]#  netstat -anput | grep mfs
tcp   0   0 0.0.0.0:9422         0.0.0.0:*           LISTEN      16869/mfschunkserve 
tcp   0   0 192.168.94.143:37532   192.168.94.139:9420   ESTABLISHED 16869/mfschunkserve

2.调整环境变量:

[root@client ~]# vim /etc/profile
末尾添加
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
[root@client ~]# source /etc/profile

3.安装MFS客户端:

[root@master ~]# tar zxf mfs-1.6.27-5.tar.gz -C /usr/src
[root@client ~]# cd /usr/src/mfs-1.6.27
[root@client mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
[root@client mfs-1.6.27]# make && make install

4.创建挂载点并挂载:

[root@client ~]# mkdir /opt/mfs
[root@client ~]# modprobe fuse  # 加载fuse到内核
[root@client ~]# ln -s /usr/local/mfs/sbin/* /usr/local/sbin/
[root@client ~]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
将挂载点挂载到master主机,回映射到根目录
[root@client ~]# mfsmount /opt/mfs -H 192.168.94.139
[root@client ~]# df -hT | grep mfs
192.168.94.139:9421       fuse.mfs   83G     0   83G   0% /opt/mfs

五、在master节点上启动监控程序:

[root@master ~]# mfscgiserv

在浏览器上访问192.168.94.139:9425
在这里插入图片描述
注:3.0.84版本在web页面时可能找不到主机名,则需要在master节点的/etc/hosts文件中加入:

192.168.94.139 master mfsmaster
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值