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

 

3master节点上安装master serverCGI ,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-cgimoosefs-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/messagesecure即可

# 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 # 数据存放路径,此目录下大致有三类文件,changelogsessionsstats

# 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      # 一个chunkserversoft最大的可删除数量为10

# CHUNKS_HARD_DEL_LIMIT = 25      # 一个chuankserverhard最大的可删除数量为25

# CHUNKS_WRITE_REP_LIMIT = 2      # 在一个循环里复制到一个chunkserver的最大chunk数目(默认是1

# CHUNKS_READ_REP_LIMIT = 10      # 在一个循环里从一个chunkserver复制的最大chunk数目(默认是5

# ACCEPTABLE_DIFFERENCE = 0.1     # 每个chunkserver上空间使用率的最大区别(默认为0.011%

# SESSION_SUSTAIN_TIME = 86400    # 客户端会话超时时间为86400秒,即1

# REJECT_OLD_CLIENTS = 0       # 弹出低于1.6.0的客户端挂接(01,默认是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支持格式:ipip/netmaskip/位数掩码、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端口

 

4metalogger节点上安装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

 

5chunk节点上安装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

 

6client节点安装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文件系统:

如果我们之前设置了密码,这里会提示我们需要输入密码IPmasterIP

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正式服完全搭建的主要内容,如果未能解决你的问题,请参考以下文章

MFS(MooseFS分布式文件系统)

MFS(MooseFS分布式文件系统)

分布式文件系统mfs(moosefs)搭建与配置

Linux的企业-分布式文件系统mfs(moosefs)搭建与配置

centos7搭建分布式文件系统MFS

MooseFS的使用总结