千家信息网

CentOS7环境下搭建MFS分布式文件系统

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,MFS原理MFS是一个具有容错性的网络分布式文件系统,它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。MFS文件系统组成介绍角色作用元数据服务器(Master)一台管理整个文件系
千家信息网最后更新 2026年10月31日CentOS7环境下搭建MFS分布式文件系统

MFS原理

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

MFS文件系统组成介绍

角色

作用

元数据服务器(Master)

一台管理整个文件系统的独立主机,存储着每个文件的元数据(文件的大小、属性、位置信息,包括所有非常规文件的所有信息,例如目录、套接字、管道以及设备文件)。

元数据日志服务器 (Metalogger)

任意数量的服务器,用来存储元数据变化日志并周期性下载主要元数据文件,以便用于管理服务器意外停止时好接替其位置。

数据存储服务器(chunk servers)

任意数目的商用服务器,用来存储文件数据并在彼此之间同步(如果某个文件有超过一个备份的话)。

客户端(Client)

任意数量的主机,可以通过mfsmount进程与管理服务器(接收和更改元数据)和数据服务器(改变实际文件数据)进行交流。

MFS文件系统组成图示

MFS读取数据处理过程:

  • Client向Master发出读请求

  • Master把所需的数据存放位置(Chunk IP&Chunk No.)告知Client

  • Client向Chunk发送数据请求

  • Chunk向Client发送数据

MFS写入数据处理过程:

  • Client向Master发出写入请求

  • Master与Chunk进行交互,但Master只在某些服务器创建新的分块Chunks,创建成功后由Chunk告知Master创建成功

  • Master告知Client可以在哪个Chunk的哪些Chunks写入数据

  • Client向指定的Chunk写入数据

  • Chunk与其他Chunk进行数据同步,同步成功后Chunk告知Client写入数据成功

  • Client告知Master本次写入完毕

实验环境介绍:


192.168.218.156

主机

IP地址

Master Server192.168.218.130
MetaLogger Server192.168.218.157
Chunk1 Server
Server192.168.218.145
Client Server192.168.218.139

实验步骤:

安装master server:

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

useradd -s /sbin/nologin mfs

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 \ #禁用Chunk功能

--disable-mfsmount #禁用Client功能


make && make install

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

cp mfsexports.cfg.dist mfsexports.cfg #使挂载权限配置文件生效

cp mfsmaster.cfg.dist mfsmaster.cfg #使master主配置文件生效

cp mfstopology.cfg.dist mfstopology.cfg #使拓扑架构感知配置文件生效

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

cp metadata.mfs.empty metadata.mfs # 使防断链文件生效

/usr/local/mfs/sbin/mfsmaster start

systemctl stop firewalld.service

setenforce 0

netstat -ntap | grep mfs

#/usr/local/mfs/sbin/mfsmaster -s #停止服务

搭建MetaLogger server:

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

useradd -s /sbin/nologin mfs

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 #使日志配置文件生效

vim mfsmetalogger.cfg

MASTER_HOST = 192.168.218.130 #指定Master服务器地址

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

cp metadata.mfs.empty metadata.mfs #使防断链文件生效

/usr/local/mfs/sbin/mfsmaster start

systemctl stop firewalld.service

setenforce 0

搭建两台Chunk服务器:

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

useradd -s /sbin/nologin mfs

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 #使chunk配置文件生效

cp mfshdd.cfg.dist mfshdd.cfg #使硬盘提供存储空间配置文件生效

vim mfschunkserver.cfg

MASTER_HOST = 192.168.218.130

vim mfshdd.cfg

/data

mkdir /data

chown -R mfs.mfs /data/

/usr/local/mfs/sbin/mfschunkserver start #启动服务

systemctl stop firewalld.service

setenforce 0

netstat -ntap | grep mfs

Client配置

systemctl stop firewalld.service

setenforce 0

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

tar zxvf fuse-2.9.2.tar.gz -C /opt #内核加载包

cd /opt/fuse-2.9.2/

./configure

make && make install

vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

source /etc/profile

安装mfs客户端

useradd -s /sbin/nologin mfs

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-mfschunkserver \

--enable-mfsmount


make && make install

mkdir /opt/mfs

modprobe fuse #加载fuse模块到内核

/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.218.130 #挂载MFS服务

优化客服端

vim /etc/profile

export PATH=/usr/local/mfs/bin:$PATH

source /etc/profile

echo 'this is test!' > /opt/mfs/abc.txt

mfssetgoal -r 2 /opt/mfs #设置文件被复制的份数,-r表示递归

/opt/mfs:

inodes with goal changed: 2

inodes with goal not changed: 0

inodes with permission denied: 0

mfsgetgoal -r /opt/mfs #查看复制文件的份数

/opt/mfs/abc.txt: 2

mfsfileinfo /opt/mfs/abc.txt #查看实际副本份数及其所在的节点

/opt/mfs/abc.txt:

chunk 0: 0000000000000001_00000001 / (id:1 ver:1)

copy 1: 192.168.218.145:9422

copy 2: 192.168.218.156:9422

MASTER-Server----------------启动监控程序

[root@master 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.218.130:9425查看MFS监控网页

文件 数据 服务 服务器 配置 存储 系统 成功 主机 份数 位置 日志 同步 管理 信息 内核 功能 地址 实际 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 广东万易互联网科技有限公司惠州分公司 广州紫鲸互联网科技有限公司 互联网科技公司发展 远信互联网科技 科技创新互联网企业 美国互联网前沿科技 哈尔滨秒房互联网科技有限公司 成都玖崟互联网科技有限公司乐商圈怎么样 互联网教育科技公司vipkid 贵州叶脉互联网科技有限公司所属行业 宁夏科技产业互联网案例 辽宁互联网新科技 畅思互联网科技 工业互联网等科技实现智能化赋能 上海科技产业互联网平台 江苏苏星互联网科技有限公司 互联网科技手机排行榜 科技互联网企业在行动 株洲百竞科技的互联网营销顾问 极限挑战互联网科技 互联网科技缩写 易通互联网络科技有限公司 长亮科技互联网金融 富国互联网科技创新基金 彤创互联网科技有限公司 伊宁互联网科技做什么的 华中科技大学互联网的牛人 上海乐五互联网科技有限公司 西安有哪些互联网高科技企业
0