MooseFS正式服完全搭建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MooseFS正式服完全搭建相关的知识,希望对你有一定的参考价值。
MooseFS正式服完全搭建官网:https://moosefs.com
1、环境
CentOS7 x86_64 各节点时间同步,做主机名解析
172.16.2.1 master
172.16.2.2 metalogger 和chunk
172.16.2.3 chunk
172.16.2.4 client
2、每个节点配置yum源
curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
curl "http://ppa.moosefs.com/MooseFS-3-el7.repo" > /etc/yum.repos.d/MooseFS3.repo
cat /etc/yum.repos.d/MooseFS3.repo
[MooseFS]
name=MooseFS $releasever - $basearch
baseurl=http://ppa.moosefs.com/moosefs-3/yum/el7
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
enabled=1
yum list|grep -i moosefs
3、master节点上安装master server,CGI ,CLI
yum install moosefs-master #这个是master服务
安装好后用下面命令检查:
rpm -ql moosefs-master
/etc/mfs/mfsexports.cfg.sample #mfs被挂接目录及其权限控制配置文件,
/etc/mfs/mfsmaster.cfg.sample #主配置文件,
/etc/mfs/mfstopology.cfg.sample #定义MFS网络拓扑结构的配置文件
/usr/lib/systemd/system/moosefs-master.service
/usr/sbin/mfsmaster
/usr/sbin/mfsmetadump
/usr/sbin/mfsmetarestore
/usr/sbin/mfsstatsdump
/usr/share/doc/moosefs-master-3.0.97
/usr/share/doc/moosefs-master-3.0.97/NEWS
/usr/share/doc/moosefs-master-3.0.97/README
/usr/share/man/man5/mfsexports.cfg.5.gz
/usr/share/man/man5/mfsmaster.cfg.5.gz
/usr/share/man/man5/mfstopology.cfg.5.gz
/usr/share/man/man8/mfsmaster.8.gz
/usr/share/man/man8/mfsmetadump.8.gz
/usr/share/man/man8/mfsmetarestore.8.gz
/usr/share/man/man8/mfsstatsdump.8.gz
/var/lib/mfs
/var/lib/mfs/metadata.mfs.empty
cd /etc/mfs/
ls
mfsexports.cfg mfsmaster.cfg mfstopology.cfg
mfsexports.cfg.sample mfsmaster.cfg.sample mfstopology.cfg.sample
yum install moosefs-cgiserv moosefs-cgi
(moosefs-cgi被moosefs-cgiserv所依赖)
#这个是CGI监视接口,给用户用来查看和分析当前MooseFS状态的web-gui
rpm -ql moosefs-cgiserv
/usr/lib/systemd/system/moosefs-cgiserv.service
/usr/sbin/mfscgiserv
/usr/share/doc/moosefs-cgiserv-3.0.97
/usr/share/doc/moosefs-cgiserv-3.0.97/NEWS
/usr/share/doc/moosefs-cgiserv-3.0.97/README
/usr/share/man/man8/mfscgiserv.8.gz
/var/lib/mfs
systemctl start moosefs-cgiserv
ss -ntlp|grep mfs
浏览器访问ip:9425即可打开监控页面
yum install moosefs-cli
#这个是MooseFS命令行接口工具允许你查看MooseFS状态信息
rpm -ql moosefs-cli
/usr/bin/mfscli
/usr/share/doc/moosefs-cli-3.0.97
/usr/share/doc/moosefs-cli-3.0.97/NEWS
/usr/share/doc/moosefs-cli-3.0.97/README
/usr/share/man/man1/mfscli.1.gz
主配置文件/etc/mfs/mfsmaster.cfg详解:
vi /etc/mfs/mfsmaster.cfg
WORKING_USER = root #运行 master server 的用户
WORKING_GROUP = root #运行 master server 的组
# SYSLOG_IDENT = mfsmaster #是master server在系统日志syslog中的标识,也就是说明这是由master server产生的,清理/var/log/message、secure即可
# LOCK_MEMORY = 0 #是否执行mlockall()以避免mfsmaster 进程溢出(默认为0)
# NICE_LEVEL = -19 #运行的优先级(如果可以默认是 -19; 注意: 进程必须是用root启动)
# EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg #被挂载目录及其权限控制文件的存放路径
# TOPOLOGY_FILENAME = /etc/mfs/mfstopology.cfg #mfstopology.cfg文件的存放路径
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs # 数据存放路径,此目录下大致有三类文件,changelog,sessions和stats;
# BACK_LOGS = 50 # metadata的改变log文件数目(默认是 50)
# BACK_META_KEEP_PREVIOUS = 1 # metadata的默认保存份数(默认为1)
# REPLICATIONS_DELAY_INIT = 300 # 延迟复制的时间(默认是300s)
# REPLICATIONS_DELAY_DISCONNECT = 3600 # chunkserver断开的复制延迟(默认是3600s)
# MATOML_LISTEN_HOST = * # metalogger监听的IP地址(默认是*,代表任何IP)
# MATOML_LISTEN_PORT = 9419 # metalogger监听的端口地址(默认是9419)
# MATOML_LOG_PRESERVE_SECONDS = 600
# MATOCS_LISTEN_HOST = * # 用于chunkserver连接的IP地址(默认是*,代表任何IP)
# MATOCS_LISTEN_PORT = 9420 # 用于chunkserver连接的端口地址(默认是9420)
# MATOCL_LISTEN_HOST = * # 用于客户端挂接连接的IP地址(默认是*,代表任何IP)
# MATOCL_LISTEN_PORT = 9421 # 用于客户端挂接连接的端口地址(默认是9421)
# CHUNKS_LOOP_MAX_CPS = 100000 # chunks的最大回环频率(默认是:100000秒)
# CHUNKS_LOOP_MIN_TIME = 300 # chunks的最小回环频率(默认是:300秒)
# CHUNKS_SOFT_DEL_LIMIT = 10 # 一个chunkserver中soft最大的可删除数量为10个
# CHUNKS_HARD_DEL_LIMIT = 25 # 一个chuankserver中hard最大的可删除数量为25个
# CHUNKS_WRITE_REP_LIMIT = 2 # 在一个循环里复制到一个chunkserver的最大chunk数目(默认是1)
# CHUNKS_READ_REP_LIMIT = 10 # 在一个循环里从一个chunkserver复制的最大chunk数目(默认是5)
# ACCEPTABLE_DIFFERENCE = 0.1 # 每个chunkserver上空间使用率的最大区别(默认为0.01即1%)
# SESSION_SUSTAIN_TIME = 86400 # 客户端会话超时时间为86400秒,即1天
# REJECT_OLD_CLIENTS = 0 # 弹出低于1.6.0的客户端挂接(0或1,默认是0)
:wq
该配置文件默认全部都为注释。mfs官方默认这样规定的,每一个注释的配置都是mfs此项配置的默认值。其实,我们linux中很多配置文件的设计风格都是这样子的,比如sshd_config.如果打算更改这些配置文件中某些项的参数,只需要取消注释,并且更改对应的参数即可。
对于master来讲,mfsmaster.cfg的默认配置无需更改即可投入使用。
配置文件/etc/mfs/mfsexports.cfg:
该配置文件制定了哪些客户端可以远程挂接MFS文件系统,以及授予挂载客户端什么样的访问权限。与NFS相似,NFS要共享一个目录时,我们会使用vim /etc/exports命令,
编写共享给谁,所要共享的目录,共享出去的属性这些内容,而mfsexports.cfg的作用与其类似,其书写格式如下:
[ip range] [path] [options]
client Directory Property
* / rw,alldirs,maproot=0:0
client支持格式:ip、ip/netmask、ip/位数掩码、ip-ip、*
client地址可以指定的几种表现形式:
* 所有的ip 地址
n.n.n.n 单个ip 地址
n.n.n.n/b IP 网络地址/位数掩码
n.n.n.n/m.m.m.m IP 网络地址/子网掩码
f.f.f.f-t.t.t.t IP 段
目录部分需要注意两点:
/ 标识MooseFS 根;
. 表示MFSMETA 文件系统
权限部分:
ro 只读模式共享
rw 读写的方式共享
alldirs 许挂载任何指定的子目录
maproot 映射为root,还是指定的用户
password 指定客户端密码
# Defaults:
# readonly,maproot=999:999,mingoal=1,maxgoal=9,mintrashtime=0,maxtrashtime=4294967295
我们配置只有172.16.2.0/24网段的主机可以读写模式访问MFS的整个共享结构资源(/)。在配置文件mfsexports.cfg中写入如下信息即可。
172.16.2.0/24 / rw,alldirs,maproot=0:0
启动moosefs-master:
在 MooseFS 的架构中,Master Server 是不依附于其它几个组件的,它可以单独启动。但是需要注意,其它组件必须要等 Master Server 起来之后才能启动!切记!!!
service moosefs-master start
systemctl start moosefs-master
正在启动 mfsmaster: [确定]
ss -ntlp|grep mfs
mfsmaster必须正常开启三个端口:客户端连接9421端口,监听9419端口;数据节点9420端口
4、metalogger节点上安装metalogger server
前面已经介绍了,Metalogger Server 是 Master Server 的备份服务器。一旦主服务器master宕机失效,我们只要导入备份信息changelogs到元数据文件,备份服务器可直接接替故障的master继续提供服务。
yum install moosefs-metalogger
rpm -ql moosefs-metalogger
/etc/mfs/mfsmetalogger.cfg.dist
/etc/rc.d/init.d/moosefs-metalogger
/usr/sbin/mfsmetalogger
/usr/share/doc/moosefs-metalogger-2.0.89
/usr/share/doc/moosefs-metalogger-2.0.89/NEWS
/usr/share/doc/moosefs-metalogger-2.0.89/README
/usr/share/man/man5/mfsmetalogger.cfg.5.gz
/usr/share/man/man8/mfsmetalogger.8.gz
/var/lib/mfs
配置文件/etc/mfs/mfsmetalogger.cfg:
cd /etc/mfs
ls
mfsmetalogger.cfg mfsmetalogger.cfg.dist
vi mfsmetalogger.cfg
# WORKING_USER = root
# WORKING_GROUP = root
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs
# BACK_LOGS = 50
# BACK_META_KEEP_PREVIOUS = 3
# META_DOWNLOAD_FREQ = 24 # 元数据备份文件下载请求频率,默认为24小时,即每个一天从元数据服务器下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,metadata.mfs.back文件将小时,那么要恢复整个mfs,则需要从metalogger服务器取得该文件。请注意该文件,它与日志文件在一起,才能够恢复整个被损坏的分布式文件系统。
# MASTER_RECONNECTION_DELAY = 5
MASTER_HOST = 172.16.2.1 # 这里是需要连接的 mfs master server 的地址
#MASTER_PORT = 9419 # 这里是需要连接的 mfs master server 的端口
# MASTER_TIMEOUT = 60
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock
:wq
这个文件中需要修改的是MASTER_HOST变量,这个变量的值是 Master Server 的 IP 地址。如果对 Master Server 做了 host 解析也可以不改任何内容。
这里需要将它修改为如下参数:
# MASTER_HOST = mfsmaster
MASTER_HOST = 172.16.2.1
启动metalogger server:
启动 Metalogger Server 之前,一定要确保 Master server 的服务是正常启动的。
service moosefs-metalogger start
Starting mfsmetalogger: [ OK ]
ps aux|grep mfs
mfs 12896 0.2 0.2 17628 1116 ? S< 11:00 0:00 mfsmetalogger start
root 12980 0.0 0.1 103244 856 pts/1 S+ 11:04 0:00 grep mfs
我们可以看到它下载一些文件,这些文件就是之前介绍过的Master Server上的文件,我们可以在以下目录看到这些文件。
ls /var/lib/mfs
changelog_ml_back.0.mfs changelog_ml_back.1.mfs metadata_ml.mfs.back
5、chunk节点上安装chunk server
数据存储服务器也被称为 Chunk Server。在 MooseFS 文件系统中,每个 Chunk Server 的配置是需要完全相同的。在这仅以一台 Chunk Server 安装为例,以后扩容或者配置需要一模一样的即可。
yum install moosefs-chunkserver
rpm -ql moosefs-chunkserver
/etc/mfs/mfschunkserver.cfg.dist
/etc/mfs/mfshdd.cfg.dist
/etc/rc.d/init.d/moosefs-chunkserver
/usr/sbin/mfschunkserver
/usr/sbin/mfschunktool
/usr/share/doc/moosefs-chunkserver-2.0.89
/usr/share/doc/moosefs-chunkserver-2.0.89/NEWS
/usr/share/doc/moosefs-chunkserver-2.0.89/README
/usr/share/man/man5/mfschunkserver.cfg.5.gz
/usr/share/man/man5/mfshdd.cfg.5.gz
/usr/share/man/man8/mfschunkserver.8.gz
/usr/share/man/man8/mfschunktool.8.gz
/var/lib/mfs
配置文件/etc/mfs/mfschunkserver.cfg:
配置 Chunk Server 需要两个配置文件,分别是 mfschunkserver.cfg 和 mfshdd.cfg 。
其中,mfschunkserver.cfg 是Chunk Server的主配置文件,而 mfshdd.cfg 是服务器用来分配给 MFS 使用的空间的配置文件,最好是一个单独的磁盘或者一个raid卷,最低要求是一个分区。
在每个chunk server 上的配置及操作如下:
vi mfschunkserver.cfg
# WORKING_USER = root
# WORKING_GROUP = root
# SYSLOG_IDENT = mfschunkserver
# LOCK_MEMORY = 0
# NICE_LEVEL = -19
# DATA_PATH = /usr/local/mfs-1.6.27/var/mfs
# MASTER_RECONNECTION_DELAY = 5
# BIND_HOST = *
MASTER_HOST = 172.16.2.1 # 该地址为 Master Server 的IP地址或者主机名
# MASTER_PORT = 9420
# MASTER_TIMEOUT = 60
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422 # 该端口用于与其它chunk server之间的通信,主要是数据复制
# HDD_CONF_FILENAME = /usr/local/mfs-1.6.27/etc/mfs/mfshdd.cfg
# HDD_TEST_FREQ = 10
# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfschunkserver.lock
# BACK_LOGS = 50
# CSSERV_TIMEOUT = 5
:wq
在使用过程中,我们只需要修改一个 MASTER_HOST参数,将该参数设置为我们 Master Server 的IP地址或者主机名即可。
配置mfshdd.cfg主配置文件:
mfshdd.cfg该文件用来设置你将 Chunk Server 的哪个目录共享出去给 Master Server进行管理。当然,虽然这里填写的是共享的目录,这个目录最低要求是一个单独的分区。
ls /mogstore/
lost+found
vi mfshdd.cfg #这里使用单独挂盘创建的分区/mogstore
/mogstore
chown root. -R /mogstore/
启动 Chunk Server:
和Metalogger Server 一样,在启动 chunk servers之前,必须要先确保 Master Server 的服务是正常启动的,否则启动会报错。
service moosefs-chunkserver restart
Stopping mfschunkserver: [ OK ]
Starting mfschunkserver: [ OK ]
ls /mogstore/
00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 DF EF FF
01 11 21 31 41 51 61 71 81 91 A1 B1 C1 D1 E0 F0 lost+found
02 12 22 32 42 52 62 72 82 92 A2 B2 C2 D2 E1 F1
03 13 23 33 43 53 63 73 83 93 A3 B3 C3 D3 E2 F2
04 14 24 34 44 54 64 74 84 94 A4 B4 C4 D4 E3 F3
05 15 25 35 45 55 65 75 85 95 A5 B5 C5 D5 E4 F4
06 16 26 36 46 56 66 76 86 96 A6 B6 C6 D6 E5 F5
07 17 27 37 47 57 67 77 87 97 A7 B7 C7 D7 E6 F6
08 18 28 38 48 58 68 78 88 98 A8 B8 C8 D8 E7 F7
09 19 29 39 49 59 69 79 89 99 A9 B9 C9 D9 E8 F8
0A 1A 2A 3A 4A 5A 6A 7A 8A 9A AA BA CA DA E9 F9
0B 1B 2B 3B 4B 5B 6B 7B 8B 9B AB BB CB DB EA FA
0C 1C 2C 3C 4C 5C 6C 7C 8C 9C AC BC CC DC EB FB
0D 1D 2D 3D 4D 5D 6D 7D 8D 9D AD BD CD DD EC FC
0E 1E 2E 3E 4E 5E 6E 7E 8E 9E AE BE CE DE ED FD
0F 1F 2F 3F 4F 5F 6F 7F 8F 9F AF BF CF dev2 EE FE
6、client节点安装client server
yum install moosefs-client
rpm -ql moosefs-client
/etc/mfs/mfsmount.cfg.dist
/usr/bin/mfsappendchunks
/usr/bin/mfscheckfile
/usr/bin/mfsdeleattr
/usr/bin/mfsdelquota
/usr/bin/mfsdirinfo
/usr/bin/mfsfileinfo
/usr/bin/mfsfilepaths
/usr/bin/mfsfilerepair
/usr/bin/mfsgeteattr
/usr/bin/mfsgetgoal
/usr/bin/mfsgetquota
/usr/bin/mfsgettrashtime
/usr/bin/mfsmakesnapshot
/usr/bin/mfsmount
/usr/bin/mfsrgetgoal
/usr/bin/mfsrgettrashtime
/usr/bin/mfsrsetgoal
/usr/bin/mfsrsettrashtime
/usr/bin/mfsseteattr
/usr/bin/mfssetgoal
/usr/bin/mfssetquota
/usr/bin/mfssettrashtime
/usr/bin/mfstools
/usr/share/doc/moosefs-client-2.0.89
挂载mfs文件系统:
如果我们之前设置了密码,这里会提示我们需要输入密码,IP写master的IP
mfsmount /mnt -H 172.16.2.1 # 使用 -p 后面,下面会提示输入密码
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 20G 2.4G 16G 14% /
tmpfs tmpfs 981M 0 981M 0% /dev/shm
/dev/sda1 ext4 508M 34M 448M 7% /boot
172.16.2.1:9421 fuse.mfs 21G 856M 20G 5% /mnt
特别需要注意的是,所有的MFS 都是挂接同一个元数据服务器master 的IP,而不是其他数据存储服务器chunkserver 的IP
挂载本地后写入文件测试:
cd /mnt
echo "Hello" > Test
cat Test
Hello
配置客户端开机自动挂载:
如果需要Client能够在开机的时候自动挂载,我们就需要自动把密码传递进去。mfsmount自带了-o参数,我们可以把密码配置在其后来实现开机自动挂载。
例如:mfsmount /mogstore -H 192.168.10.2 -o mfspassword=anyfish
echo '/usr/bin/mfsmount /mogstore -H 172.16.2.1 ' >> /etc/rc.local
以上是关于MooseFS正式服完全搭建的主要内容,如果未能解决你的问题,请参考以下文章