MFS分布式文件格式

1.组成

1)Master(元数据服务器):负责维护、管理数据的所在位置等

2)Chunk Server(数据存储服务器):负责数据的存储

3)Metalogger(元数据日志服务器):负责纪录数据的改动情况

4)Client(客户端):访问MFS

2.MFS读过程

1)客户端向Master发送读请求

2)Master去缓存的数据库(非MySQL)中搜索客户端所需数据的位
置,并告知客户端(Chunk Server IP、Chunk编号)

3)客户端去指定Chunk Server的对应Chunk编号读取数据

4)客户端通知Master读取完毕

3.MFS写过程

1)客户端向Master发送写请求

2)Master通知Chunk Server(谁空闲,如空闲新建Chunk编号),找到后将知道的Chunk Server IP和编号告知客户端

3)客户端向指定IP和编号存储数据

4)客户端告知Master写入完毕

5)Master通知Metalogger有新数据写入(Matelogger纪录新增加文件位置和对应Chunk Server),日志记录完毕后,连接关闭,文件以chunk大小存储,每chunk最大为64M。小于64M的,该chunk的大小即为该文件大小,超过64M的文件将被均分,每一份(chunk)的大小以不超过64M为原则;文件可以有多份copy,即除原始文件以外,该文件还存储的份数。当goal为1时,表示只有一份copy,这份copy会被随机存到一台chunkserver上。当goal的数大于1时,每一份copy会被分别保存到其它chunkserver上。goal的大小不要超过chunkserver的数量,否则多出的copy,不会有chunkserver去存,goal设置再多实际上也就没有意义的。copy的份数,一般设为大于1份,这样如果有一台chunkserver坏掉后,至少还有一份copy,当这台又被加进来后,会将失去的那份copy补回来,始终保持原有的copy数。而如果goal设为1,那么当存储该copy的chunkserver坏掉,之后又重新加入回来,copy数将始终是0,不会恢复到之前的1个copy
chunkserver上的剩余存储空间要大于1GB,新的数据才会被允许写入,否则,你会看到No space left的提示
多个chunker并不影响写的速度,但是能加快读的速度,在原来的基础上增加一个chunker时,数据会自动同步到新增的chunker上以达到数据的平衡和均衡

实验环境:

五台centos6.7x64服务器,yum源和IP根据自己需求配置,切记首先关闭防火墙和selinux,具体环境如下图
MFS分布式文件系统_第1张图片

MFS分布式文件系统_第2张图片

搭建Master Server

操作前先执行 /etc/init.d/iptables stop && setenforce 0

1、安装环境包并创建用户

1)安装环境包

yum -y install zlib-devel
MFS分布式文件系统

2)创建mfs用户

useradd -s /sbin/nologin mfs
MFS分布式文件系统

2、上传mfs软件源码压缩包并且编译安装

1)上传mfs压缩包到当前/root/下
MFS分布式文件系统

2)解压mfs压缩包并编译安装

tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
MFS分布式文件系统

3)进入解压目录编译安装mfs

//进入解压目录

cd /usr/src/mfs-1.6.27/
MFS分布式文件系统

//编译mfs

./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
MFS分布式文件系统

//安装mfs

make && make install
MFS分布式文件系统

3、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)

1)进入文件目录

cd /usr/local/mfs/etc/mfs/
MFS分布式文件系统

2)原地拷贝四份文件放在原地并修改后缀格式(切记文件位置不变)
//拷贝第一份文件mfsexports.cfg.dist 改为mfsexports.cfg
MFS分布式文件系统

//拷贝第二份文件mfsmaster.cfg.dist改为mfsmaster.cfg
MFS分布式文件系统

//拷贝第三份文件mfstopology.cfg.dist改为mfstopology.cfg
MFS分布式文件系统

//拷贝第四份文件/usr/local/mfs/var/mfs/metadata.mfs.empty改为/usr/local/mfs/var/mfs/metadata.mfs
MFS分布式文件系统

4、启动Master Server

1)启动Master Server服务

/usr/local/mfs/sbin/mfsmaster start
MFS分布式文件系统_第3张图片

2)过滤查看mfs服务是否启动

ps -ef | grep mfs
MFS分布式文件系统

搭建MetaLogger Server

操作前先执行 /etc/init.d/iptables stop && setenforce 0

1、安装环境包并创建用户

1)安装环境包

yum -y install zlib-devel
MFS分布式文件系统

2)创建运行用户

useradd -s /sbin/nologin mfs
MFS分布式文件系统

3)上传mfs软件源码包
MFS分布式文件系统

4)解压mfs压缩包

ar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
MFS分布式文件系统

5)进入解压目录

cd /usr/src/mfs-1.6.27/
MFS分布式文件系统

6)编译安装mfs

./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
MFS分布式文件系统

//安装mfs

make && make install
MFS分布式文件系统

2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)

1)进入文件目录

cd /usr/local/mfs/etc/mfs/
MFS分布式文件系统

2)原地拷贝一份文件放在原地并修改后缀格式(切记文件位置不变)
拷贝 mfsmetalogger.cfg.dist改为mfsmetalogger.cfg
MFS分布式文件系统

3)编辑上边mfsmetalogger.cfg这个文件 vim mfsmetalogger.cfg
MFS分布式文件系统
MFS分布式文件系统_第4张图片

3、启动Metalogger Server

1)启动Metalogger Server

/usr/local/mfs/sbin/mfsmetalogger start
MFS分布式文件系统

2)过滤查看mfs是否启动

ps -ef | grep mfs
MFS分布式文件系统

搭建Chunk Server 1

操作前先执行 /etc/init.d/iptables stop && setenforce 0

1、安装环境包并创建用户

1)安装环境包

yum -y install zlib-devel
MFS分布式文件系统

2)创建运行用户

useradd -s /sbin/nologin mfs
MFS分布式文件系统

3)上传mfs软件源码包
MFS分布式文件系统

4)解压mfs压缩包

tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
MFS分布式文件系统

5)进入解压目录

cd /usr/src/mfs-1.6.27/
MFS分布式文件系统

6)编译安装mfs

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
MFS分布式文件系统

7)//安装mfs

make && make install
MFS分布式文件系统

2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)

1)进入文件目录 cd /usr/local/mfs/etc/mfs/ (当前是已拷贝过查看结果)
MFS分布式文件系统

2)原地拷贝两份文件放在原地并修改后缀格式(切记文件位置不变)

//拷贝mfschunkserver.cfg.dist改为mfschunkserver.cfg
MFS分布式文件系统

//拷贝mfshdd.cfg.dist改为mfshdd.cfg
MFS分布式文件系统

3)编辑mfschunkserver.cfg

vim mfschunkserver.cfg
MFS分布式文件系统_第5张图片

4)编辑mfshdd.cfg

vim mfshdd.cfg
MFS分布式文件系统

5)创建data目录

mkdir /data/
MFS分布式文件系统

6)将/data/目录属组属主改为mfs

chown -R mfs:mfs /data
MFS分布式文件系统

3、启动Chunk server

1)启动chunk server服务

/usr/local/mfs/sbin/mfschunkserver start
MFS分布式文件系统_第6张图片

2)过滤查看chunk server服务是否启动

ps -ef | grep mfs
MFS分布式文件系统

搭建Chunk Server 2

操作前先执行 /etc/init.d/iptables stop && setenforce 0

1、安装环境包并创建用户

1)安装环境包

yum -y install zlib-devel
MFS分布式文件系统

2)创建运行用户

useradd -s /sbin/nologin mfs
MFS分布式文件系统

3)上传mfs软件源码包
MFS分布式文件系统

4)解压mfs压缩包

tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
MFS分布式文件系统

5)进入解压目录

cd /usr/src/mfs-1.6.27/
MFS分布式文件系统

6)编译安装mfs

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
MFS分布式文件系统

7)//安装mfs

make && make install
MFS分布式文件系统

2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)

1)进入文件目录 cd /usr/local/mfs/etc/mfs/ (当前是已拷贝过查看结果)
MFS分布式文件系统

2)原地拷贝两份文件放在原地并修改后缀格式(切记文件位置不变)

//拷贝mfschunkserver.cfg.dist改为mfschunkserver.cfg
MFS分布式文件系统

//拷贝mfshdd.cfg.dist改为mfshdd.cfg
MFS分布式文件系统

3)编辑mfschunkserver.cfg

vim mfschunkserver.cfg
MFS分布式文件系统_第7张图片

4)编辑mfshdd.cfg

vim mfshdd.cfg
MFS分布式文件系统

5)创建data目录

mkdir /data/
MFS分布式文件系统

6)将/data/目录属组属主改为mfs

chown -R mfs:mfs /data
MFS分布式文件系统

3、启动Chunk server

1)启动chunk server服务

/usr/local/mfs/sbin/mfschunkserver start
MFS分布式文件系统_第8张图片

2)过滤查看chunk server服务是否启动

ps -ef | grep mfs
MFS分布式文件系统

linux客户端挂载mfs文件系统

操作前先执行 /etc/init.d/iptables stop && setenforce 0

1、安装fuse

1)上传fuse-2.9.2.tar.gz mfs-1.6.27-5.tar.gz到/root/下
MFS分布式文件系统

2)解压fuse-2.9.2.tar.gz

tar -zxvf fuse-2.9.2.tar.gz -C /usr/src/
MFS分布式文件系统

3)进入解压目录

cd /usr/src/fuse-2.9.2/
MFS分布式文件系统

4)编译并安装fuse-2.9.2

./configure && make && make install
MFS分布式文件系统

5)编辑环境变量

vim /etc/profile
MFS分布式文件系统

6)执行环境变量

source /etc/profile
MFS分布式文件系统

2、安装mfs客户端

1)创建运行用户

useradd -s /sbin/nologin mfs
MFS分布式文件系统

2)解压mfs压缩包

tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
MFS分布式文件系统

3)进入解压目录

cd /usr/src/mfs-1.6.27/
MFS分布式文件系统

4)编译mfs-1.6.27-5(先进入解压目录然后编译)

./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
MFS分布式文件系统

5)安装mfs-1.6.27-5

make && make install
MFS分布式文件系统

3、挂载mfs文件系统

1)加载fuse模块到内核

modprobe fuse
MFS分布式文件系统

2)编辑内核文件

vim /etc/rc.local
MFS分布式文件系统

3)查看加载模块

modinfo fuse
MFS分布式文件系统_第9张图片

4) 编辑mfs客户端的全局变量

vim /etc/profile(这里用echo追加方式)
MFS分布式文件系统

测试

1、首先启动master服务器的9425端口监控服务

/usr/local/mfs/sbin/mfscgiserv
MFS分布式文件系统

2、检查所有服务器是否mfs相关的服务都开启了,如果都开启了那么就随便找台客户端用浏览器访问MFS网页监控台,访问地址是当前的master的IP例如当前访问地址为: http://192.168.1.10:9425/mfs.cgi
MFS分布式文件系统_第10张图片
注:在当前监控页面如果可以监控到挂载目录和挂载点则表示测试成功!