MFS分布式存储安装部署
分布式
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分布式存储安装部署相关推荐
- Glusterfs 分布式存储安装部署
Glusterfs 分布式存储部署 是存储当中可以选择的一种 现在很多虚拟化 云计算都在用软件存储 例如 ceph Glusterfs 等等 今天我们部署一下Glusterfs环境 GlusterFs ...
- MFS分布式存储-集群
MFS分布式存储-集群 3.1.了解MFS 什么是MFS MooseES.是一个具备==容余容错功能的分布式网络文件系统, 将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本 ...
- mfs分布式存储+master端高可用
2019独角兽企业重金招聘Python工程师标准>>> MFS 文件系统结构: 包含 4 种角色: 管理服务器 managing server (master) 元数据日志服务器 M ...
- Kubernetes中分布式存储Rook-Ceph部署快速演练
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也抽空多了解了一些.项目主要基于Rook-Ceph运行,考虑到Rook-Ceph部署也不那么简单,官方文档的步骤起点也不算低,因此,在整 ...
- Prometheus监控系列一 | 安装部署及配置
Prometheus监控系列一 | 安装部署及配置 文章目录 0 简介 1 基础环境 2 安装Prometheus 2.1 安装 2.2 配置开机自启动 2.3 启动服务 2.4 验证 3 安装Gra ...
- ceph分布式存储安装及简单使用
ceph官方文档地址:https://docs.ceph.com/docs/master/start/intro/ Github地址:https://github.com/ceph/ceph 一.ce ...
- 循序渐进丨在openEuler 20.03操作系统上安装部署MogDB 2.1.1数据库
关于MogDB MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款安稳易用的企业级关系型数据库,具备金融级高可用和全密态计算的极致安全.面向多核处理器的极致性能.AI自诊断 ...
- MFS分布式存储 心得体会
MFS分布式存储 2015年开始研究分布式存储,当初目的是为了给支付环境提供一套稳定的共享文件系统存储.考察了当时 Lustre.HDFS.ceph(当初还不成熟).glusterFS.MogileF ...
- 2021年大数据Flink(三):Flink安装部署 Local本地模式
目录 Flink安装部署 Local本地模式 原理 操作 测试 Flink安装部署 Flink支持多种安装模式 - Local-本地单机模式,学习测试时使用 - Standalone-独立集群模式,F ...
最新文章
- 前端如何获取后台通过map封装的值_如何舒服的写api接口?
- 马斯克:今年占全球发射质量65%,星舰5月或首次轨道试飞
- Servlet和JSP之间的区别
- LeetCode 947. 移除最多的同行或同列石头(并查集)
- 从零开始学Pytorch(十七)之目标检测基础
- 华为p10plus能用鸿蒙吗,鸿蒙系统第四批什么时候 华为鸿蒙系统第四批 鸿蒙系统第四批升级机型介绍...
- 批量解决win10图标上有两个蓝色箭头的方法
- 你们身边有没有程序媛?
- 转:在ubuntu下将dmg文件转化为iso格式
- OpenGL和OpenCV的区别
- Brownie Slicing(二分枚举答案)
- 日语阅读-1-如何看ほう的用法
- html中固定浏览器最小化,浏览器最小化暂停播放
- FeHelper ( 浏览器插件 )
- 计算机四级 网络工程师 考过指南
- python判断成语是abac型_ABAC型成语大全
- 锐浪报表数据源access_锐浪报表应用系列三
- 【微信】微信授权获取openid
- 特效行者软件app怎么制作抖音特效和快手特效视频?
- 七牛云 转码_普通音视频转码(avthumb)