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,具体环境如下图
搭建Master Server
操作前先执行 /etc/init.d/iptables stop && setenforce 0
1、安装环境包并创建用户
1)安装环境包
2)创建mfs用户
2、上传mfs软件源码压缩包并且编译安装
2)解压mfs压缩包并编译安装
tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
3)进入解压目录编译安装mfs
//进入解压目录
//编译mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
//安装mfs
3、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)
1)进入文件目录
2)原地拷贝四份文件放在原地并修改后缀格式(切记文件位置不变)
//拷贝第一份文件mfsexports.cfg.dist 改为mfsexports.cfg
//拷贝第二份文件mfsmaster.cfg.dist改为mfsmaster.cfg
//拷贝第三份文件mfstopology.cfg.dist改为mfstopology.cfg
//拷贝第四份文件/usr/local/mfs/var/mfs/metadata.mfs.empty改为/usr/local/mfs/var/mfs/metadata.mfs
4、启动Master Server
1)启动Master Server服务
/usr/local/mfs/sbin/mfsmaster start
2)过滤查看mfs服务是否启动
搭建MetaLogger Server
操作前先执行 /etc/init.d/iptables stop && setenforce 0
1、安装环境包并创建用户
1)安装环境包
2)创建运行用户
4)解压mfs压缩包
ar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
5)进入解压目录
6)编译安装mfs
./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
//安装mfs
2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)
1)进入文件目录
2)原地拷贝一份文件放在原地并修改后缀格式(切记文件位置不变)
拷贝 mfsmetalogger.cfg.dist改为mfsmetalogger.cfg
3)编辑上边mfsmetalogger.cfg这个文件 vim mfsmetalogger.cfg
3、启动Metalogger Server
1)启动Metalogger Server
/usr/local/mfs/sbin/mfsmetalogger start
2)过滤查看mfs是否启动
搭建Chunk Server 1
操作前先执行 /etc/init.d/iptables stop && setenforce 0
1、安装环境包并创建用户
1)安装环境包
2)创建运行用户
4)解压mfs压缩包
tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
5)进入解压目录
6)编译安装mfs
./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
7)//安装mfs
2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)
1)进入文件目录 cd /usr/local/mfs/etc/mfs/ (当前是已拷贝过查看结果)
2)原地拷贝两份文件放在原地并修改后缀格式(切记文件位置不变)
//拷贝mfschunkserver.cfg.dist改为mfschunkserver.cfg
//拷贝mfshdd.cfg.dist改为mfshdd.cfg
3)编辑mfschunkserver.cfg
4)编辑mfshdd.cfg
5)创建data目录
6)将/data/目录属组属主改为mfs
3、启动Chunk server
1)启动chunk server服务
/usr/local/mfs/sbin/mfschunkserver start
2)过滤查看chunk server服务是否启动
搭建Chunk Server 2
操作前先执行 /etc/init.d/iptables stop && setenforce 0
1、安装环境包并创建用户
1)安装环境包
2)创建运行用户
4)解压mfs压缩包
tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
5)进入解压目录
6)编译安装mfs
./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount
7)//安装mfs
2、原地拷贝文件并修改后缀(mfs只能识别后缀格式为.cfg文件)
1)进入文件目录 cd /usr/local/mfs/etc/mfs/ (当前是已拷贝过查看结果)
2)原地拷贝两份文件放在原地并修改后缀格式(切记文件位置不变)
//拷贝mfschunkserver.cfg.dist改为mfschunkserver.cfg
//拷贝mfshdd.cfg.dist改为mfshdd.cfg
3)编辑mfschunkserver.cfg
4)编辑mfshdd.cfg
5)创建data目录
6)将/data/目录属组属主改为mfs
3、启动Chunk server
1)启动chunk server服务
/usr/local/mfs/sbin/mfschunkserver start
2)过滤查看chunk server服务是否启动
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/下
2)解压fuse-2.9.2.tar.gz
tar -zxvf fuse-2.9.2.tar.gz -C /usr/src/
3)进入解压目录
4)编译并安装fuse-2.9.2
./configure && make && make install
5)编辑环境变量
6)执行环境变量
2、安装mfs客户端
1)创建运行用户
2)解压mfs压缩包
tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
3)进入解压目录
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
5)安装mfs-1.6.27-5
3、挂载mfs文件系统
1)加载fuse模块到内核
2)编辑内核文件
3)查看加载模块
4) 编辑mfs客户端的全局变量
测试
1、首先启动master服务器的9425端口监控服务
/usr/local/mfs/sbin/mfscgiserv
2、检查所有服务器是否mfs相关的服务都开启了,如果都开启了那么就随便找台客户端用浏览器访问MFS网页监控台,访问地址是当前的master的IP例如当前访问地址为: http://192.168.1.10:9425/mfs.cgi
注:在当前监控页面如果可以监控到挂载目录和挂载点则表示测试成功!