MFS分布式存储搭建详解
admin
2023-03-08 11:03:19
0

                                           MFS分布式存储服务

 MFS的作用:

        MFS分布式存储的目的是为了解决在NFS的短板,多台服务器通过NFS的方式挂载共享

一个服务器的存储空间,使得NFS服务器不堪重负,经常出现超时的现象,而且NFS存在单点故障,

尽管可以使用rsync同步数据到另一台服务器上做备份,但对提高系统性能并无帮助。因此解决方案

采取MFS分布式文件系统,服务器之间的数据访问不再是一对多的关系,而是多对多的关系。

  什么是分布式存储:

       分布式原理:通过计算机网络和节点相连,简单的说就是把一些分散的共享文件夹集合到一个虚拟文

件夹内。对于用户来说,访问这些共享文件夹只是打开了一个虚拟文件夹,用户感受不到这些共享文件夹是分

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

   MFS原理:

1)MFS文件系统的组成。

● 元数据服务器(master):在整个体系中负责管理文件系统,维护元数据。

● 元数据日志服务器(metaLogger):当MAster服务器数据丢失或者损坏是,可以从日志服务器中取得文件,进行恢复。

● 数据存储服务器(chunkserver):真正存储数据的服务器。存储文件时会把文件分块保存。

● 客户端:可以像挂载MFS文件系统一样,其操作相同。

2)MFS读取数据的处理过程。

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

● 元数据服务器把所需数据存放位置告知客户端。

●客户端向已知Chunk server请求发送数据。

●Chunk Server向客户端发送数据。

3)MFS写入数据的出来过程

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

● 元数据服务器与Chunk Server进行交互,会在Chunk Server上创建新分块Chunks并告知元服务器。

● 元数据服务器告知客户端,可以在哪个Chunk Server的哪个分块Chunks上写入数据。

● 客户端指定Chunk Server写入数据。

● 该Chunk Server与其他Chunk Server进行数据同步,同步成功告知客户端写入成功。

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


 实验拓扑如下:

本实验使用5台服务器模拟搭建MFS文件系统

     MFS分布式存储搭建详解


 实验环境:

角色类型操作系统ip地址主要软件
Master ServerCentos7192.168.60.141moosefs-3.0.100-1.tar.gz
MetaLogger ServerCentos7192.168.60.136moosefs-3.0.100-1.tar.gz
Chunk Server1Centos7192.168.60.143moosefs-3.0.100-1.tar.gz
Chunk Server2Centos7192.168.60.144moosefs-3.0.100-1.tar.gz
ClientCentos7192.168.60.130fuse-2.9.2.tar.gz 、moosefs-3.0.100-1.tar.gz


一、搭建Master Server服务器

1、解压、安装环境包

tar zxf moosefs-3.0.100-1.tar.gz -C  /opt

yum  install gcc gcc-c++ zlib-devel -y

2、创建用户、编译

cd /opt/moosefs-3.0.100/

useradd -s /sbin/nologin mfs     #创建mfs管理用户

./configure --prefix=/usr/local/mfs \      #编译

--with-default-user=mfs \             #指定管理用户

--with-default-group=mfs \          #指定管理组

--disable-mfschunkserver \        #禁用节点

--disable-mfsmount                   #禁用客户端挂载

make && make install

3、复制配置文件

cd /usr/local/mfs/etc/mfs

cp mfsexports.cfg.dist mfsexports.cfg

cp mfsmaster.cfg.dist mfsmaster.cfg

cp mfstopology.cfg.dist mfstopology.cfg

cd /usr/local/mfs/var/mfs/

cp metadata.mfs.empty metadata.mfs

4、优化、启动服务检测端口

ln -s /usr/local/mfs/sbin/* /usr/local/sbin         #将mfs的命令放到系统中识别

mfsmaster start           #启动mfsmaster

[root@localhost mfs]# netstat -ntap | grep mfs            #看三个监听端口

tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      42551/mfsmaster     

tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      42551/mfsmaster     

tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      42551/mfsmaster     


二、搭建MetaLogger Server服务器

1、解压缩、安装环境包

tar zxf moosefs-3.0.100-1.tar.gz -C  /opt

yum  install gcc gcc-c++ zlib-devel -y

2、创建用户、编译

cd /opt/moosefs-3.0.100/

useradd -s /sbin/nologin mfs

./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfschunkserver \             #禁用节点

--disable-mfsmount                        #禁用客户端挂载

make && make install

3、复制配置文件并修改

cd /usr/local/mfs/etc/mfs/

cp mfsexports.cfg.dist mfsexports.cfg

cp mfsmaster.cfg.dist mfsmaster.cfg

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

vim mfsmetalogger.cfg

MATER_HOST = 192.168.60.141           #找到MATER_HOST模板,ip地址指向master

cd /usr/local/mfs/var/mfs/

cp metadata.mfs.empty metadata.mfs

4、优化、启动服务检测端口

ln -s /usr/local/mfs/sbin/* /usr/local/sbin/            #将mfs的命令放到系统中识别

mfsmetalogger start          #启动服务

[root@localhost mfs]# netstat -ntap | grep mfs         #看下状态有没有起来

tcp        0      1 192.168.60.136:55894    220.250.64.225:9419     SYN_SENT    42707/mfsmetalogger 


三、搭建Chunk节点服务器

1、解压、安装环境包

tar zxf moosefs-3.0.100-1.tar.gz -C  /opt

yum  install gcc gcc-c++ zlib-devel -y

2、创建用户,编译

cd /opt/moosefs-3.0.100/

useradd -s /sbin/nologin mfs

./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfsmaster \                 #禁用master模式

--disable-mfsmount                   #禁用用户挂载

make && make install

3、复制配置文件并修改

cd /usr/local/mfs/etc/mfs

cp mfschunkserver.cfg.dist mfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

vim mfschunkserver.cfg

MASTER_HOST = 192.168.60.141     #找到MASTER_HOST模板,IP地址指向master

vim mfshdd.cfg

#etc.

/data               #设置共享目录data,需要创建

4、创建共享目录,更改数组属主

mkdir /data

chown -R mfs.mfs /data/

5、优化、启动服务查看端口

ln -s /usr/local/mfs/sbin/* /usr/local/sbin/   #将mfs的命令放到系统中识别

mfschunkserver start        #启动服务

[root@localhost mfs]# netstat -ntap | grep mfs           #看下状态有没有起来

tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      42714/mfschunkserve 

tcp        0      0 192.168.60.144:41774    192.168.60.141:9420     ESTABLISHED 42714/mfschunkserve 

两台节点服务器的配置相同,重复操作即可。


四、搭建客户端

1、解压、安装环境包

tar zxf moosefs-3.0.100-1.tar.gz -C  /opt

tar zxf fuse-2.9.2.tar.gz -C /opt/

yum  install gcc gcc-c++ zlib-devel -y

2、安装配置fuse

cd /opt/fuse-2.9.2/

./configuer               #编译fuse

make & make install

sed -i '$a export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' /etc/profile  

source /etc/profile

cd /opt/moosefs-3.0.100/        #编译mfs

useradd mfs -s /sbin/nologin

./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfsmater \                 #禁用master

--disable-mfschunkserver \      #禁用节点

--enable-mfsmount                  #开启用户挂载

make && make install

3、挂载

mkdir /opt/mfs    #创建挂载目录

/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.60.141   #挂载

df -h                    #查看挂载状态

192.168.60.141:9421        33G     0   33G    0% /opt/mfs

4、客户端一些简单操作

sed -i '$a export PATH=/usr/local/mfs/bin:$PATH' /etc/profile      #mfs优化

source /etc/profile      #刷新环境变量

cd /opt/mfs

echo "this is test" > test.txt

mfsgetgoal -r /opt/mfs     #mfsgetgoal命令用来查询文件被复制的分数

mfssetgoal -r 3 /opt/mfs  #mfssetgoal命令用来设置文件被复制的份数


五、MFS监控

在主服务器上开启监控

[root@localhost mfs]# /usr/local/mfs/sbin/mfscgiserv          

lockfile created and locked

starting simple cgi server (host: any , port: 9425 , rootpath: /usr/local/mfs/share/mfscgi)


http://192.168.60.141:9425     #用它给你的端口进行访问


六、yum安装MFS扩展

MFS也可以用yum进行安装,需要配置yum源

https://moosefs.com/download/   官网各个系统的介绍,这里我介绍一下centos的安装

curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS

curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo

以上两句话是配置yum仓库

master服务器yum安装操作:

yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli

chunkserver服务器yum安装的操作:

yum install moosefs-chunkserver

MetaLogger Server服务器yum安装的操作:

yum install moosefs-metalogger

client端yum安装的操作:

yum install moosefs-client

修改配置文件的操作和手工编译的操作相同

相关内容

热门资讯

特朗普的关键矿产战略能行吗? 5月7日,法国以G7轮值主席国身份召开线上高层会议,重点商讨在关键矿产领域对中国的遏制围堵政策。依托...
世卫组织:“洪迪厄斯”号邮轮疫... 世卫组织8日更新“洪迪厄斯”号邮轮疫情最新数据,截至5月8日,共报告8例病例,其中3例死亡病例。8例...
伊朗因储油罐已满而将石油排入海... 新华社德黑兰5月9日电 据伊朗塔斯尼姆通讯社9日凌晨报道,伊朗伊斯兰议会代表布什尔省的议员贾法尔·普...
金正恩向俄总统致贺电:平壤始终... 新华社平壤5月9日电(记者王天僚)据朝中社9日报道,朝鲜最高领导人金正恩当天向俄罗斯总统普京致贺电,...
美专家:伊朗扛不住了,或正向波... 据福克斯新闻5月8日报道,卫星图像显示,伊朗主要石油出口枢纽哈尔克岛附近出现大片疑似石油泄漏的浮油带...
黄土塬藏“算力密码”!中国电信... 在陇东黄土塬上,数字浪潮奔涌不息。作为国家 “东数西算” 工程的核心承载地,中国电信庆阳智算产业园正...
科沃斯加入清洁电器行业反虚假测... 【CNMO科技消息】5月8日,科沃斯官方微博宣布,科沃斯加入由中国家用电器协会指导、中国家电网发起成...
东华科技获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示东华科技(002140)新获得一项发明专利授权,专利名为“一种...
头部企业扎堆超百场无人机赛事,... 文/陈聆听 2026 年 5 月 4 日,山东诸城,山东天鸟航空负责人丁总与当地多位中小学校长会面,...
重磅签约!华为、中国银联战略合... 快科技5月8日消息,华为和中国银联在深圳正式签约,进一步深化双方的战略合作,还一起发布了自主创新和人...