1.MFS是什么?
mooseFS(moose 驼鹿)是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。
2.MFS的特征
1:层析结构(目录树)
2:存储文件属性(权限,访问和修改时间)
3:支持特殊文件(块设备,字符设备,管道)
4:符号链接,软硬链接
5:对文件系统访问可以通过IP地址或者密码进行访问限制
6:高可靠(数据的多个拷贝存储在不同的计算机上)
7:通过附加新的计算机或者硬盘可以实现容量的动态拓展
8:删除文件可以根据一个可配置的时间周期进行保留
9:不受访问和写入影响的文件连贯快照
3.MFS的应用场景
谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。
1)大规模高并发的数据存储及访问(小文件、大文件),
2)大规模的数据处理,如日志分析
4.MFS官网
http://www.moosefs.com/是MFS官网,上面写了高可用性,低成本数据安全和可扩展性已经高性能等MFS的优点
5.MFS分布式文件系统部署方案
MooseFS 是一种分布式文件系统,MooseFS 文件系统结构包括以下四种角色:
1 管理服务器 managing server (master):
负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝
2元数据日志服务器 Metalogger server(Metalogger):
负责备份 master 服务器的变化日志文件,文件类型为 changelog_ml.*.mfs,以便于在 master server 出问题的时候接替其进行工作
3 数据存储服务器 data servers (chunk servers ) :
听从管理服务器调度,提供存储空间,并为客户提供数据传输.。 真正存储用户数据的服务器。存储文件时,首先把文件分成块,然后这些块在数据服务器 chunkserver之间复 制(复制份数可以手工指定,建议设置副本数为 3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大,可靠性也越高。
4 客户机挂载使用 client computers :
客户端挂载远程mfs服务器共享出的存储并使用。 通过 fuse 内核接口挂载进程管理服务器上所管理的数据存储服务器共享出的硬盘。 共享的文件系统的用法和 nfs 相似。 使用 MFS 文件系统来存储和访问的主机称为 MFS 的客户端,成功挂接 MFS 文件系统以后,就可以像以前使用 NFS 一样共享这个虚拟性的存储了。
6.环境准备
服务器 | 角色 | ip地址 | 主机名 |
---|---|---|---|
mfs-metalog | 管理服务器managing server (master)和日志 | 192.168.70.111 | Mfs-master |
chunk-server | 数据存储服务器data servers (chunk servers ) | 192.168.70.112 | mfs-chunk |
client | 客户机挂载使用client computers | 192.168.70.113 | mfs-client |
常用的名词
Mfsmaster 元数据
Metalogger 元数据备份,用于恢复数据 [ 和master安装在不同的机器 ]
ChunkServer 数据存储
mfscgiserv 监控服务
Client 挂载
7.安装MFS管理服务器
#安装依赖
[root@Mfs-master ~]# yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel –y
#下载mfs并且解压
[root@Mfs-master ~]#
wget https://github.com/moosefs/moosefs/archive/master.zip && unzip master.zip
#t添加运行mfs的用户
[root@Mfs-master ~]# useradd -s /sbin/nologin mfs
[root@Mfs-master ~]# cd moosefs-master/
#编译
[root@Mfs-master ~]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs
#安装
[root@Mfs-master moosefs-master]# make -j 2 && make install
[root@Mfs-master moosefs-master]# cd /usr/local/mfs/
[root@Mfs-master mfs]# ll
total 4
drwxr-xr-x 2 root root 4096 Jan 21 19:39 bin #客户端工具
drwxr-xr-x 3 root root 17 Jan 21 19:39 etc #服务端配置文件
drwxr-xr-x 2 root root 21 Jan 21 19:39 include #包含的配置的文件
drwxr-xr-x 2 root root 108 Jan 21 19:39 lib # 包含的so
drwxr-xr-x 2 root root 245 Jan 21 19:39 sbin #服务端命令
drwxr-xr-x 4 root root 31 Jan 21 19:39 share #文档
drwxr-xr-x 3 root root 17 Jan 21 19:39 var #元数据目录
#生成配置文件
[root@Mfs-master mfs]# cp mfsmaster.cfg.sample mfsmaster.cfg #生成主配置文件
[root@Mfs-master mfs]# cp mfsexports.cfg.sample mfsexports.cfg # 输出目录配置文件
[root@Mfs-master mfs]# cp mfsmetalogger.cfg.sample mfsmetalogger.cfg # 元数据日志
[root@Mfs-master mfs]# cd /usr/local/mfs/var/mfs/
[root@Mfs-master mfs]# cp metadata.mfs.empty metadata.mfs #master运行所需
#配置文件参数说明
6 # WORKING_USER = mfs #运行mfs的用户
9 # WORKING_GROUP = mfs #运行用户mfs的组
78 # MATOCS_LISTEN_HOST = * #可以运行mfs的用户,可以指定为某一个ip
81 # MATOCS_LISTEN_PORT = 9420 #运行的端口
#设置权限
[root@Mfs-master mfs]# chown -R mfs:mfs /usr/local/mfs/
#启动mfs
[root@Mfs-master mfs]# /usr/local/mfs/sbin/mfsmaster
open files limit has been set to: 16384
working directory: /usr/local/mfs/var/mfs
lockfile created and locked
initializing mfsmaster modules ...
exports file has been loaded
mfstopology configuration file (/usr/local/mfs/etc/mfstopology.cfg) not found - using defaults
loading metadata ...
metadata file has been loaded
no charts data file - initializing empty charts
master <-> metaloggers module: listen on *:9419
master <-> chunkservers module: listen on *:9420
main master server module: listen on *:9421
mfsmaster daemon initialized properly
#查看启动的端口
[root@Mfs-master mfs]# netstat -tulnp | grep 94*
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 24418/mfsmaster
tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 24418/mfsmaster
tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 24418/mfsmaster
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 912/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 991/master
tcp6 0 0 :::22 :::* LISTEN 912/sshd
tcp6 0 0 ::1:25 :::* LISTEN 991/master
udp 0 0 0.0.0.0:45619 0.0.0.0:* 24425/dhclient
#查看生成的日志
[root@Mfs-master mfs]# ll /usr/local/mfs/var/mfs/
total 20
-rw-r----- 1 mfs mfs 45 Jan 21 19:58 changelog.1.mfs
-rw-r----- 1 mfs mfs 120 Jan 21 20:00 metadata.crc
-rw-r----- 1 mfs mfs 2901 Jan 21 20:00 metadata.mfs.back
-rw-r--r-- 1 mfs mfs 8 Jan 21 19:43 metadata.mfs.back.1
-rw-r--r-- 1 mfs mfs 8 Jan 21 19:39 metadata.mfs.empty
#指定需要共享的目录和权限
[root@Mfs-master etc]# cd /usr/local/mfs/etc/mfs/
[root@Mfs-master mfs]# vim mfsexports.cfg
#共享实例,在后面添加
# Allow everything but "meta".
* / rw,alldirs,admin,maproot=0:0
# Allow "meta".
* . rw
192.168.70.112 / rw,alldirs,maproot=0
192.168.70.0/24 / rw,alldirs,maproot=0
1.客户端 IP 地址
* 所有 IP 地址
x.x.x.x 单个 IP 地址
x.x.x.x/m.m.m.m IP 网络地址/子网掩码
f.f.f.f-t.t.t.t IP 段
2.被挂载的目录
/ 表示 MooseFS 的根
. 表示 MFSMETA 文件系
3.客户端拥有的权限
ro 只读
rw 读写
alldirs 允许挂载任何指定的子目录
maproot 映射为 root 用户还是指定的用户
password 指定客户端密码
#重启动mfs
[root@Mfs-master mfs]# /usr/local/mfs/sbin/mfsmaster restart
8.安装 MFS元数据日志 服务器
数据日志守护进程是在安装master server 时一同安装的,最小的要求并不比master 本身大,可以被运行在任何机器上(例如任一台chunkserver),但是最好是放置在MooseFS master 的备份机上,备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs。因为主要的master server 一旦失效,可能就会将这台metalogger 机器取代而作为master server。
#编译
[root@Mfs-master moosefs-master]./configure --prefix=/usr/local/mfsmeta --with-default-user=mfs --with-default-group=mfs
#安装
[root@Mfs-master moosefs-master]make && make install
[root@Mfs-master moosefs-master] cd /usr/local/mfsmeta/etc/mfs/
[root@Mfs-master moosefs-master]cp mfsmetalogger.cfg.sample mfsmetalogger.cfg
[root@Mfs-master moosefs-master]vim mfsmetalogger.cfg
# META_DOWNLOAD_FREQ = 24
元数据备份文件下载请求频率。默认为24小时,
即每隔一天从元数据服务器 (MASTER) 下载一个 metadata.mfs.back 文 件 。
当元数据服务器关闭戒者出故障时,matedata.mfs.back 文件将消失,
那么要恢复整个 mfs,则需从 metalogger 服务器取得该文件。
请特别注意这个文件,它与日志文件一起,才能够恢复整个被损坏的分布式文件系统
52 MASTER_HOST = 192.168.70.111 #修改为master的地址
#设置mfsmeta的权限
[root@Mfs-master moosefs-master]chown -R mfs:mfs /usr/local/mfsmeta/
#启动元数据日志服务器
[root@Mfs-master moosefs-master] cd /usr/local/mfsmeta/sbin
[root@Mfs-master sbin] ./mfsmetalogger start
open files limit has been set to: 4096
working directory: /usr/local/mfsmeta/var/mfs
lockfile created and locked
initializing mfsmetalogger modules ...
mfsmetalogger daemon initialized properly
#加载到rc.local
[root@Mfs-master sbin]# echo "/usr/local/mfsmeta/sbin/mfsmetalogger start" >> /etc/rc.local
#查看端口
[root@Mfs-master mfs]# netstat -anput| grep 9419
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 24568/mfsmaster
tcp 0 0 192.168.70.111:9419 192.168.70.111:58312 ESTABLISHED 24568/mfsmaster
tcp 0 0 192.168.70.111:58312 192.168.70.111:9419 ESTABLISHED 31565/mfsmetalogger
9.Chunk Server安装配置
#添加用户
[root@Mfs-chunk ~]# useradd -s /sbin/nologin mfs
#安装依赖
[root@Mfs-chunk ~]# yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel –y
#下载mfs并且解压
[root@Mfs-chunk ~]# wget https://github.com/moosefs/moosefs/archive/master.zip && unzip master.zip
[root@Mfs-chunk ~]# cd moosefs-master/
#编译
[root@Mfs-chunk moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs && make && make install
#安装
[root@Mfs-chunk moosefs-master]# make && make install
[root@Mfs-chunk moosefs-master]# cd /usr/local/mfs/etc/mfs
[root@Mfs-chunk mfs]# cp mfschunkserver.cfg.sample mfschunkserver.cfg
[root@Mfs-chunk mfs]# cp mfshdd.cfg.sample mfshdd.cfg
[root@Mfs-chunk mfs]# vim mfschunkserver.cfg
84 MASTER_HOST = 192.168.70.111
[root@Mfs-chunk mfs]# vim mfshdd.cfg
#在最后一行添加
/tmp
#设置权限
[root@Mfs-chunk mfs]# chown -R mfs:mfs /usr/local/mfs/
#启动
[root@Mfs-chunk mfs]# /usr/local/mfs/sbin/mfschunkserver start
#查看
[root@Mfs-chunk mfs]# ls /tmp/
00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96 A0 AA B4 BE C8 D2 DC E6 F0 FA
01 0B 15 1F 29 33 3D 47 51 5B 65 6F 79 83 8D 97 A1 AB B5 BF C9 D3 DD E7 F1 FB
02 0C 16 20 2A 34 3E 48 52 5C 66 70 7A 84 8E 98 A2 AC B6 C0 CA D4 DE E8 F2 FC
03 0D 17 21 2B 35 3F 49 53 5D 67 71 7B 85 8F 99 A3 AD B7 C1 CB D5 DF E9 F3 FD
04 0E 18 22 2C 36 40 4A 54 5E 68 72 7C 86 90 9A A4 AE B8 C2 CC D6 E0 EA F4 FE
05 0F 19 23 2D 37 41 4B 55 5F 69 73 7D 87 91 9B A5 AF B9 C3 CD D7 E1 EB F5 FF
06 10 1A 24 2E 38 42 4C 56 60 6A 74 7E 88 92 9C A6 B0 BA C4 CE D8 E2 EC F6 systemd-private-8aafddb2fbac4fd795f7834ffc2cec21-vmtoolsd.service-eZEY7c
07 11 1B 25 2F 39 43 4D 57 61 6B 75 7F 89 93 9D A7 B1 BB C5 CF D9 E3 ED F7
08 12 1C 26 30 3A 44 4E 58 62 6C 76 80 8A 94 9E A8 B2 BC C6 D0 DA E4 EE F8
09 13 1D 27 31 3B 45 4F 59 63 6D 77 81 8B 95 9F A9 B3 BD C7 D1 DB E5 EF F9
10.配置 客户端
#安装依赖
[root@Mfs-client ~]# yum install rpm-build gcc gcc-c++ fuse-devel zlib-devel -y
#添加用户
[root@Mfs-client ~]# useradd -s /sbin/nologin mfs
#下载并且解压
[root@Mfs-client ~]# wget https://github.com/moosefs/moosefs/archive/master.zip && unzip master.zip
#编译
[root@Mfs-client moosefs-master]# ./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --enable-mfsmount
#安装
[root@Mfs-client moosefs-master]#make -j 2 && make install
[root@Mfs-client moosefs-master]# mkdir /mfs
#挂载
[root@Mfs-client moosefs-master]#mfsmount /mfs/ -H 192.168.1.111 -p
#ls /tmp配置完成
#配置web客户端 在master上执行
[root@Mfs-master mfs]#/usr/local/mfs/sbin/mfscgiserv
来源:CSDN
作者:4yuk
链接:https://blog.csdn.net/AZXHNLS81/article/details/104064980