共计 3364 个字符,预计需要花费 9 分钟才能阅读完成。
前言:随着分布式、大数据的不断发展,很多时候大家会感觉大数据离自己很远,其实大数据就是我们身边。那我们心目中的大数据到底是什么样的呢,分布式、容错、大容量?
在我们运维中,最常见的文件存储系统大概就是 NFS 了,但是随着网站压力不断增加,NFS 渐渐不能满足企业数据增长需求,有木有自动扩展、高效、部署、实施方便快捷的分布式存储供我们使用呢?那我们来看一下 MFS 基本可以满足我们的需求。
MogileFS 是一种分布式文件存储系统。可支持文件自动备份的功能,提高可用性和高扩展性。MogileFS 不支持对一个文件内部的随机或顺序读写,因此只适合做一部分应用,如图片服务,静态 HTML 服务、文件服务器等,这些应用在文件写入后基本上不需要对文件进行修改,但是可以生成一个新的文件覆盖原有文件。
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文件系统的实际基于客户机 / 服务器模式。
目前常见的分布式文件系统有很多种,例如我之前一篇文章里面提到的 Hadoop、FastDFS、Moosefs、PNFS(Parallel NFS)、Lustre、TFS、GFS、HDFS 等等一系列。在众多的分布式文件系统解决方案中,MFS 是搭建比较简单、使用起来也不需要过多的修改 web 程序,非常方便。那今天我们使用 SHELL 脚本来部署 MFS。
一、Moosefs 的优势:
1) 通用文件系统,不需要修改上层应用就可以使用。
2) 可以在线扩容,体系架构可伸缩性极强(官方的 case 可以扩到 70 台了)。
3) 部署简单。
4) 体系架构高可用,单独一台机器出问题不会影响整体性能。
5) 文件对象高可用,可设置任意的文件冗余程度 (提供比 raid1+ 0 更高的冗余级别) 而绝对不会影响读或者写的性能,只会加速哦。
6) 提供 Windows 回收站的功能(不怕误操作了,提供类似 oralce 的闪回等高级 dbms 的即时回滚特性,oralce 这些特性可是收费的哦)
7) 提供 netapp,emc,ibm 等商业存储的 snapshot 特性。
8) google filesystem 的一个 c 实现。
9) 提供 web gui 监控接口。
10) 提高随机读或写的效率。
11) 提高海量小文件的读写效率。
二、MFS 系统组成部分:
1、元数据服务器:在整个体系中负责管理管理文件系统,目前 MFS 只支持一个元数据服务器 master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后 MFS 能支持多个 master 服务器,进一步提高系统的可靠性。
2、数据存储服务器:chunkserver,真正存储用户数据的服务器,存储文件时,首先把文件分成块,然后这些块在数据服务器 chunkserver 之间复制,数据服务器可以是多个,并且数量越多,可使用的 ” 磁盘空间 ” 越小,可靠性也越高。
3、客户端:使用 MFS 文件系统来存储和访问的主机称为 MFS 的客户端,成功挂接 MFS 文件系统以后,就可以像以前使用 NFS 一样共享这个虚拟性的存储了。
4.元数据日志服务器:负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作。
三、主控服务器 Master 安装:
当我们安装主控服务器时,在配置过程中(./configure),可以取消安装 chunk server
(–disable-mfschunkserver)以及 MooseFS 客户端(–disable-mfsmount). 安装
主控服务器 master 的具体步骤为:
添加 mfs 组
groupaddmfs
新增系统用户 mfs
useradd-g mfs mfs
解压安装:
tar-zxvf mfs-1.6.27.tar.gz;cd mfs-1.6.27
编译配置:
./configure –prefix=/usr –sysconfdir=/etc \
–localstatedir=/var/lib –with-default-user=mfs \
–with-default-group=mfs –disable-mfschunkserver –disable-mfsmount&&make &&makeinstall
成功安装 master 后,会在 /etc/mfs 下生成很多 MFS 相关文件:
cd/etc,复制如下文件:
cp mfsmaster.cfg.dist mfsmaster.cfg
cp mfsexports.cfg.dist mfsexports.cfg
分别表示:主配置文件,挂载文件等功能。
在 /etc/mfs/mfsexports.cfg 里添加如下语句:
192.168.33.0/24 / rw,alldirs,maproot=0
启动前准备:
cd /var/lib/mfs/
cp metadata.mfs.empty metadata.mfs
echo “192.168.33.10 mfsmaster”>> /etc/hosts
启动 mfsmaster:/usr/sbin/mfsmasterstart
启动监控服务:/usr/sbin/mfscgiserv
浏览器访问地址:http://192.168.33.10:9425/mfs.cgi,可以看到 MFS 信息。
四、Mfsmetalogger 服务器部署:
安装方法跟 master 编译、安装参数一样哦,最后配置如下:
进入 /etc/mfs/ 下,如下操作:
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
echo “192.168.33.10 mfsmaster” >> /etc/hosts
最后启动 mfsmetalogger 服务即可,/usr/sbin/mfsmetalogger start
五、Chunk servers 服务器部署:
MFSChunk 编译参数:
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var/lib –with-default-
user=mfs –with-default-group=mfs –disable-mfsmaster &&make &&makeinstall
配置方法如下:
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
更改配置文件 mfshdd.cfg, 加入:
/data/
启动前准备:
echo “192.168.33.10 mfsmaster” >> /etc/hosts
chown -R mfs:mfs /data
/usr/sbin/mfschunkserverstart
六、MFS 客户端安装:
安装编译参数:
./configure –prefix=/usr –sysconfdir=/etc –localstatedir=/var/lib –with-default-
user=mfs –with-default-group=mfs –disable-mfsmaster –disable-mfschunkserver&&make &&make install
启动前准备:
mkdir /mnt/mfs
echo “192.168.33.10 mfsmaster” >> /etc/hosts
挂载客户端测试:
/usr/bin/mfsmount/mnt/mfs -H 192.168.33.10
然后我们可以对文件进行常规操作,其他应用服务器 LAMP 可以挂载 MFS 文件系统,来存放文件。
七、MFS 必备命令:
设置副本的份数,推荐 3 份
/usr/bin/mfssetgoal -r 3 /mnt/mfs
查看某文件
/usr/bin/mfsgetgoal /mnt/mfs
查看目录信息
/usr/bin/mfsdirinfo -H /mnt/mfs
写入性能测试:
dd if=/dev/zero of=1.img bs=1M count=50
读取性能测试:
dd if=1.img bs=1M |dd of=/dev/null
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/122621.htm