分布式

1、简介
分布式文件系统(Distributed File System) 是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。简单来说就是把一些分散的(分布在局域网内各个计算机上) 共享文件夹, 集合到一个文件夹内(虚拟共享文件夹)。 对于用户来说, 要访问这些共享文件夹时, 只要打开这个虚拟共享文件夹, 就可以看到所有链接到虚拟共享文件夹内的共享文件夹, 用户感觉不到这些共享文件是分散于各个计算机上的。分布式文件系统的好处是集中访问、简化操作、数据容灾、提高文件存取性能
2、分布式优势

  • 集中访问
  • 简化操作
  • 数据容灾
  • 提高文件存储性能

MFS分布式存储

1、简介
MFS 正式推出是在2008 年 5 月, 是一个具有容错功能的、 高可用、 可扩展的海量级分布式文件系统。 MFS 把数据分散在多台服务器上, 但用户看到的只是一个源。 MFS 也像其他类 UNIX 文件系统一样,包含了层级结构、 文件属性, 可以创建特殊的文件(块设备、 字符设备、 管道、 套接字)、符号链接和硬链接
2、MFS原理
MFS 是一个具有容错性的网络分布式文件系统, 它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源
3、MFS文件系统的组成

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

4、MFS 读取数据的处理过程

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

5、MFS 写入数据的处理过程

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

实验环境

1、基本组成架构拓扑图

2、IP地址规划

主机名 操作系统 IP地址
mfsmaster CentOS 7.6 192.168.7.128
metalogger CentOS 7.6 192.168.7.129
chunk1 CentOS 7.6 192.168.7.134
chunk2 CentOS 7.6 192.168.7.138
chunk3 CentOS 7.6 192.168.7.135
client CentOS 7.6 192.168.7.157

MFS安装部署

实验所需安装包:
链接:https://pan.baidu.com/s/1dvmx5McKBqNfXfdkd07deg
提取码:p42o
1、环境准备(所有服务器)
(1)关闭防火墙
(2)关闭核心功能
(3)配置主机名
(4)配置hosts
(5)将安装包上传至/opt目录下
2、搭建Master Server
(1)安装依赖包

[root@mfsmaster ~]# hostnamectl set-hostname mfsmaster

(2)创建用户

[root@mfsmaster ~]# useradd -s /sbin/nologin -M mfs

(3)安装源码包

[root@mfsmaster ~]# cd /opt
[root@mfsmaster opt]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@mfsmaster opt]# cd /opt/moosefs-3.0.100/
[root@mfsmaster moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount[root@mfsmaster moosefs-3.0.100]# make && make install

(4)复制master配置文件,启动服务

[root@mfsmaster moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[root@mfsmaster mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg
[root@mfsmaster mfs]# cp mfsexports.cfg.sample mfsexports.cfg
[root@mfsmaster mfs]# cp mfstopology.cfg.sample mfstopology.cfg
[root@mfsmaster mfs]# cd /usr/local/mfs/var/mfs/
[root@mfsmaster mfs]# cp metadata.mfs.empty metadata.mfs
[root@mfsmaster mfs]# chown mfs:mfs /usr/local/mfs/var/mfs
#启动
[root@mfsmaster mfs]# /usr/local/mfs/sbin/mfsmaster start
[root@mfsmaster mfs]# netstat -anpt | grep mfs
tcp        0      0 0.0.0.0:9419            0.0.0.0:*               LISTEN      7028/mfmaster
tcp        0      0 0.0.0.0:9420            0.0.0.0:*               LISTEN      7028/mfmaster
tcp        0      0 0.0.0.0:9421            0.0.0.0:*               LISTEN      7028/mfmaster

3、搭建MetaLogger server
(1)安装相关依赖包

[root@metalogger ~]# yum -y install gcc zlib-devel

(2)创建用户

[root@metalogger ~]# useradd -s /sbin/nologin -M mfs

(3)安装源码包 ##上传到/opt目录

[root@metalogger ~]# cd /opt
[root@metalogger opt]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@metalogger opt]# cd /opt/moosefs-3.0.100/
[root@metalogger moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfschunkserver \
--disable-mfsmount[root@metalogger moosefs-3.0.100]# make && make install

(4)复制metalogger主配置文件

[root@metalogger moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs
[root@metalogger mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg

(5)修改metalogger主配置文件, 指定master地址

[root@metalogger mfs]# vi /usr/local/mfs/etc/mfs/mfsmetalogger.cfgMASTER_HOST = 192.168.7.128

(6)启动服务

[root@metalogger mfs]# /usr/local/mfs/sbin/mfsmetalogger start
[root@metalogger mfs]# netstat -anpt | grep mfs
tcp        0      0 192.168.7.129:48212     192.168.7.128:9419      ESTABLISHED 7057/mfmetalogger

4、搭建chunkserver1、chunkserver2、chunkserver3
(1)安装相关依赖包

[root@chunk1 ~]# yum -y install gcc zlib-devel

(2)创建用户

[root@chunk1 ~]# useradd -s /sbin/nologin -M mfs

(3)安装源码包

[root@chunk1 ~]# cd /opt
[root@chunk1 opt]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@chunk1 opt]# cd /opt/moosefs-3.0.100/
[root@chunk1 moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfsmount[root@chunk1 moosefs-3.0.100]# make && make install

(4)复制mfschunk配置文件

[root@chunk1 moosefs-3.0.100]# cd /usr/local/mfs/etc/mfs/
[root@chunk1 mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@chunk1 mfs]# cp mfshdd.cfg.sample mfshdd.cfg

(5)修改mfschunk主配置文件, 指定master

[root@chunk1 mfs]# vi mfschunkserver.cfg
MASTER_HOST = 192.168.7.128[root@chunk1 mfs]# vi mfshdd.cfg
/data[root@chunk1 mfs]# mkdir /data
[root@chunk1 mfs]# chown -R mfs:mfs /data

(6)启动服务

[root@chunk1 mfs]# /usr/local/mfs/sbin/mfschunkserver start
[root@chunk1 mfs]# netstat -anpt | grep mfs
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      7187/mfchunkserver
tcp        0      0 192.168.7.134:47880     192.168.7.128:9420      ESTABLISHED 7187/mfchunkserver

5、搭建client
(1)安装相关依赖包

[root@client ~]# yum -y install gcc zlib-devel

(2)安装FUSE

[root@client ~]# cd /opt
[root@client opt]# tar zxvf fuse-2.9.2.tar.gz
[root@client opt]# cd fuse-2.9.2
[root@client fuse-2.9.2]# ./configure
[root@client fuse-2.9.2]# make && make install

(3)设置环境变量

[root@client ~]# vi /etc/profile
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH[root@client ~]# source /etc/profile

(4)安装MFS客户端

[root@chunk1 ~]# useradd -s /sbin/nologin -M mfs
[root@client ~]# cd /opt
[root@client opt]# tar xzvf moosefs-3.0.100-1.tar.gz -C /opt/
[root@client opt]# cd /opt/moosefs-3.0.100/
[root@client moosefs-3.0.100]# ./configure \
--prefix=/usr/local/mfs \
--with-default-user=mfs \
--with-default-group=mfs \
--disable-mfsmaster \
--disable-mfschunkserver \
--enable-mfsmount[root@client moosefs-3.0.100]# make && make install

(5)挂载MFS文件系统

[root@client ~]# mkdir /opt/mfs
#加载fuse模块到内核
[root@client ~]# modprobe fuse
#挂载
[root@client ~]# /usr/local/mfs/bin/mfsmount /opt/mfs -H 192.168.7.128
mfsmaster accepted connection with parameters: read-write,restricted_ip,admin ; root mapped to root:root


6、MFS常用操作
(1)MFS 在客户端安装完毕后, 会生成/usr/local/mfs/bin/目录, 在这个目录下有很多命
令是用户所需要的。 为了方便使用这些命令, 可将/usr/local/mfs/bin 加入到环境变量中

[root@client ~]# vim /etc/profile
export PATH=/usr/local/mfs/bin:$PATH
[root@client ~]# source /etc/profile

(2)mfsgetgoal 命令用来查询文件被复制的份数, 利用-r 命令可以对整个目录进行递归,goal 是指文件被复制的份数

[root@client ~]# mfsgetgoal -r /opt/mfs
/opt/mfs:directories with goal          2 :          1

(3) 命令 mfssetgoal 用来设置文件被复制的份数, 生产环境Chunk Server节点数量应至少大于 2, 文件副本数小于等于Chunk Server服务器的数量

[root@client ~]# mfssetgoal -r 3 /opt/mfs/
/opt/mfs/:inodes with goal changed:                       1inodes with goal not changed:                   0inodes with permission denied:                  0

(4)创建文件测试

[root@client ~]# cd /opt/mfs/
[root@client mfs]# touch test01
[root@client mfs]# mfsgetgoal test01
test01: 3

6、Master Server启动监控程序

[root@mfsmaster ~]#  /usr/local/mfs/sbin/mfscgiserv

使用浏览器打开网址http://192.168.7.128:9425查看
其中各部分的含义如下:

  • Info 部分: 显示了 MFS 的基本信息
  • Servers 部分: 列出现有 Chunk Server
  • Disks 部分: 列出现有 Chunk Server 硬盘信息
  • Exports 部分: 列出可被挂载的目录
  • Mounts 部分: 列出被挂载的目录
  • Operations 部分: 显示正在执行的操作
  • Resources 部分: 列出当前存储信息
  • Quitas 部分: 列出当前配额信息
  • Master charts 部分: 显示 Master Server 的操作情况, 读、 写、 删除等操作
  • Server charts 部分: 显示 Chunk Server 的操作情况、 数据传输率及系统状态

7、MFS 集群的启动与停止
(1)MFS 集群启动的顺序如下

  • 启动 mfsmaster 进程。
  • 启动所有的 mfschunkserver 进程。
  • 启动 mfsmetalogger 进程(如果配置了 mfsmetalogger)。
  • 在所有的客户端挂载 MFS 文件系统。

(2)MFS 集群停止的顺序如下。

  • 在所有的客户端卸载 MFS 文件系统。
  • 用 mfschunkserver stop 命令停止 chunkserver 进程。
  • 用 mfsmetalogger stop 命令停止 metalogger 进程。
  • 用 mfsmaster stop 命令停止 master 进程

8、MFS灾难恢复
(1)整个 MFS 体系中, 直接断电只有 Master 有可能无法启动, 可以在 master 上使用命令 /usr/local/mfs/sbin/mfsmaster -a修复
(2)MFS元数据通常有两部分的数据,分别如下
①主要元数据文件 metadata.mfs, 当 mfsmaster 运行时会被命名为 metadata.mfs.back
②元数据改变日志 changelog.*.mfs, 存储了过去的 N 小时的文件改变(N 的数值是由
BACK_LOGS 参数设置的, 参数的设置在 mfschunkserver.cfg 配置文件中)
③在 Master 发生故障时, 可以从 MetaLogger 中恢复 Master, 步骤如下:

  • 安装一台 mfsmaster, 利用同样的配置来配置这台 mfsmaster。
  • 将 metalogger 上 /usr/local/mfs/var/mfs/目录下的文件复制到 mfsmaster 相应的目
    录中
[root@mfsmaster ~]#scp root@192.168.7.129:/usr/local/mfs/var/mfs/* /usr/local/mfs/var/mfs/
  • 利用 mfsmetarestore 命令合并元数据 changelogs。
[root@mfsmaster ~]#/usr/local/mfs/sbin/mfsmaster -a
  • 如果是全新安装的 Master, 恢复数据后, 要更改 metalogger 和 chunkserver 配置MASTER_HOST 的 IP, 客户端也需要重新挂载

MFS分布式存储安装部署相关推荐

  1. Glusterfs 分布式存储安装部署

    Glusterfs 分布式存储部署 是存储当中可以选择的一种 现在很多虚拟化 云计算都在用软件存储 例如 ceph Glusterfs 等等 今天我们部署一下Glusterfs环境 GlusterFs ...

  2. MFS分布式存储-集群

    MFS分布式存储-集群 3.1.了解MFS 什么是MFS MooseES.是一个具备==容余容错功能的分布式网络文件系统, 将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本 ...

  3. mfs分布式存储+master端高可用

    2019独角兽企业重金招聘Python工程师标准>>> MFS 文件系统结构: 包含 4 种角色: 管理服务器 managing server (master) 元数据日志服务器 M ...

  4. Kubernetes中分布式存储Rook-Ceph部署快速演练

    最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也抽空多了解了一些.项目主要基于Rook-Ceph运行,考虑到Rook-Ceph部署也不那么简单,官方文档的步骤起点也不算低,因此,在整 ...

  5. Prometheus监控系列一 | 安装部署及配置

    Prometheus监控系列一 | 安装部署及配置 文章目录 0 简介 1 基础环境 2 安装Prometheus 2.1 安装 2.2 配置开机自启动 2.3 启动服务 2.4 验证 3 安装Gra ...

  6. ceph分布式存储安装及简单使用

    ceph官方文档地址:https://docs.ceph.com/docs/master/start/intro/ Github地址:https://github.com/ceph/ceph 一.ce ...

  7. 循序渐进丨在openEuler 20.03操作系统上安装部署MogDB 2.1.1数据库

    关于MogDB MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款安稳易用的企业级关系型数据库,具备金融级高可用和全密态计算的极致安全.面向多核处理器的极致性能.AI自诊断 ...

  8. MFS分布式存储 心得体会

    MFS分布式存储 2015年开始研究分布式存储,当初目的是为了给支付环境提供一套稳定的共享文件系统存储.考察了当时 Lustre.HDFS.ceph(当初还不成熟).glusterFS.MogileF ...

  9. 2021年大数据Flink(三):​​​​​​​Flink安装部署 Local本地模式

    目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...

最新文章

  1. 前端如何获取后台通过map封装的值_如何舒服的写api接口?
  2. 马斯克:今年占全球发射质量65%,星舰5月或首次轨道试飞
  3. Servlet和JSP之间的区别
  4. LeetCode 947. 移除最多的同行或同列石头(并查集)
  5. 从零开始学Pytorch(十七)之目标检测基础
  6. 华为p10plus能用鸿蒙吗,鸿蒙系统第四批什么时候 华为鸿蒙系统第四批 鸿蒙系统第四批升级机型介绍...
  7. 批量解决win10图标上有两个蓝色箭头的方法
  8. 你们身边有没有程序媛?
  9. 转:在ubuntu下将dmg文件转化为iso格式
  10. OpenGL和OpenCV的区别
  11. Brownie Slicing(二分枚举答案)
  12. 日语阅读-1-如何看ほう的用法
  13. html中固定浏览器最小化,浏览器最小化暂停播放
  14. FeHelper ( 浏览器插件 )
  15. 计算机四级 网络工程师 考过指南
  16. python判断成语是abac型_ABAC型成语大全
  17. 锐浪报表数据源access_锐浪报表应用系列三
  18. 【微信】微信授权获取openid
  19. 特效行者软件app怎么制作抖音特效和快手特效视频?
  20. 七牛云 转码_普通音视频转码(avthumb)

热门文章

  1. 记录:为啥没有雷电4接口的显卡扩展坞与移动硬盘?
  2. 编译原理(4):语法分析(自上而下)
  3. 惠普1005w打印机使用说明书_首款能充粉的打印机来了 惠普1005w一体机评测
  4. CSS中添加背景图+盒子边框样式
  5. 云南大学计算机在职硕士,云南大学信息学院硕士研究生教育
  6. 山东科技大学计算机系招生,山东科技大学在职研究生计算机技术招生动态
  7. Python一行代码实现正三角形
  8. 微信支付项目四:微信支付笔记
  9. GWAS计算BLUE值2--LMM计算BLUE值
  10. 怎么用python读取excel图_如何用Python读取Excel中图片?