MFS分布式存储搭建实验
前言
本文重点在于MFS的概念描述与搭建过程,前面会详细介绍MFS的工作流程和搭建流程,如有遗漏或者错误的地方,欢迎大家指正批评。
基本理论介绍
分布式文件系统
分布式文件系统是指文件系统管理的物理存储资源,不一定在本地节点上,而是通过网络与节点相连。
对于用户来说,要访问这些共享文件夹时,只要打开这个虚拟共享文件夹,就可以看到所有链接到虚拟共享文件夹内的共享文件夹,用户感觉不到这些共享文件是分散在各个计算机上的。
分布式文件系统的好处是集中访问、简化操作、数据容灾,以及提高文件的存取性能。
MFS简介
优点
- 高可靠性。每一份数据可以设置多个备份(多份数据),并可以存储在不同的主机之上
- 高扩展性。可以很轻松的通过增加主机的磁盘容量或增加主机数量来动态扩展整个文件系统的存储量
- 高可容错性。我们可以通过对mfs进行系统设置,实现当数据文件被删除后的一段时间内,依旧存放于主机的回收站中,以备误删除恢复数据
- 高数据一致性。即使文件被写入、访问时,我们依然可以轻松完成对文件的一致性快照
- MFS分为企业版和社区版,企业版无单节点;社区版有Master存储单节点。
缺点
-
Msater目前是单点,虽然会把数据信息同步到备份服务器,但是恢复需要时间;
-
Master服务器对主机的内存要求较高。内存使用问题:处理一百万个文件chunkserver,大概需要300M的内存空间。据此推算如果未来要出来一个亿的文件chunkserver,大概需要30G的内存空间
-
默认Metalogger复制元数据时间较长(可调整)
应用场景
1.大规模高并发的数据存储访问(小文件,大文件)。
2.大规模的数据处理,如日志分析。
MFS分布式文件系统部署方案
MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种。
管理服务器:managing server
这个组件的角色是管理整个mfs文件系统的主服务器,除了分发用户请求外,还用来存储整个文件系统中每个数据文件的metadata信息,metadate(元数据)信息包括文件(也可以是目录,socket,管道。块设备等)的大小,属性,文件的位置路径等。
元数据备份服务器:Metadata backup
整个组件的作用是备份管理服务器master的变化的元数据信息日志文件,文件类型为change_ml.*.mfs。以便于在管理服务器出问题时可以经过简单的操作即可让新的主服务器进行工作。
数据存储服务器组:data servers
这个组件就是真正存放数据文件实体的服务器了,这个角色可以有多台不同的物理服务器或不同的磁盘及分区来充当,当配置数据的副本多于一份时,据写入到一个数据服务器后,会根据算法在其他数据服务器上进行同步备份。
客户机服务器组:client servers
这个组件就是挂载并使用mfs文件系统的客户端,当读写文件时,客户端首先会连接主管理服务器获取数据的metada信息,然后根据得到的metadata信息,访问数据服务器读取或写入文件实体,mfs客户端通过fuse mechanism实现挂载mfs文件系统的。因此,只有系统支持fuse,就可以作为客户端访问mfs整个文件系统。
详细请看:分布式存储知识整理
端口号
9420 : MFS master和MFS chunck通信端口
9421 : MFS master和MFS Client端通信端口
9419 : MFS master和MFS metalogger端通信端口
9422 : MFS chunck 和MFS Client端通信端口
9425 : MFS master web界面监听端口,查看整体运行状态
实验步骤
实验目的:搭建MFS分布式存储集群,并进行常规操作。
实验准备:5台C6标准系统虚拟机(防火墙与selinux已关闭)
主机规划:
服务器角色 | 简称 | IP地址 |
---|---|---|
管理服务器 | master | 192.168.10.10 |
元数据日志服务器 | metalogger | 192.168.10.11 |
数据存储服务器 | data1 | 192.168.10.12 |
数据存储服务器 | data2 | 192.168.10.13 |
客户机服务器 | client | 192.168.10.14 |
data1与data2添加新磁盘,方便展示实验效果。
实验拓扑图
一、配置Master服务器
安装MFS软件
安装软件依赖
yum -y install pcre pcre-devel zlib zlib-devel lrzsz
解压编译安装
tar -zxvf moosefs-3.0.84-1.tar.gz
useradd -s /sbin/nologin -M mfs
cd moosefs-3.0.84
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
make && make install
做好软连接&