在CentOS7上部署MFS分布式文件系统
admin
2023-03-09 12:42:22
0

MFS原理

MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。

1)MFS文件系统的组成

MFS文件系统的组成架构如图所示。

  • 元数据服务器(Master):在整个体系中负责管理文件系统,维护元数据。
  • 元数据日志服务器(MetaLogger):备份Master服务器的变化日志文件,文件类型为changelog_ml.*.mfs。当Master服务器数据丢失或者损坏时,可以从日志服务器中取得文件,进行恢复。
  • 数据存储服务器(Chunk Server):真正存储数据的服务器。存储文件时,会把文件分块保存,并在数据服务器之间进行复制。数据服务器越多,能使用的“容量”就越大,可靠性就越高,性能也就越好。
  • 客户端(Client):可以像挂载NFS一样挂载MFS文件系统,其操作是相同的。
    在CentOS7上部署MFS分布式文件系统

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

  • 客户端向元数据服务器发出读请求。
  • 元数据服务器把所需数据存放的位置(Chunk Server的IP地址和Chunk编号)告知客户端。
  • 客户端向已知的Chunk Server请求发送数据。

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

    3)MFS写入数据的处理过程。

  • 客户端向元数据服务器发送写入请求。
  • 元数据服务器与Chunk Server进行交互(只有当所需的分块Chunks存在的时候才进行这个交互),但元数据服务器只在某些服务器创建新的分块Chunks,创建成功后由Chunk Servers告知元数据服务器操作成功。
  • 元数据服务器告知客户端,可以在哪个Chunk Server的哪些Chunks写入数据。
  • 客户端向指定的Chunks Server写入数据。
  • 该Chunk Server与其他Chunk Server进行数据同步,同步成功后Chunk Server告知客户端数据写入成功。
  • 客户端告知元数据服务器本次写入完毕。

实验环境

主机 IP地址 主要软件
Master Server 192.168.58.10 mfs-1.6.27-5.tar.gz
MetaLogger Server 192.168.58.11 mfs-1.6.27-5.tar.gz
Chunk Server1 192.168.58.12 mfs-1.6.27-5.tar.gz
Chunk Server2 192.168.58.13 mfs-1.6.27-5.tar.gz
Client 192.168.58.14 mfs-1.6.27-5.tar.gz fuse-2.9.2.tar.gz

1.搭建Master Server

systemctl stop firewalld.service        //关闭防火墙及增强安全功能
systemctl disable firewalld.service
setenforce 0
yum install -y zlib-devel gcc gcc-c++   //安装软件包

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

mkdir /abc      //创建压缩目录
mount.cifs //192.168.58.22/share /abc           //挂载
cd /abc
tar zxvf mfs-1.6.27-5.tar.gz -C /opt        //解压软件包

cd /opt/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 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

/usr/local/mfs/sbin/mfsmaster start         //启动Master Server
ps -ef | grep mfs       //检查是否启动

/usr/local/mfs/sbin/mfsmaster -s //停止命令(选择性使用)

2.搭建MetaLogger Server

systemctl stop firewalld.service        //关闭防火墙及增强安全功能
systemctl disable firewalld.service
setenforce 0
yum install -y zlib-devel gcc gcc-c++   //安装软件包

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

mkdir /abc      //创建压缩目录
mount.cifs //192.168.58.22/share /abc           //挂载
cd /abc
tar zxvf mfs-1.6.27-5.tar.gz -C /opt        //解压软件包

cd /opt/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

vi mfsmetalogger.cfg
...
MASTER_HOST = 192.168.58.10         //修改为Master Server的IP地址
...

/usr/local/mfs/sbin/mfsmetalogger start
ps -ef | grep mfs

/usr/local/mfs/sbin/mfsmetalogger -s        //停止MetaLogger Server(选择性使用)

3.搭建Chunk Server1、Chunk Server2

systemctl stop firewalld.service        //关闭防火墙及增强安全功能
systemctl disable firewalld.service
setenforce 0
yum install -y zlib-devel gcc gcc-c++   //安装软件包

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

mkdir /abc      //创建压缩目录
mount.cifs //192.168.58.22/share /abc           //挂载
cd /abc
tar zxvf mfs-1.6.27-5.tar.gz -C /opt        //解压软件包

cd /opt/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.dist mfschunkserver.cfg
cp mfshdd.cfg.dsit mfshdd.cfg

vi mfschunkserver.cfg
...
MASTER_HOST = 192.168.58.10    //修改为Master Server的IP地址
...

vi mfshdd.cfg
/data       //末尾添加一行,这里的/data是一个给MFS的分区

mkdir /data                     /创建相应/data目录
chown -R mfs:mfs /data          //修改属主属组

/usr/local/mfs/sbin/mfschunkserver start     //启动Chunk Server
/usr/local/mfs/sbin/mfschunkserver -s       //关闭Chunk Server (选择性使用)

4.客户端配置

systemctl stop firewalld.service        //关闭防火墙及增强安全功能
systemctl disable firewalld.service
setenforce 0
yum install -y zlib-devel gcc gcc-c++   //安装软件包
4.1安装FUSE
tar xzvf fuse-2.9.2.tar.gz -C /opt      //先挂载好,然后到目录下解压
cd /opt/fuse-2.9.2  

./configure
make && make install

vi /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH    //添加到末尾
source /etc/profile
4.2安装MFS客户端
useradd -s /sbin/nologin -M mfs
cd /abc
tar zxvf mfs -C /opt

cd /opt/mfs
./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount                   //开启MFS挂载功能

make && make install

mkdir /opt/mfs              //创建挂载点
modprobe fuse          //加载fuse模块到内核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.58.10
df -hT          //查看挂载情况

vi /etc/profile                     //优化客户端
export PATH=/usr/local/mfs/bin:$PATH            //添加/usr/local/mfs/bin至环境变量
source /etc/profile

5.MFS监控

Mfscgiserv是用python编写的一个Web服务器,其监听端口是9425,可以在Master Server上通过命令/usr/local/mfs/sbin/mfscgiserv来启动,用户利用浏览器就可以全面监控所有客户挂载、Chunk Server、Master Server,以及客户端的各种操作等。
客户端上通过浏览器访问http://192.168.58.10:9425
在CentOS7上部署MFS分布式文件系统

相关内容

热门资讯

人民日报:查处携程垄断案释放反... 林丽鹂 《人民日报》(2026年07月26日 第02版)携程垄断案的查处是平台经济反垄断常态化监管的...
以总理计划向特朗普递交伊朗情报 △以色列总理内塔尼亚胡(资料图)当地时间7月25日,总台记者自以色列方面获悉,以总理内塔尼亚胡及其访...
原创 手... 以前购买的手机想要用3天不充电,基本上是不可能的,但这两年手机电池技术有大突破,非重度使用的情况下,...
咪咕数媒亮相第34届全国图书交... 潮新闻客户端 记者 王景平 7月24日,第34届全国图书交易博览会盛大举办。作为数字文化领域的核心央...
王兴兴和他的机甲机器人登上《时... 当地时间7月23日,宇树科技创始人兼首席执行官王兴兴与该公司突破性的载人机甲机器人GD01共同登上美...
APEC论坛聚焦亚太人工智能普... 这是7月23日在成都街头拍摄的会议主题装置。当日,2026年亚太经合组织(APEC)数字和人工智能部...
菲尔兹奖得主王虹4岁不慎烫伤,... 中国数学家王虹、邓煜获得菲尔兹奖,这是中国籍数学家首次获得这一奖项。王虹1991年出生在广西桂林平乐...
美媒:特朗普下令暂停空袭伊朗 美国“Axios”新闻网7月25日援引知情人士报道,特朗普24日指示美军不得对伊朗发动新的打击,打破...
法国野火“创历史纪录”:政坛吵... 综合法媒BFM新闻台、《费加罗报》报道,当地时间7月25日中午,内政部长努内兹(Laurent Nu...
51.79亿,携程真的疼了吗? 2026年7月25日,市场监管总局对携程反垄断案作出行政处罚:罚没款合计51.79亿元。但这个数字被...