mfs分布式文件系统

author author     2022-08-13     706

关键词:

MFS分布式文件系统

实验环境:

  在公司内部通过nfs方式共享一个服务器的存储空间,使得nfs服务器不堪重负,经常出现超时问题,为了提高整个系统的性能,所以采用mfs分布式文件系统,mfs分布式文件系统是一个具有容错功能、高可用、可扩展的海量级分布式文件系统,mfs把数据分散在多台服务器中,但用户看到的只有一个源。

技术分享

实验原理:

MFS读取数据的处理过程:

1.clientmaster请求读数据

2.master把所需数据存放的位置(chunk-serveripchunks编号)告知client

3.clientchunk-server请求发送数据

4.chunk-serverclient发送数据

MFS写入数据的处理过程:

1.clientmaster发送写请求

2.masterchunk-server交互,确认能提供写入数据的chunk-server及其chunks编号

3.master将确认好的chunk-serveripchunks编号发给client

4.client将数据写入到chunk-serverchunks编号的磁盘上

5.chunk-server与其他chunk-server进行数据同步,成功后告知client写入成功

6.client告知master写入结束

实验步骤:

1.搭建元数据服务器mster server192.168.100.157

yum -y install zlib-devel                   安装依赖包

useradd -s /sbin/nologin mfs                   创建用户

wget ftp://ftp.linuxfan.cn/tools/mfs-1.6.27-5.tar.gz           下载源码包

tar zxf mfs-1.6.27-5.tar.gz                      解压

cd mfs-1.6.27           

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver--disable-mfsmount                编译安装

make &&make install

cd /usr/local/mfs/etc/mfs/                                   cd到配置文件目录

cp mfsmaster.cfg.dist mfsmaster.cfg                  复制主配置文件,无需更改

cp mfsexports.cfg.dist mfsexports.cfg                复制被挂载目录及权限配置文件

cp mfstopology.cfg.dist mfstopology.cfg                复制配置文件

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

cp metadata.mfs.empty metadata.mfs               复制配置文件

ls

/usr/local/mfs/sbin/mfsmaster start                      启动masterserver

netstat -utpln |grep mfs                        查看其端口

##关闭mfsmaster使用/usr/local/mfs/sbin/mfsmaster -s       关闭masterserver

 

 

2.搭建元数据日志服务器metalogger192.168.100.156

yum -y install zlib-devel                               

useradd -s /sbin/nologin mfs

wgetftp://ftp.linuxfan.cn/tools/mfs-1.6.27-5.tar.gz

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver--disable-mfsmount

make &&make install

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

cp mfsmetalogger.cfg.dist mfsmetalogger.cfg           复制配置文件

sed -i ‘/mfsmaster/a MASTER_HOST =192.168.100.157‘ mfsmetalogger.cfg   修改masterserver服务器的地址

vim mfsmetalogger.cfg          ##验证修改

/usr/local/mfs/sbin/mfsmetalogger start           启动服务,关闭服务将start换成-s

ps aux |grep mfs                 查看进程

 

3.搭建数据存储服务器chunk-server192.168.100.153-155

1chunk1192.168.100.155

yum -y install zlib-devel

useradd -s /sbin/nologin mfs

wgetftp://ftp.linuxfan.cn/tools/mfs-1.6.27-5.tar.gz

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster--disable-mfsmount

make &&make install

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

cp mfschunkserver.cfg.distmfschunkserver.cfg           复制主配置文件

cp mfshdd.cfg.dist mfshdd.cfg                复制挂载信息的配置文件

sed -i ‘/BIND_HOST/a MASTER_HOST =192.168.100.157‘ mfschunkserver.cfg        修改主配置文件中的masterserver

vim mfschunkserver.cfg                   验证

echo "/data" >>mfshdd.cfg                在挂载信息的配置文件中添加需要共享的目录,最好此目录是独立的磁盘或者分区

mkdir /data

chown -R mfs:mfs /data/         授权

/usr/local/mfs/sbin/mfschunkserverstart      启动服务,停止服务将start换成-s

ps aux |grep mfs                      查看进程

cd

编写脚本:方便别的数据存储服务器的配置

exit  ##重新登录

cat .bash_history>config_chunk_mfs.sh   ##将历史命令重定向到脚本中

vi config_chunk_mfs.sh   ##修改内容如下,注意删除两vim命令

#!/bin/bash

#by linuxfan.cn 2016.3.21

yum -y install zlib-devel

useradd -s /sbin/nologin mfs

wgetftp://ftp.linuxfan.cn/tools/mfs-1.6.27-5.tar.gz

tar zxf mfs-1.6.27-5.tar.gz

cd mfs-1.6.27

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount

make &&make install

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

cp mfschunkserver.cfg.distmfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

sed -i ‘/BIND_HOST/a MASTER_HOST =192.168.100.157‘ mfschunkserver.cfg

echo "/data" >>mfshdd.cfg

mkdir /data

chown -R mfs:mfs /data/

/usr/local/mfs/sbin/mfschunkserver start

ps aux |grep mfs

cd

:wq

2)配置chunk2chunk3192.168.100.154-153

scp [email protected]:/root/config_chunk_mfs.sh  ./     下载chunk1的脚本到本地

sh -x config_chunk_mfs.sh          执行脚本

 

4.配置client端口:192.168.100.152

yum -y install zlib-devel            

wgetftp://ftp.linuxfan.cn/tools/fuse-2.9.2.tar.gz                     mfs客户端依赖于FUSE

wgetftp://ftp.linuxfan.cn/tools/mfs-1.6.27-5.tar.gz

tar zxf fuse-2.9.2.tar.gz                   编译安装fuse

cd fuse-2.9.2

./configure &&make &&makeinstall

cd

echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH">>/etc/profile 设置环境变量

source /etc/profile        加载环境变量

echo $PKG_CONFIG_PATH              查看环境变量

useradd -s /sbin/nologin mfs       创建用户

tar xf mfs-1.6.27-5.tar.gz      编译安装mfs

cd mfs-1.6.27

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster--disable-mfschunkserver --enable-mfsmount

make &&make install

cd

mkdir /mnt/mfs      创建挂载点

modprobe fuse       加载fuse模块到内核

lsmod |grep fuse      查看模块

/usr/local/mfs/bin/mfsmount /mnt/mfs -H192.168.100.157     挂载mfs

df -h       查看挂载情况

echo "exportPATH=/usr/local/mfs/bin:$PATH" >>/etc/profile                  客户端安装完毕后,会生成/usr/local/mfs/bin/目录,为了方便使用mfs的命令,需要将其加入到环境变量中

source /etc/profile      加载环境变量

echo $PATH         查看环境变量

 

5.启用MFS监控:192.168.100.157

mfscgiserv是用python编写的web服务,监听端口9425

/usr/local/mfs/sbin/mfscgiserv         启动

netstat -utpln |grep 9425       查看端口

使用浏览器访问:http://192.168.100.157:9425

技术分享

 

6.MFS-client客户端的使用:

sed -i ‘47aMANPATH  /usr/local/mfs/share/man‘/etc/man.config   ##mfs的命令添加man帮助

man mfsmount   ##查看帮助

mfsgetgoal -r /mnt/mfs/        查看文件在存储服务器复制的份数, -r 表示递归

mfssetgoal -r 2 /mnt/mfs/   ##设置文件复制的份数,份数必须小于等于存储服务器的数量

cd /mnt/mfs/                   cd到挂载点

touch test                创建测试文件

mfsgetgoal test               查看测试文件复制几份

 

7.维护MFS及灾难恢复:

1MFS集群的启动与停止:

MFS的启动顺序:master元数据服务器-->chunkserver存储服务器-->metalogger元数据日志服务器-->client客户端

MFS停止的顺序:client(umount)客户端-->chunkserver(-s)存储服务器-->metalogger(-s)元数据日志服务器-->master(-s)元数据服务器

2)恢复master:新安装mfsmaster同样配置-->复制metalogger的配置文件-->合并元数据changelogs

[email protected]:/usr/local/mfs/var/mfs/* /usr/local/mfs/var/mfs/

/usr/local/mfs/sbin/mfsmetarestore -mmetadata_ml.mfs.back -o metadata.mfs chagelog_ml.*.mfs

注:若更换master元数据服务器,存储服务器和客户端需要重新更改master服务器的ip地址

3)若直接断电可能导致master有可能无法启动,可以在master上执行/usr/local/mfs/sbin/mfsmetarestore-a进行修复

 

重点:

  • mfs是一个具有容错性的网络分布式文件系统,他把数据分布在多台物理服务器中,而呈现给用户的则是一个源;

  • mfs文件系统的组成包括元数据服务器master、元数据日志服务器metalogger、数据存储服务器chunk server、客户端client

  • 元数据服务器master需要用到的配置文件有两个,分别是mfsmaster.cfgmfsexports.cfg

  • 在元数据服务器master发生故障时,可以从metalogger日志服务器中恢复master

  • 可以使用keepalived双机热备实现master服务器的高可用;

  • 注意在客户端在挂载点创建文件时,可以设置此文件在存储服务器的复制份数,若有两台存储服务器(每台的共享目录容量为10G),客户端数据复制两份,那么这两个存储服务器都会存在客户端创建的文件,此时两台存储服务器的容量就是10G;三台10G存储服务器时,客户端文件复制两份,那么存储的总容量就是20G

扩展:

http://www.open-open.com/lib/view/open1375192526108.html   对比文件系统的区别

自主学习:

1.模拟一台数据存储服务器宕机,测试mfs文件系统;

2.实时增加一台数据存储服务器,验证mfs扩容结果;

3.模拟master发生故障,从metalogger中恢复master


本文出自 “11628832” 博客,谢绝转载!

mfs分布式文件系统

1、mfs(mooseFS):分布式文件系统,文件系统管理的物理资源存储在不同的节点上,通过计算机网络与节点相连。具有容错、高可用性,可扩展的海量存储等特性。mfs好处:集中访问,简化操作,数据容灾,提高文件存取性能。2... 查看详情

搭建mfs分布式文件系统(代码片段)

MFS分布式文件系统 MFS是一种半分布式文件系统,它是由波兰人开发的。MFS文件系统能够实现RAID的功能,不但能够更节约存储成本,而且不比专业的存储系统差,它还可以实现在线扩展。 分布式文件系统是指文件系统管理的... 查看详情

mfs分布式文件系统的部署(代码片段)

MFS分布式文件系统的部署MFS简介MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。MFS文件系统的组成。元数据服务器(master):负责管理文件系统,维护... 查看详情

mfs分布式文件系统

MFS是:具有容错功能的、高可用、可扩展的海量级分布式文件系统,把数据分布存储在多台服务器,对外提供统一访问入口;包含层级结构、文件属性,也可以创建特殊文件。分布式文件系统(DFS):文件系统管理的物理存储资... 查看详情

详解mfs分布式存储系统(代码片段)

分布式原理分布式文件系统是指文件系统管理的物理存储资源下不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的优点是集中访问、简化操作、数据容灾,以及提高了文件的存取性能。MFS分布式... 查看详情

53.mfs分布式文件系统

MFS分布式文件系统MFS分布式文件系统是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。 MFS分布式操作系统搭建过程:v 搭建master服务器#iptables-F#seten... 查看详情

了解mfs分布式文件系统

MFS分布式文件系统 mooseFS(moose驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限... 查看详情

mfs分布式文件系统架构实战

MFS分布式文件系统架构实战MFS文件系统的组成架构:如图元数据服务器(Master):负责管理文件系统,维护元数据;元数据日志服务器(c):备份Master服务器的变化日志文件;数据存储服务器(ChunkServer):真正存储数据的服务... 查看详情

分布式文件系统之mfs

本博客是为了方便博主自己查看大致流程,不要作为学习参考。环境:centos6.6mfs--master192.168.1.220mfs--metalogger192.168.1.225mfs--chunkserver--11192.168.1.221mfs--chunkserver--22192.168.1.218mfs--client192.168.1.224部署#安装Master S 查看详情

构建mfs分布式文件系统

++++++++++++++构建MFS分布式文件系统++++++++++++++PB级别:企业存储空间达到PB级别,即100万GB空间。(1PB=1000TB,1TB=1000GB,1GB=1000MB)MFS原理:MFS是一个具有容错额网络分布式文件系统,他把数据分散存放在多个物理服务器上,而呈现... 查看详情

mfs分布式文件系统(代码片段)

MFS原理MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。1)MFS文件系统的组成元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。... 查看详情

mfs分布式文件系统(代码片段)

[mfs工作原理]分布式原理分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。.MFS原... 查看详情

mfs分布式文件系统视频教程

 MFS分布式文件系统视频教程,有需要的同学加QQ1143815700,发个红包意思下就行哈  查看详情

mfs分布式文件系统之原理

1、分布式原理分布式文件系统就是把一些分散在多台计算机上的共享文件夹,集合到一个共享文件夹内,用户要访问这些文件夹的时候,只要打开一个文件夹,就可以的看到所有链接到此文件夹内的共享文件夹。2、MFS原理MFS是... 查看详情

mfs之分布式文件系统

MFS文件系统的组成1、 元数据服务器。在整个体系中负责管理管理文件系统,目前MFS只支持一个元数据服务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS能支持多个master服务器,进一步提高系... 查看详情

mfs分布式文件系统管理

...p://www.moosefs.org/reference-guide.htmlmooseFS(moose驼鹿)是一款网络分布式文件系统,它把数据分散到多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统,包含了层级结构(目录树),存储着文件属性(权限,... 查看详情

搭建mfs分布式文件系统(代码片段)

MFS原理MFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。MFS的组成管理服务器Master:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢... 查看详情

mfs(moosefs分布式文件系统)(代码片段)

MFS(MooseFS分布式文件系统)作者:张首富时间:2020-05-22wx:y18163201MooseFS[MFS]是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。官网地址:http://www.moosefs.com/... 查看详情