标签:client 取数据 元数据 分布式文件系统 客户端 process 配置 dfa mat
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 192.168.1.10 vmnet1 mfs-1.6.27-5.tar.gz
MetaLogger 192.168.1.20 vmnet1 mfs-1.6.27-5.tar.gz
Chunk Server 1 192.168.1.30 vmnet1 mfs-1.6.27-5.tar.gz
Chunk Server 2 192.168.1.40 vmnet1 mfs-1.6.27-5.tar.gz
Client 192.168.1.50 mnet1 mfs-1.6.27-5.tar.gz
fuse-2.9.2.tar.gz
标签:client 取数据 元数据 分布式文件系统 客户端 process 配置 dfa mat
原文地址:http://blog.51cto.com/13043516/2070093