MFS分布式文件系统原理及环境搭建
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,传统NFS存储缺点分析:几台web服务器通过NFS共享一个存储,在业务功能上可以满足需求,但在性能与容量上,NFS无法胜任更高的要求,随着业务量的增加,经常出现超时的问题,而且NFS存在着单点故障的问
千家信息网最后更新 2024年11月26日MFS分布式文件系统原理及环境搭建
传统NFS存储缺点分析:
几台web服务器通过NFS共享一个存储,在业务功能上可以满足需求,但在性能与容量上,NFS无法胜任更高的要求,随着业务量的增加,经常出现超时的问题,而且NFS存在着单点故障的问题,尽管可以用rsync同步数据到另外一台服务器上做备份但对提高整个系统的性能并无帮助。
MFS:分布式文件系统介绍:
MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一整合的资源。
MFS是一个具有容错功能的,高可用,可扩展的海量级分布式文件系统;
MFS把数据分散在多台服务器上,单用户看到的只是一个源;
数据访问不再是一对多的关系,而是多对多,相较NFS性能大幅度提升;
包含了层级结构和文件属性,可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接和硬链接。
分布式原理:
分布式文件系统(distributed file system)是指文件系统管理的物质存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单说就是把一些分布在局域网内各个计算机上的共享文件夹,集合到一个虚拟共享文件夹内,客户端访问只需要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件,用户感觉不到这些共享文件是分散于各个计算机上的。 分布式文件系统的优点:集中访问、简化操作、数据容灾、提高了文件的存储性能。
MFS文件系统的组成:
元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs 当Master服务器数据丢失或者损坏时,可以从日志服务器中取得进行恢复。
数据存储服务器(Chunk server):真正存储数据的服务器。将文件分块保存,并相互进行复制。
客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
MFS文件系统的组成架构如下图所示:
MFS读取数据的处理过程:
客户端向元数据服务器发出读请求;
元数据服务器把所需数据存放的位置(Chunk server的IP地址和Chunk编号)告知客户端.
客户端向已知的Chunk server请求发送数据。
Chunk server向客户端发送数据。
MFS写入数据的处理过程:
客户端向元数据服务器发送写入请求。
元数据服务器与Chunk server进行交互,但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk server告知元数据服务器操作成功。
元数据服务器告知客户端,可以在哪个Chunk server的哪些Chunks写入数据。
客户端向指定的Chunk server写入数据。
该Chunk server与其他Chunk server进行数据同步,同步成功后Chunk server告知客户端数据写入成功。
客户端告知元数据服务器本次写入完毕。
实验环境介绍
主机
IP地址
安装软件包
操作系统
Master Server
192.168.30.55
mfs-1.6.27-5.tar.gz
CentOS7
MetaLogger Server
192.168.30.10
mfs-1.6.27-5.tar.gz
CentOS7
Chunk Server1
192.168.30.4
mfs-1.6.27-5.tar.gz
CentOS7
Chunk Server2
192.168.30.5
mfs-1.6.27-5.tar.gz
CentOS7
Client
192.168.30.6
mfs-1.6.27-5.tar.gz,fuse-2.9.2.tar.gz
CentOS7
实验部署
首先分别在这几个实验主机上关闭防火墙,selinux
systemctl stop firewalld.service
setenforce 0
一,搭建Master Server
yum安装编译环境包
yum install -y zlib-devel gcc gcc-c++
创建运行用户mfs
useradd mfs -s /sbin/nologin
安装源码包
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfschunkserver \ #关闭节点功能
--disable-mfsmount #关闭挂载
make && make install
复制配置文件
在Master上需要用到的配置文件有两个:mfsmaster.cfg(主配置文件)和mfsexports.cfg(被挂载目录及权限配置文件)
cd /usr/local/mfs/etc/mfs/
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
cd /usr/local/mfs/var/mfs/
cp metadata.mfs.empty metadata.mfs
不需要对配置文件做任何修改就可以开始工作
启动Master Server
/usr/local/mfs/sbin/mfsmaster start
ps aux | grep mfs
停止Master Server的命令
/usr/local/mfs/sbin/mfsmaster -s
二,搭建MetaLogger Server
yum安装编译环境包
yum install -y zlib-devel gcc gcc-c++
创建运行用户mfs
useradd mfs -s /sbin/nologin
安装源码包
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfschunkserver \ #关闭节点功能
--disable-mfsmount #关闭挂载
make && make install
复制配置文件
cd /usr/local/mfs/etc/mfs/
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
修改配置文件
vi mfsmetalogger.cfg
..............
MASTER_HOST = 192.168.30.55
..................
启动服务
/usr/local/mfs/sbin/mfsmetalogger start
三,搭建chunk Server(两台节点服务配置一样)
yum安装编译环境包
yum install -y zlib-devel gcc gcc-c++
创建运行用户mfs
useradd mfs -s /sbin/nologin
安装源码包
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfsmaster \ #关闭master功能
--disable-mfsmount #关闭挂载
make && make install
复制配置文件
cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
修改配置文件
vi mfschunkserver.cfg
MASTER_HOST = 192.168.30.55
指定 MFS共享文件存储目录,
实际生产环境需要单独提供磁盘阵列作为专门的MFS存储目录,这里只是进行实验,所以使用一个单独的目录代替
vi mfshdd.cfg
/data
mkdir / data
chown -R mfs:mfs /data
启动服务
/usr/local/mfs/sbin/mfschunkserver start
ps aux | grep mfs
四,客户端client配置
yum安装编译环境包
yum install -y zlib-devel gcc gcc-c++
创建运行用户mfs
useradd mfs -s /sbin/nologin
安装mfs源码包之前安装fuse插件,MFS客户端依赖于fuse
tar xzvf fuse-2.9.2.tar.gz
cd fuse-2.9.2
./configure
make && make install
设置环境变量
echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >>/etc/profile
source /etc/profile
安装mfs源码包客户端
tar zxvf mfs-1.6.27-5.tar.gz #解压源码包
cd mfs-1.6。27/
./configure \
--prefix=/usr/local/mfs \ #指定安装路径
--with-default-user=mfs \ #指定运行用户,组为mfs
--with-default-group=mfs \
--disable-mfsmaster \ #关闭master功能
--disable-mfschunkserver \ #关闭节点功能
--enable-mfsmount #关闭挂载
make && make install
挂载MFS文件系统
mkdir /opt/mfs //创建挂载点
modprobe fuse //加载fuse模块到内核//
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.30.55 挂载MFS
df -hT 查看挂载情况
如果要卸载,使用umount /opt/mfs即可。
优化客户端
echo "export PATH=/usr/local/mfs/bin:$PATH" >>/etc/profile
source /etc/profile
MFS常用操作
MFS在客户端安装完毕后,会生成/usr/local/mfs/bin目录,在这个目录下有很多命令,
mfsgetgoal:用来查询文件被复制的份数,利用-r选项可以对整个目录进行递归,goal是指文件被复制的份数
mfssetgoal:设置文件被恢复的份数,生产环境中chunk server节点数量应至少大于2,文件副本数小于等于chunk server服务器的数量
mfsgetgoal -r /opt/mfs
mfssetgoal -r 2 /opt/mfs/
echo abc123 >/opt/mfs/test1
在chunk server上可以查看存储的文件单元
所有配置工作做好了
五,在Master Server上启动监控
Mfscgiserv是用python编写的一个web服务器,其监听端口是9425,可以在master server上通过命令/usr/local/mfs/sbin/mfscgiserv来启动,用户利用浏览器就可以全面监控所有客户挂载,chunk server,master server,以及客户端的各种操作等
/usr/local/mfs/sbin/mfscgiserv
通过浏览器访问http://192.168.30.55:9425
文件
数据
服务
服务器
客户
客户端
系统
配置
用户
源码
存储
环境
运行
功能
目录
节点
分布式
成功
性能
文件夹
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
档案局专题数据库建设是什么意思
sql会破坏数据库硬件吗
个人成长经历数据库
数据库审计都有防统方功能吗
redis数据库有表没
服务器启动卡叫什么名字
计算机网络安全有关的书籍
成都软件开发培训学费
ssh登录服务器配置
政府建立网络安全责任制度
我们该怎么保护网络安全
上海游戏软件开发公司排名
对服务器的性能
沈阳软件开发定制费用多少
数据库系统概念 第6版
宁波游戏软件开发外包
新浪云数据库丢失怎么恢复吗
软件开发能干到多打
延边高品软件开发
吉林汇商网络技术公司
网络安全保卫局长
苏州oa软件开发价格
随申办服务器在哪里
路由器上网络安全密钥在哪
智能家居软件开发代工
企业软件开发阶段计划
方舟服务器管理员袋狮代码
数据库游标数据读取
网络安全教育活动方案设计
兰州市网络安全应急预案