分布式文件系统网上资料很多,但大部分都是15年前的,不知道这3年这技术发展怎样,网上文章太少。
15年前一些主流的分布式文件系统有HDFS、MogileFS、FastDFS、GlusterFS、Ceph、Lustre、NFS,以及本文要说的MooseFS,其中HDFS、FastDFS我测试环境搭建过,
HDFS因为存储单元块大小限制,存储小文件事,一个块一个小文件不合适,空间浪费,nameNode节点也会容易被撑爆。合并小文件存储一个块,还需要额外代码扩展,文件结构也不直观。而且我在本地环境测试性能上也不是很好。(虚拟机)
FastDFS是国内个人开源的开源产品,挺好用的,环境搭建简单,使用api操作文件系统,底层基于socket通信,网上例子很多,可惜好几年没看到更新信息,不怎么维护。
github:https://github.com/happyfish100/fastdfs
看到资料较多的社区:http://bbs.chinaunix.net/forum-240-1.html
MooseFS 网上资料说国内使用量还是很多的,官方有社区免费版与收费版,这里主要以免费版来说。
MooseFS4种角色:Master主服务,对外提供服务,唯一的出入口,性能瓶颈所在、Metalogger日志、备份服务、Chunkserver存储服务,用来存储数据、Client客户端,mooseFS支持FUSE,可以在其他非windows机子上安装客户端,挂载master对外ip,实现本地访问分布式文件系统。
本地虚拟机只部署了3台,
mfs-master | 192.168.99.111 |
mfs-metalogger | 192.168.99.111 |
mfs-chunkserver-1 | 192.168.99.115 |
mfs-chunkserver-2 | 192.168.99.116 |
mfs-client-1 | 192.168.99.115 |
mfs-client-2 | 192.168.99.116 |
基础环境、用户与组
[root@localhost ~]# yum install zlib-devel -y
[root@localhost ~]# groupadd -g 1000 mfs
[root@localhost ~]# useradd -u 1000 -g mfs -s /sbin/nologin mfs
安装mooseFS yum环境
[root@localhost ~]# curl "https://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
[root@localhost ~]# curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS.repo
下面操作都基于本地虚拟机操作系统centos7,其他系统可以参考官网
https://moosefs.com/download/
一、安装MooseFS Master
[root@localhost ~]# yum install moosefs-master moosefs-cgi moosefs-cgiserv moosefs-cli
在 /etc/mfs 下生成了相关的配置文件(mfsexports.cfg、mfsmaster.cfg 等)
1、更改目录权限
#chown -R mfs:mfs /var/lib/mfs
#chown -R mfs:mfs /etc/mfs
2、启动mfsmaster服务
[root@localhost ~]# mfsmaster start
3、启动监控 (web查看地址:http://IP:9425/)
[root@localhost ~]# mfscgiserv #启动CGI监控服务
4、关闭服务
[root@localhost ~]# mfscgiserv stop #关闭监控
[root@localhost ~]# mfsmaster stop #关闭master服务
二、安装MooseFS Metalogger:
[root@localhost ~]# yum install moosefs-metalogger
三、安装MooseFS Chunkserver:
在虚拟服务器192.168.99.115安装chunkserver,192.168.99.116一样方式安装
[root@localhost ~]# yum install moosefs-chunkserver
相关配置文件也是生成在 /etc/mfs目录下
1、修改mfschunkserver.cfg
修改MASTER_HOST为mfsmaster的IP(192.168.99.111),除非配置了hosts。
可以在/etc/hosts添加master ip映射关系
192.168.99.111 mfsmaster server1
2、修改mfshdd.cfg文件,增加挂载点:/mnt/mfschunk
# 直接加在文件末尾...
/mnt/mfschunk
3、新建/mnt/mfschunk目录并更改用户组
[root@localhost ~]# mkdir /mnt/mfschunk
[root@localhost ~]# chown -R mfs:mfs /mnt/mfschunk
4、启动mfschunkserver服务
[root@localhost ~]# mfschunkserver start
四、安装MooseFS Client:
[root@localhost ~]# yum install moosefs-client
需要安装FUSE环境,我的是centos7系统默认有。
1、新建挂载目录
[root@localhost]# mkdir /mnt/client
[root@localhost]# chown -R mfs:mfs /mnt/client
2、通过mfsmount挂载分布式文件目录
[root@localhost]# mfsmount /mnt/client -H 192.168.99.111
3、新建与查看目录与本地方式一致,另外一台也安装上客户端,在其中一台新增文件,其他客户端都可以看到。