构建MFS分布式文件系统
++++++++++++++构建MFS分布式文件系统++++++++++++++
PB级别:
企业存储空间达到PB级别,即100万GB空间。(1PB=1000TB,1TB=1000GB,1GB=1000MB)
MFS原理:
MFS是一个具有容错额网络分布式文件系统,他把数据分散存放在多个物理服务器上,而呈现给用户则是一个统一的资源。
MFS组成:
1)元数据服务器:
2)元数据日志服务器:
3)数据存储服务器:
4)客户端:
MFS拓扑:
-------Client---------Master---------MataLogger---------Chunk1---------Chunk1---------Chunk1---------
192.168.1.1 192.168.1.10 192.168.1.100 192.168.1.201 192.168.1.202 192.168.1.203
配置步骤:
一、Master
[root@localhost ~]# yum -y install zlib-devel
[root@localhost ~]# useradd mfs -s /sbin/nologin -u 98
[root@localhost ~]# tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mfs-1.6.27/
[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --
disable-mfschunkserver --disable-mfsmount
[root@localhost mfs-1.6.27]# make && make install
[root@localhost ~]# cd /usr/local/mfs/etc/mfs/
[root@localhost mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg
[root@localhost mfs]# cp mfsexports.cfg.dist mfsexports.cfg
[root@localhost mfs]# cp mfstopology.cfg.dist mfstopology.cfg
[root@localhost mfs]# cd /usr/local/mfs/var/mfs/
[root@localhost mfs]# cp metadata.mfs.empty metadata.mfs
[root@localhost ~]# vim /usr/local/mfs/etc/mfs/mfsmaster.cfg
不做任何改动
[root@localhost ~]# vim /usr/local/mfs/etc/mfs/mfsexports.cfg
不做任何改动
[root@localhost ~]# /usr/local/mfs/sbin/mfsmaster restart //启动mfs
[root@localhost ~]# ps -elf | grep mfs
[root@localhost ~]# netstat -anpt | grep mfs
[root@localhost ~]# /usr/local/mfs/sbin/mfsmaster stop //停止mfs
二、MataLogger
[root@localhost ~]# yum -y install zlib-devel
[root@localhost ~]# useradd mfs -s /sbin/nologin -u 98
[root@localhost ~]# tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mfs-1.6.27/
[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --
disable-mfschunkserver --disable-mfsmount
[root@localhost mfs-1.6.27]# make && make install
[root@localhost ~]# cd /usr/local/mfs/etc/mfs/
[root@localhost ~]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@localhost ~]# vim /usr/local/mfs/etc/mfs/mfsmetalogger.cfg
修改:
MASTER_HOST = 192.168.1.10
[root@localhost ~]# /usr/local/mfs/sbin/mfsmetalogger restart //启动
[root@localhost ~]# ps -elf | grep mfs
[root@localhost ~]# netstat -anpt | grep mfs
[root@localhost ~]# /usr/local/mfs/sbin/mfsmetalogger stop //停止
三、Chunk
[root@localhost ~]# yum -y install zlib-devel
[root@localhost ~]# useradd mfs -s /sbin/nologin -u 98
[root@localhost ~]# tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mfs-1.6.27/
[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --
disable-mfsmaster --disable-mfsmount
[root@localhost mfs-1.6.27]# make && make install
[root@localhost ~]# cd /usr/local/mfs/etc/mfs/
[root@localhost mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg
[root@localhost mfs]# cp mfshdd.cfg.dist mfshdd.cfg
[root@localhost ~]# vim /usr/local/mfs/etc/mfs/mfschunkserver.cfg
添加:
MASTER_HOST = 192.168.1.10
[root@localhost ~]# vim /usr/local/mfs/etc/mfs/mfshdd.cfg
添加:
/data
[root@localhost ~]# mkdir /data
[root@localhost ~]# chown -R mfs:mfs /data/
[root@localhost ~]# /usr/local/mfs/sbin/mfschunkserver restart
[root@localhost ~]# ps -elf | grep mfs
[root@localhost ~]# netstat -anpt | grep mfs
四、Client
1、安装fuse
[root@localhost ~]# yum -y install zlib-devel
[root@localhost ~]# tar -zxvf fuse-2.9.2.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/fuse-2.9.2/
[root@localhost fuse-2.9.2]# ./configure && make && make install
[root@localhost fuse-2.9.2]# vim /etc/profile
添加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
[root@localhost fuse-2.9.2]# . /etc/profile //立即生效
[root@localhost fuse-2.9.2]# source /etc/profile //重启生效
2、安装
[root@localhost ~]# useradd mfs -s /sbin/nologin -u 98
[root@localhost ~]# tar -zxvf mfs-1.6.27-5.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mfs-1.6.27/
[root@localhost mfs-1.6.27]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --
disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
如果还是有问题的,解决方法:yum -y install fuse-devel
[root@localhost mfs-1.6.27]# make && make install
[root@localhost ~]# modprobe fuse
[root@localhost ~]# mkdir /xixi
[root@localhost ~]# /usr/local/mfs/bin/mfsmount /xixi -H 192.168.1.10
[root@localhost ~]# mount
[root@localhost ~]# df -hT
[root@localhost ~]# umount /xixi //直接卸载就可以了
[root@localhost ~]# vim /etc/profile
添加:
export PATH=/usr/locla/mfs/bin:$PATH
[root@localhost ~]# source /etc/profile
或者
[root@localhost ~]# ln -s /usr/local/mfs/bin/* /usr/local/bin/
验证:
[root@localhost ~]# mfsgetgoal -r /xixi
[root@localhost ~]# mfssetgoal -r 3 /xixi
注意:生产环境Chunk Server节点数应至少大于2,文件的副本数应小于小于等于Chunk Server服务器数
[root@localhost ~]# touch /data/mfs/hehe
[root@localhost ~]# mfsgetgoal /data/mfs/hehe
MFS监控:
1)Master中:
[root@localhost ~]# /usr/local/mfs/sbin/mfscgiserv restart
2)Client中:
[root@localhost ~]# firefox http://192.168.1.10:9425 &
MFS的维护和灾难恢复
1)MFS集群的启动顺序
1启动mfsmaster进程
2启动所有mfschunkserver进程
3启动mfsmetalogger进程
4在所有客户端挂载MFS文件系统
2)MFS集群的停止顺序
1再所有客户端卸载MFS文件系统
2用mfschunkserver -s 命令停止mfschunkserver进程
3用mfsmetalogger -s 命令停止mfsmetalogger进程
4用mfsmaster -s 命令停止 mfsmaster进程
3)MFS灾难恢复
1元数据主文件metadata.mfs ,运行时命名为metadata.mfs.back
2元数据改变日志changelog*.mfs
master故障时,可以从metalogger 中回复master:
1安装一台mfsmaster,利用同样的配置来配置mfsmaster。
2将metalogger上/usr/local/mfs/var/mfs 目录下的文件复制到mfsmaster相应的目录中。
3利用mfsmetarestore命令合并数据changelogs
/usr/local/mfs/sbin/mfsmetarestore -m metadata_m1.mfs.back -o metadata.mfschangelog_m1.*.mfs
注意:恢复后的master需要重新挂载客户端。
1. 准备条件
2. 现在安装包 mfs-1.6.15.tar.gz
3. #groupadd mfs
4. #useradd -g mfs mfs
5. #cd /root
6. #tar -zxvf mfs-1.6.15.tar.gz
7. #cd mfs-1.6.15
8. #./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib --with-default-user=mfs --with-defaultgroup=
mfs --disable-mfsmaster
9. #make
10. #make install
11. #准备chunk server 服务所需的配置文件:
12. #cd /etc/
13. #cp mfschunkserver.cfg.dist mfschunkserver.cfg
14. #cp mfshdd.cfg.dist mfshdd.cfg
15. #在mfshdd.cfg 加入下面的文本行你需要挂在的文件目录
16. /data/slot0
17. /data/slot1
18. /data/slot2
19. /data/slot3
20. /data/slot4
21. [root@cdn etc]# chown -R mfs:mfs /data/slot0
22. [root@cdn etc]# chown -R mfs:mfs /data/slot1
23. [root@cdn etc]# chown -R mfs:mfs /data/slot2
24. [root@cdn etc]# chown -R mfs:mfs /data/slot3
25. [root@cdn etc]# chown -R mfs:mfs /data/slot4
26. echo '10.200.93.71 mfsmaster' >> /etc/hosts
27. #请到chunksever 服务
28. #/usr/sbin/mfschunkserver start
构建MFS分布式文件系统的更多相关文章
- 构建Mogilefs分布式文件系统(配置篇)
构建Mogilefs分布式文件系统: 当下互联网飞速发展,海量并发所产生的数据量以几何方式增长,随着信息链接方式日益多样化,数据存储的结构也发生了变化,在这样的压力下我们不得不重新审视大量数据的存储 ...
- MFS分布式文件系统
一.MFS概述: MooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类unix文件系统一样,包含了层级结构(目录树 ...
- MFS分布式文件系统【1】概述
注:以下内容来自互联网 MFS文件系统概论 MFS是linux下的开源存储系统,是由波兰人开发的.MFS文件系统能够实现RAID的功能,不但能够节约存储成本,而且不逊于专业的存储系统,能够实现在线扩展 ...
- mfs分布式文件系统,分布式存储,高可用(pacemaker+corosync+pcs),磁盘共享(iscsi),fence解决脑裂问题
一.MFS概述 MooseFS是一个分布式存储的框架,其具有如下特性:(1)通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs很麻烦!).(2)可以在线扩容,体系架构可伸缩性极强. ...
- MFS分布式文件系统【4】客户端的挂载MFS存储空间
挂载基于MooseFS 分布式文件,客户端主机必须安装FUSE软件包(FUSE版本号至少2.6,推荐版本号大于2.7的fuse) [root@master ~]# rpm -qa|grep fuse ...
- MFS分布式文件系统【3】存储节点 CHUNK SERVER 部署
[root@ky_hs_252 mfs-1.6.27]# mkdir /usr/local/mfs [root@ky_hs_252 mfs-1.6.27]# useradd mfs -s /sbin/ ...
- MFS分布式文件系统【2】MFS MASTER 部署
MFS版本 mfs-1.6.27 MFS-MASTER 192.168.1.190 MFS-CHUNKSERVER1 192.168.1.252 MFS-CHUNKSERVER2 192.168.1. ...
- 分布式文件系统之MogileFS工作原理及实现过程
MogileFS是一套高效的文件自动备份组件,由Six Apart开发,广泛应用在包括LiveJournal等web2.0站点上.MogileFS由3个部分组成: 第1个部分:是server端,包 ...
- 大数据 --> 分布式文件系统HDFS的工作原理
分布式文件系统HDFS的工作原理 Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数 ...
随机推荐
- 【转】linux if 判断
UNIX Shell 里面比较字符写法: -eq 等于-ne 不等于-gt 大于-lt 小于-le 小于等于-ge 大于等于-z 空串= 两个字符相等!= ...
- 【kindle笔记】之 《活着》-2018-2-5
[kindle笔记]读书记录-总 2018-2-5 今天凌晨一口气看完了<活着>,没想到竟然是个赤裸裸的悲剧,心情不太好地睡去. 福贵,一个小人物,坎坷无比的一生. 当你以为真他妈惨,真是 ...
- 转:MD5(Message-Digest Algorithm 一种哈希算法)
什么是MD5算法 MD5讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash val ...
- day 7-22 进程,线程,协程
一.什么是进程 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体.它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理 ...
- python学习笔记(11)--词云
中分词库 jieba 词云 wordcloud import jieba import wordcloud f = open("新时代中国特色社会主义.txt", "r ...
- Plugin/Preset files are not allowed to export objects,webpack报错/babel报错的解决方法
1.为什么会报错 ? 这里抱着错误是因为 babel 的版本冲突. 多是因为你的 babel 依赖包不兼容. 可以查看你的 package.json 的依赖列表 即有 babel 7.0 版本的( @ ...
- npm 设置代理
设置代理 npm config set proxy http://username:password@server:portnpm config set https-proxy http://user ...
- poj-3080(kmp+暴力枚举)
题意:给你多个字符串,问你这几个字符串的最长公共子串是哪个,如果有多个,输出字典序最大的那个,如果最长的公共子串长度小于3,输出一个奇怪的东西: 解题思路:首先看数据,数据不大,开始简单快乐的暴力之路 ...
- python基础数据类型—int、bool、字符串的常用方法
1.int int为整型数据,主要用于计算和类型转化(将字符串转为数字) 常用方法 #bit_length()当用二进制表示数字时所用最少位数,如下十进制数12用二进制表示是1100(bin),所以# ...
- 基于OpenCv和swing的图片/视频展示Java实现
基于OpenCv和swing实现图片/视频的展示 图片的展示 swing展示图片,多为操作BufferedImage,这里要关注的核心是将Mat转为BufferedImage. 代码如下: publi ...