关键词:
MFS分布式文件系统
实验环境:
在公司内部通过nfs方式共享一个服务器的存储空间,使得nfs服务器不堪重负,经常出现超时问题,为了提高整个系统的性能,所以采用mfs分布式文件系统,mfs分布式文件系统是一个具有容错功能、高可用、可扩展的海量级分布式文件系统,mfs把数据分散在多台服务器中,但用户看到的只有一个源。
实验原理:
MFS读取数据的处理过程:
1.client向master请求读数据
2.master把所需数据存放的位置(chunk-server的ip及chunks编号)告知client
3.client向chunk-server请求发送数据
4.chunk-server给client发送数据
MFS写入数据的处理过程:
1.client向master发送写请求
2.master与chunk-server交互,确认能提供写入数据的chunk-server及其chunks编号
3.master将确认好的chunk-server的ip及chunks编号发给client
4.client将数据写入到chunk-server的chunks编号的磁盘上
5.chunk-server与其他chunk-server进行数据同步,成功后告知client写入成功
6.client告知master写入结束
实验步骤:
1.搭建元数据服务器mster server:192.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.搭建元数据日志服务器metalogger:192.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-server:192.168.100.153-155
1)chunk1:192.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)配置chunk2及chunk3:192.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及灾难恢复:
1)MFS集群的启动与停止:
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.cfg和mfsexports.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/... 查看详情