CentOS7环境下搭建MFS分布式文件系统
admin
2023-03-08 10:41:56
0

MFS原理

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

MFS文件系统组成介绍

角色

作用

元数据服务器(Master)

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

元数据日志服务器 (Metalogger)

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

数据存储服务器(chunk servers)

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

客户端(Client)

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

MFS文件系统组成图示

CentOS7环境下搭建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监控网页

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

相关内容

热门资讯

原创 手... 以前购买的手机想要用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亿元。但这个数字被...
一艘越南籍渔船在南沙遇险,29... 新华社三沙7月25日电(记者赵颖全)记者从三沙海上搜救中心获悉,25日傍晚,一艘越南籍渔船在南沙永暑...
成都如何耕好新型工业化“试验田... 7月24日,APEC数字周城市侧配套活动——制造强国建设专家研讨暨新型工业化推进交流会举行,院士专家...