MFS分布式文件存储架构搭建

MFS分布式文件存储架构搭建

随着一些企业的发展,曾今公司内部使用的NFS无法负担起繁重的访问量。尽管有rsync进行远程数据同步,但是依旧无法突破存储瓶颈。而且NFS容易造成单节点故障大大影响了公司内部业务的运转。这是我们运维工程师不想看的。

MFS分布式文件系统

分布式文件系统是将存储资源拆散并且通过网络分别存入存储节点之中并创建副本。用户需要存储资源时,只需要访问元数据节点,元数据节点会根据用户的需求访问存储节点查看是否有足够的空间进行存储。之后元数据节点会返回告诉用户,应该将数据存储在哪一个节点之中。分布式带了许多好处:提高文件的存储性能、数据具有容灾性等。

MFS的组成&工作流程

元数据服务器(master):在整个体系中负责管理文件系统, 维护元数据。

元数据日志服务器(MetaLogger):备份 Master 服务器的变化日志文件, 文件类型为:changelog_ml.*.mfs。 当 Master 服务器数据丢失或者损坏,可以从日志服务器中取得文件恢复。

数据存储服务器(Chunk Server): 真正存储数据的服务器。 存储文件时, 会把文件分块保存, 并在数据服务器之间复制, 数据服务器越多, 能使用的“容量” 就越大, 可靠性就越高, 性能越好。

客户端(Client): 可以像挂载 NFS 一样挂载 MFS 文件系统。

一、MFS 读取数据的处理过程
1.客户端向元数据服务器发出读请求。
2.元数据服务器把所需数据存放的位置(Chunk Server 的 IP 地址和 Chunk 编号) 告知客户端。
3.客户端向已知的 Chunk Server 请求发送数据。
4.Chunk Server 向客户端发送数据。

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

搭建MFS

一、环境准备:
需要六台虚拟机:一台元数据节点、一台元数据日志节点、三台存储节点和一台客户端。
关闭所有节点的防火墙和核心防护。

二、搭建流程
1.为所有节点配置主机名。

hostnamectl set-hostname master
hostnamectl set-hostname metalog
hostnamectl set-hostname chunk1
hostnamectl set-hostname chunk2
hostnamectl set-hostname chunk3
hostnamectl set-hostname client

2.配置主机映射

vim /etc/hosts
192.168.80.100	master
192.168.80.101	metalog
192.168.80.102	chunk1
192.168.80.103	chunk2
192.168.80.104	chunk3
192.168.80.105	client

3.所有节点安装编译环境

yum -y install gcc zlib-devel

################################################################################
4.master端搭建:创建没有家目录、无法从终端登陆的程序型用户。

useradd -s /sbin/nologin -M mfs

5.编译安装,指定相应的安装路径、用户、组、服务端。

./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount

make && make install

6.配置配置文件,开启元数据服务,查看监听端口。
首先到安装路径下。

cd /usr/local/mfs/

在这里插入图片描述
将元数据节点配置文件模板进行备份复制。

cp mfsmaster.cfg.sample mfsmaster.cfg
cp mfsexports.cfg.sample mfsexports.cfg
cp mfstopology.cfg.sample mfstopology.cfg

在这里插入图片描述

cd /usr/local/mfs/var/mfs/
cp -p metadata.mfs.empty metadata.mfs 

启动元数据服务,并查看端口是否开。

/usr/local/mfs/sbin/mfsmaster start
 netstat -anpt | grep mfs
 ```![在这里插入图片描述](https://img-blog.csdnimg.cn/20200324180408889.png)
###############################################################################
7.编译安装元数据日志端。
和之前master节点安装类似,创建用户,解压安装包,编译安装。

useradd -s /sbin/nologin -M mfs

./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfschunkserver
–disable-mfsmount

make && make install

8.修改日志端的配置文件

cd /usr/local/mfs/etc/mfs

cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
vim mfsmetalogger.cfg
51 # MooseFS master host, IP is allowed only in single-master installations (default is mfsmaster)
52 # MASTER_HOST = mfsmaster
53 MASTER_HOST = 192.168.80.100

添加元数据节点IP地址。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020032418144059.png)
9.开启日志功能。

/usr/local/mfs/sbin/mfsmetalogger start
netstat -anpt | grep mfs

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200324182013503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1F3UU5pZ2h0bWFyZQ==,size_16,color_FFFFFF,t_70)
##########################################################################
三个存储节点的安装过程都是一样的。
10.创建程序型用户,解压安装包,编译安装。

useradd -s /sbin/nologin -M mfs
./configure
–prefix=/usr/local/mfs
–with-default-user=mfs
–with-default-group=mfs
–disable-mfsmaster
–disable-mfsmount

make && make instal

修改存储节点配置文件。

cd /usr/local/mfs/etc/mfs/
cp mfschunkserver.cfg.sample mfschunkserver.cfg
cp mfshdd.cfg.sample mfshdd.cfg

vim mfschunkserver.cfg
#添加主节点IP地址。
MASTER_HOST = 192.168.80.100

#添加/data目录
vi mfshdd.cfg
#在最后一行添加/data路径
/data

#创建/data目录,并修改属主和属组。

mkdir /data
chown -R mfs:mfs /data

11.开启存储节点功能。

/usr/local/mfs/sbin/mfschunkserver start
netstat -anpt | grep mfs

在这里插入图片描述

#############################################################################

12.客户端安装
解压fuse-2.9.2安装包,并编译安装。

tar xzvf fuse-2.9.2.tar.gz -C /opt
cd 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

13.创建程序型用户,安装mfs客户端。

useradd -s /sbin/nologin -M mfs

安装mfs客户端

cd /opt/moosefs-3.0.100/

./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount

make && make install

14.创建一个挂载点,并挂载mfs。

#创建挂载点
mkdir /opt/mfs
#加载fuse到系统内核
modprobe fuse  

#临时挂载,主节点IP地址
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.80.100

15.用开机启动脚本,永久挂载mfs
在/etc/profile.d目录下配置启动脚本

vim mfs_mount.sh
#!/bin/bash
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.80.100 >/dev/null 2>&1
chmod +x mfs_mount.sh

这样mfs分布式存储就搭建好了。
在这里插入图片描述

开启监控dashboard

在主节点上输入开启控制开命令。之后通过游览器查看存储信息。

/usr/local/mfs/sbin/mfscgiserv

游览器里输入地址
http://192.168.80.100:9425/mfs.cgi?masterhost=mfs-master 

综合信息界面,包含节点概括信息。
在这里插入图片描述

磁盘使用信息。
在这里插入图片描述
挂载点信息
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值