MFS分布式文件存储

目录

* 分布式原理

* MFS原理

* 案例实施

* 总结归纳

分布式原理

分布式文件系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单来说,就是把分散的共享文件夹,集合到一个虚拟文件夹内,客户只要打开这个虚拟文件夹,就可以访问到所有连接到虚拟文件夹内的共享文件。

MFS原理

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

(1)MFS文件系统

  • 元数据服务器(master)---在整个体系中负责管理文件系统,维护元数据。
  • 元数据日志服务器(metalogger)---备份master服务器的日志变化,数据丢失时,可从日志文件中恢复。
  • 数据存储服务器(chunk server)---真正存储数据的服务器。存储时把文件分块保存,并在数据服务器间进行复制。
  • 客户端(client)---可以像挂载NFS一样挂载MFS文件系统
    (2)读取数据处理过程

    (3)写入数据处理过程

    案例环境

主机 操作系统 IP地址 主要软件
Master Server CentOS-7-x86_64 192.168.37.128 mfs-1.6.27-5.tar.gz
Metalogger Server CentOS-7-x86_64 192.168.37.130 mfs-1.6.27-5.tar.gz
Chunk Server1 CentOS-7-x86_64 192.168.37.131 mfs-1.6.27-5.tar.gz
Chunk Server2 CentOS-7-x86_64 192.168.37.132 mfs-1.6.27-5.tar.gz
Client CentOS-7-x86_64 192.168.37.133 mfs-1.6.27-5.tar.gz;fuse-2.9.2.tar.gz

源码包:链接:https://pan.baidu.com/s/1UdorWep8OzdlL7CPbgyzJQ 提取码:62nv

案例实施

一、搭建Master Server

1、下载源码包及安装环境包

yum install gcc gcc-c++ zlib-devel -y
systemctl stop firewalld.service
setenforce 0

2、创建用户

useradd -s /sbin/nologin mfs

3、安装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 \           #运行masterserver的用户
--with-default-group=mfs \       #运行masterserver的组
--disable-mfschunkserver \        #关闭节点服务
--disable-mfsmount                     #关闭客户端服务

make && make install

4、复制配置文件

cd /usr/local/mfs/etc/mfs
cp mfsexports.cfg.dist mfsexports.cfg #被挂载目录及权限配置文件
cp mfsmaster.cfg.dist mfsmaster.cfg #主配置文件
cp mfstopology.cfg.dist mfstopology.cfg #拓扑架构感知

5、配置文件(此处无任何操作,主要对配置文件进行简介)

mfsmaster.cfg

#WORKING_ USER = mfs            #运行master server 的用户
#WORKING_ GROUP = mfs           #运行master server 的组
#SYSLOG_IDENT = mfsmaster        #master server 在syslog 中的标识,说明是由master serve 产生的
#LOCK_MEMORY = 0           #是否执行mlockall()以避免mfsmaster 进程溢出(默认为0)
#NICE_LEVEL = -19           #运行的优先级(如果可以默认是-19; 注意: 进程必须是用root 启动)
#EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg    #被挂接目录及其权限控制文件的存放位置
#DATA_PATH = /usr/local/mfs/var/mfs    #数据存放路径,此目录下大致有三类文件,changelog,sessions 和stats;
#BACK_LOGS = 50                 #metadata 的改变log 文件数目(默认是50)
#REPLICATIONS_ DELAY_INIT = 300                       #延迟复制的时间(默认是300s)
#REPLICATIONS_ DELAY_DISCONNECT = 3600      #chunkserver 断开的复制延迟(默认是3600)
#MATOML_LISTEN_HOST = *                #metalogger 监听的IP 地址(默认是*,代表任何IP)
#MATOML_LISTEN_PORT = 9419            #metalogger 监听的端口地址(默认是9419)
#MATOCS_LISTEN_ HOST = *            #用于chunkserver 连接的IP 地址(默认是*,代表任何IP
#MATOCS_LISTEN_PORT = 9420              #用于chunkserver 连接的端口地址(默认是9420)
#MATOCU_LISTEN_HOST = *                 #用于客户端挂接连接的IP 地址(默认是*,代表任何IP)
#MATOCU_LISTEN_PORT = 9421                #用于客户端挂接连接的端口地址(默认是9421)
#CHUNKS_LOOP_TIME = 300                      #chunks 的回环频率(默认是:300 秒)
#CHUNKS_DEL_LIMIT = 100
#CHUNKS_WRITE_REP_LIMIT = 1         #在一个循环里复制到一个chunkserver 的最大chunk 数目(默认是1)
#CHUNKS_READ_REP_LIMIT = 5          #在一个循环里从一个chunkserver 复制的最大chunk 数目(默认是5)
#REJECT_OLD_ CLIENTS = 0          #弹出低于1.6.0 的客户端挂接(0 或1,默认是0)

mfsexports.cfg

#Allow everything but "meta".
*                    /                rw,alldirs,admin,maproot=0:0
#Allow "meta".
*                    .                rw
每个条目被分为三部分:客户端IP    允许挂载的目录     客户端拥有的权限
alldirs:所有子目录都支持挂载
maproot:映射为root,还是指定的用户

6、启动服务

/usr/local/mfs/sbin/mfsmaster start
netstat -ntap | grep mfsmaster
#/usr/local/mfs/sbin/mfsmaster -s //停止

二、搭建Metalogger Server

1、下载源码包及安装环境包

yum install gcc gcc-c++ zlib-devel -y
systemctl stop firewalld.service
setenforce 0

2、创建用户

useradd -s /sbin/nologin mfs

3、安装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 \           #运行masterserver的用户
--with-default-group=mfs \       #运行masterserver的组
--disable-mfschunkserver \        #关闭节点服务
--disable-mfsmount                     #关闭客户端服务

make && make install

4、复制配置文件

cd /usr/local/mfs/etc/mfs
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg

5、修改配置文件

vim mfsmetalogger.cfg
MASTER_HOST = 192.168.37.128 #指向master server

6、开启服务

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

三、搭建Chunk Server

1、下载源码包及安装环境包

yum install gcc gcc-c++ zlib-devel -y
systemctl stop firewalld.service
setenforce 0

2、创建用户

useradd -s /sbin/nologin mfs

3、安装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 \           #运行masterserver的用户
--with-default-group=mfs \       #运行masterserver的组
--disable-mfsmaster \                 #关闭主服务
--disable-mfsmount                     #关闭客户端服务

make && make install

4、复制配置文件

cd /usr/local/mfs/etc/mfs
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg #提供存储空间

5、修改配置文件

vim mfschunkserver.cfg
MASTER_HOST = 192.168.37.128    **  #指向master server**

vim mfshdd.cfg              #末行插入
/data

mkdir /data
chown -R mfs.mfs /usr/local/mfs                #权限设置

6、开启服务

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

四、客户端

1、安装环境包

yum install gcc gcc-c++ zlib-devel -y
systemctl stop firewalld.service
setenforce 0

2、安装fuse插件(mfs客户端依赖于fuse)

tar zxvf fuse-2.9.2.tar.gz -C /opt             #加载内核的小插件

cd /opt/fuse-2.9.2
./configure

make && make install

3、设置环境变量

vim /etc/profile       #末行插入环境变量
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
#pkg-config 是通过库提供的一个 .pc 文件获得库的各种必要信息的,这些信息可以通过 pkg-config 提供的参数单独提取出来直接供编译器和连接器使用。

source /etc/profile

4、安装mfs客户端

useradd -s /sbin/nologin mfs          #创建用户
tar zxvf mfs-1.6.27 -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

5、挂载mfs文件系统

mkdir /opt/mfs
modprobe fuse #加载fuse模块到内核
/usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.37.128
df -h


6、优化mfs客户端常用操作

#mfs安装后生成/usr/local/mfs/bin目录,为方便使用其目录下的命名,可以加入到环境变量
vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH #识别mfs中所有命令
source /etc/profile

7、常用操作

mfsgetgoal -r /opt/mfs #复制文本
mfsgetgoal test #查询复制份数

8、开启监控

#在master server开启监控,端口为9425
/usr/local/mfs/sbin/mfscgiserv
netstat -ntap | grep 9425

9、客户端测试

客户端通过浏览器访问 http://192.168.37.128:9425

监控界面各部分含义如下:

  • Info:显示MFS基本信息。
  • Servers:列出现有的Chunk Server。
  • Disks:列出现有的Chunk Server的硬盘信息。
  • Exports:列出可被挂载的目录。
  • Mounts:列出被挂载的目录。
  • Operations:显示正在执行的操作。
  • Resources:列出当前储存信息。
  • Quotas:列出当前配额信息。
  • Master Charts:显示Master Server操作情况。
  • Server Charts:显示Chunk Server操作情况、数据传输及系统状态。

总结归纳

1、本实验中master只能做单点,会出现单点故障。
2、要保证Master Server的高可用,需要增加一台master,做群集服务,本章主要讲述其原理及操作,后续会有群集的博文更新。
3、master发生故障时,可以从metalogger中恢复。
4、希望与大家一起学习,不断成长!

原文地址:http://blog.51cto.com/13784264/2288364

时间: 2024-10-28 23:31:24

MFS分布式文件存储的相关文章

Linux MFS分布式文件系统介绍和安装

MFS分布式文件系统 mooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接. MooseFS[MFS]是一个具有容错性的网络分布式文件系统.它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. SAN和MFS比较 当我们存储服务器的容

分布式文件存储fastdfs

FastDFS是一个开源的轻量级应用级的分布式文件存储服务,它对文件进行管理,功能包括: 文件存储.文件同步.文件访问(文件上传.文件下载)等解决了大容量存储和负载均衡的问题. 特别适合以文件为载体的在线服务,如相册网站.视频网站等等. FastDFS有三个角色:跟踪服务器(tracker server).存储服务器(storage server)和客户端(client). 1)跟踪服务器:主要做调度工作 起负载均衡的作用 2)存储服务器:存储节点存储文件 完成文件管理的所有功能:存储.同步和提

分布式文件存储

Storage不小心看到这个类,注释写着// 分布式文件存储类....不懂,吖的,google不能用,只能用某度,挺火大的. 又找到ThinkPHP\Library\Think\Storage\Driver 下面的File.class.php,那么,Storage类只是通过判断type去加载File.class.php或Sea.class.php 暂时不懂原理,Storage就两个方法,能看懂,但不理解为什么要这样写,继续看. 分布式文件存储,布布扣,bubuko.com

.Net平台下,分布式文件存储的实现

遇到的问题 对于Web程序,使用一台服务器的时候,客户端上传的文件一般也都是存储在这台服务器上.但在集群环境中就行不通了,如果每个服务器都存储自己接受到的文件,就乱套了,数据库中明明有这个附件的记录,却找不到这个文件.于是,文件需要进行统一集中管理,并向集群中的服务器提供统一的路径. 基于NFS的分布式文件存储实现 Network File System 简称NFS,用人话说叫共享文件夹,可以实现分布式存储文件.只需要在文件服务器上共享文件夹,并指定相应账号的权限,并给Web服务器设置可以访问共

FastDFS分布式文件存储

  存储能力是提供给上层业务系统以实现文件存取服务,这个存储能力为XDFS,即可扩展的分布式文件系统,实现的原理是封装了第三方的分布式存储系统实现的. 目前封装的第三方分布式系统包括FastDFS.Hadoop的HDFS,所提供的存储接口如下: 1  文件上传 2 文件断点上传 3 文件下载 4 文件断点下载 5  文件删除 6 获取文件大小 7  获取文件Http下载地址 8 批量获取文件Http下载地址 FastDFS适合的场景是互联网大中型企业的高并发文件存储服务,比如存储图片.音频.视频

FastDFS 分布式文件存储

FastDFS 分布式文件存储 什么是FastDFS? FastDFS是一个开源的轻量级的分布式文件系统.他解决了大量数据存储和负载均衡等问题.特别适合以中小文件(4KB < FileSize < 500MB)为载体的在线服务,如视频,音频,图片网站等等.FastDFS是一款开源的轻量级分布式文件系统,他是由纯 C 实现,支持Linux,FreeBSD等UNIX系统类,不是通用的文件系统,只能通过专有的API访问,目前提供了C.Java和PHP API为互联网应用量身定做,解决大容量文件存储问

MFS分布式文件系统管理

MFS官方网站http://www.moosefs.org/reference-guide.html mooseFS(moose驼鹿)是一款网络分布式文件系统,它把数据分散到多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时)可以创建特殊的文件(块设备,字符设备,管道,套接字)符号链接. MooseFS文件系统介绍: MooseFS是一中分布式文件系统,MooseFS文件系统结构包括一下四种角色: 1

MFS分布式文件系统安装配置

一.地址规划 主控服务器MasterServer:192.168.11.100            安装Master角色 元数据日志服务器MetaLoggerServer:192.168.11.103          安装metalogger角色 存储服务器Chunk Server:192.168.11.102  192.168.11.110        安装chunkserver角色 客户端Client:192.168.11.111               安装mfsmount角色和

分布式文件存储FastDFS(一)初识FastDFS

一.FastDFS简介 FastDFS是一款开源的.分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发.作为一个分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题,特别适合中小文件(建议范围:4KB < file_size <500MB),对以文件为载体的在线服务,如相册网站.视频网站等等具有显著的效果. 二.FastDFS架构 FastDFS由客户端,跟踪服务器和