分布式文件系统之MooseFS----部署

  1. 云栖社区>
  2. 博客>
  3. 正文

分布式文件系统之MooseFS----部署

余二五 2017-11-08 21:51:00 浏览920
展开阅读全文

       上篇博文对 MooseFS 的结构,组件和特性做了相关介绍。那么,本篇博文自然就是如何去部署实施 MooseFS 这样一个分布式文件系统喽。

       废话不多说,下面就是整个部署流程!


1、架构规划

       由于在整个MooseFS的架构中,默认是一台 Master,一台 Metalogger ,三台 Chunk Servers。因此,在本次实施规划当中,我们就使用5台虚拟机来进行整个架构的实施部署。

       其中 IP地址 的规划情况如下:

1
2
3
4
5
元数据服务器     mfs-master-1             172.16.100.2
备份服务器       mfs-metalogger           172.16.100.4
数据存储服务器   mfs-chunkserver-1        172.16.100.5
数据存储服务器   mfs-chunkserver-2        172.16.100.6
数据存储服务器   mfs-chunkserver-3        172.16.100.7

       由于这次测试空闲服务器不够,因此采用了虚拟机进行测试(好蛋疼)。但是在实际生产环境中,针对每个组件的服务器选型问题,还是必须要注意的。这里提供如下几条建议:

1、Master Server

       由于 Master Server 控制着整个 MooseFS 中的各个组件,并且负责对外提供服务,因此我们一定需要保证 Master Server 处于非常稳定的状态。比如,针对 Master Server采用双电源双路配置,多块磁盘使用RAID1或RAID10,进行冗余。

       前面也提到,Master Server 将所有访问的元数据信息都放在内存当中,提供用户访问。因此,当文件数量增加的时候,内存使用量也会增加。根据官方的数据,100万个文件chunk信息,大概需要300M的内存空间来进行。对于磁盘来讲,Master Server 对磁盘的使用量不是很大,这个取决于所用的文件和chunk块的数目(记录在主元数据文件)以及对文件作出操作的数量(记录在元数据更改日志),一般情况下 20G 可以用来存储信息 2500 万个文件变更记录长达50小时。由此看来,作为Master Server 内存量够大才是重中之重。

2、Metalogger Server

       在 MooseFS 的设计中,虽然 Metalogger Server 只是用来收集 MooseFS 主服务器的元数据(文件更改的信息的变化)的备份,对硬件的要求不应该高于主服务器的备份。但是需要注意的是,如果在Master Server没有做高可用的情况下,主服务器宕机之后,我们是需要启用Metalogger Server 来顶替主服务器的。因此,从这方面考虑,Metalogger Server 至少也是和 Master Server 的配置相同的,这点切记!

3、Chunk Server

       针对 Chunk Server,它是真正存储数据的载体。因此,我们对它的要求就简单粗暴了很多,只要保障硬盘的性能即可。如果是普通的业务,可以选择多块盘做RAID5即可,当然RAID0或RAID10都是可以的。

       需要注意的是,由于 MooseFS 的默认负载均衡算法的问题,我建议所有 Chunk Server 的磁盘大小保持一致。这样子,我们才能保证 MooseFS 在使用过程中,各个 Chunk 节点的数据使用量是大致一致的。否则,磁盘容量大的 Chunk Server 使用量会加大,而磁盘容量小的 Chunk Server 的使用量会变小。切记,切记!

       当然,如果公司员工有能力的话,也可以对 MooseFS 的负载均衡算法中每次对carry 变量的增加算法这一部分进行改进,来避免默认算法的缺点,使存储数据能够均衡分布在各个 Chunk Server 上。



2、部署 Master Server

1、编译参数介绍

       我们已经知道 MooseFS是由 4 个组件组成的,但是 MooseFS 提供的安装包却只有一个,因此针对每个组件的不同设置,都需要我们在编译之前的配置阶段进行配置,比如安装 Master Server 的时候,我们需要使用 --disable-mfschunkserver和--disable-mfsmount参数;安装 Chunk Server 的时候,我们需要使用 --disable-mfsmaster 参数;安装 Client 时,我们需要使用--disable-mfsmaster和--disable-mfschunkserver参数;如果是安装 Metalogger Server ,我们使用和安装 Master Server时的参数一样即可。

       下面,在部署 Master Server 之前,在详细介绍下 MooseFS 安装包的几个关键的配置参数:

1
2
3
4
5
6
7
8
9
--disable-mfsmaster                  # 不创建成管理服务器(用于纯节点的安装)
--disable-mfschunkserver             # 不创建成数据存储chunkserver服务器 
--disable-mfsmount                   # 不创建mfsmount和mfstools(如果用开发包安装,他们会被默认创建的)   
--enable-mfsmount                    # 确定安装mfsmount和mfstools(如果     
--prefix=DIRECTORY                   # 锁定安装目录(默认是/usr/local)  
--sysconfdir=DIRECTORY               # 选择配置文件目录(默认是${prefix}/etc))   
--localstatedir=DIRECTORY            # 选择变量数据目录(默认是${prefix}/var,MFS元数据被存储在mfs的子目录下,默认是${prefix}/var/mfs )     
--with-default-user                  # 运行守护进程的用户,如果配置文件中没有设定用户,默认为nobody用户   
--with-default-group                 # 运行守护进程的用户组,如果配置文件中没有设定用户组,默认为nogroup用户组



2、安装 Master Server

       当我们安装主服务器mfs master时,由于我们的目的是安装主服务器,因此在配置过程中(./configure),可以选择加参数取消安装 Chunk server(使用--disable-mfschunkserver)以及 MooseFS 客户端(使用--disable-mfsmount)。

       下面,我俩出安装 MooseFS 主控服务器 Master Server 的详细步骤:

1
2
3
4
5
6
7
8
9
10
11
12
[root@mfs-master-1 ~]# yum install zlib-devel -y
[root@mfs-master-1 ~]# groupadd -g 1000 mfs
[root@mfs-master-1 ~]# useradd -u 1000 -g mfs -s /sbin/nologin mfs
[root@mfs-master-1 ~]# cd /usr/local/src
[root@mfs-master-1 src]# wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz
[root@mfs-master-1 src]# tar zxf mfs-1.6.27-5.tar.gz
[root@mfs-master-1 src]# cd mfs-1.6.27
[root@mfs-master-1 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs  --disable-mfschunkserver --disable-mfsmount
[root@mfs-master-1 mfs-1.6.27]# make
[root@mfs-master-1 mfs-1.6.27]# make install
[root@mfs-master-1 mfs-1.6.27]# ln -s /usr/local/mfs-1.6.27 /usr/local/mfs [root@mfs-master-1 mfs-1.6.27]# ll -d /usr/local/mfs lrwxrwxrwx. 1 root root 21 Dec 28 23:28 /usr/local/mfs -> /usr/local/mfs-1.6.27
[root@mfs-master-1 mfs-1.6.27]# cd

这里再补一份快捷操作命令:

1
2
3
4
5
6
7
8
9
yum install zlib-devel -y
groupadd -g 1000 mfs;useradd -u 1000 -g mfs mfs -s /sbin/nologin
cd /usr/local/src && wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz
tar zxf mfs-1.6.27-5.tar.gz && cd mfs-1.6.27
./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount
make && make install
ln -s /usr/local/mfs-1.6.27 /usr/local/mfs
ll -d /usr/local/mfs 
cd

       以上就是 MooseFS 的 Master Server 的安装过程。Master Server 安装成功以后,会在安装目录 /usr/local/mfs-1.6.27 下生成几个目录文件。其中etc目录为mfs配置文件目录,里面有很多默认配置文件样例(结尾后缀为*.dist),后续我们将借用这些样例作为 MFS 服务器的目标配置文件。

       这里来看下每个目录的用途:

[root@mfs-master-1 ~]# ll /usr/local/mfs/ 
total 16 
drwxr-xr-x. 3 root root 4096 Dec 29 00:10 etc                   # MFS 的配置文件目录,里面放了很多模板文件 
drwxr-xr-x. 2 root root 4096 Dec 29 00:10 sbin                 # MFS 命令路径

drwxr-xr-x. 4 root root 4096 Dec 29 00:10 share               # MFS 帮助文件目录
drwxr-xr-x. 3 root root 4096 Dec 29 00:10 var                   # MFS 数据及日志目录,例如:metadata 数据

提示:etc和var需要备份。

注意:

       etc和var目录里面存放的是配置文件和MFS的数据结构信息,因此请及时做好备份,防止灾难损毁。后面做了 Master Server双机之后,就可以解决这个问题。


3、配置 Master Server

       上面简单看了 MooseFS 的目录结构,其中 Master Server 的配置文件是位于/MooseFS根目录/etc 目录下。在该目录下有很多模板配置文件,包括 Master,Metalogger、ChunkServer等,有关 Master 的配置文件主要有两个,一个是 mfsmaster.cfg,另一个是 mfsexports.cfg。其中,mfsmaster.cfg 是主配置文件,mfsexports.cfg 用来指定那些客户端主机可以远程挂载 MooseFS 文件系统以及赋予挂载客户端什么样的访问权限。

       现在,我们去掉 Master 相关的两个配置文件的注释。

       需要注意的是,这里一定要使用 cp,而不是 mv。这样,在操作之前保留原文件,一方面方便更改后对比变化,另一方面也修改出错后的回滚。

       下面列出配置步骤以及每个配置文件的详解!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[root@mfs-master-1 ~]# /usr/local/mfs/etc/mfs
[root@mfs-master-1 mfs]# cp mfsexports.cfg.dist mfsexports.cfg 
[root@mfs-master-1 mfs]# cp mfsmaster.cfg.dist mfsmaster.cfg
这里我们先来看下主配置文件mfsmaster.cfg
[root@mfs-master-1 ~]# cat /usr/local/mfs/etc/mfs/mfsmaster.cfg 
# WORKING_USER = mfs         # 运行 master server 的用户
# WORKING_GROUP = mfs        # 运行 master server 的组
# SYSLOG_IDENT = mfsmaster   # 是master server在syslog中的标识,也就是说明这是由master serve产生的
# LOCK_MEMORY = 0            # 是否执行mlockall()以避免mfsmaster 进程溢出(默认为0)
# NICE_LEVEL = -19           # 运行的优先级(如果可以默认是 -19; 注意: 进程必须是用root启动)
# EXPORTS_FILENAME = /usr/local/mfs-1.6.27/etc/mfs/mfsexports.cfg   # 被挂载目录及其权限控制文件的存放路径
# TOPOLOGY_FILENAME = /usr/local/mfs-1.6.27/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断开的复制延迟(默认是3600)
# 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)
 
# deprecated: 
# CHUNKS_DEL_LIMIT - use CHUNKS_SOFT_DEL_LIMIT instead 
# LOCK_FILE - lock system has been changed, and this option is used only to search for old lockfile

下面附上官方地址:http://moosefs.com/Content/Downloads/moosefs-users-manual.pdf

       该配置文件默认全部都为注释。mfs官方默认这样规定的,每一个注释的配置都是mfs此项配置的默认值。其实,我们linux中很多配置文件的设计风格都是这样子的,比如sshd_config.如果打算更改这些配置文件中某些项的参数,只需要取消注释,并且更改对应的参数即可。

       针对master来讲,mfsmaster.cfg的默认配置无需更改即可投入使用。

       下面,就是权限控制配置文件mfsexports.cfg。

       该配置文件制定了哪些客户端可以远程挂接MFS文件系统,以及授予挂载客户端什么样的访问权限。例如,我们制定只有172.16.0.0/24网段的主机可以读写模式访问MFS的整个共享结构资源(/)。在配置文件mfsexports.cfg中写入如下信息即可。

1
2
3
[root@mfs-master-1 ~]# cat /usr/local/mfs/etc/mfs/mfsexports.cfg
*            /         rw,alldirs,mapall=mfs:mfs,password=redhat
*            .          rw          # 如果需要使用 moosefs的回收站功能,请开启此行。如果不使用,关闭即可

这里,我列出该文件的配置规范:

       mfsexports.cfg 文件中,每一个条目就是一个配置规则,而每一个条目又分为三个部分,其中第一部分是mfs客户端的ip地址或地址范围,第二部分是被挂载的目录,第三个部分用来设置mfs客户端可以拥有的访问权限。

第一部分:mfs客户端的ip地址或地址范围

地址可以指定的几种表现形式:

1
2
3
4
5
    *                  所有的 I P 地址
    n.n.n.n            单个 I P 地址
    n.n.n.n/b          I P 网络地址/位数掩码
    n.n.n.n/m.m.m.m    I P 网络地址/子网掩码
    f.f.f.f-t.t.t.t    I P 段


第二部分:被挂载的目录

目录部分需要注意两点:

1
2
    /       标识MooseFS根
    .       表示MFSMETA文件系统


第三部分:设置mfs客户端可以拥有的访问权限

权限部分:

1
2
3
4
5
    ro        只读模式共享
    rw        读写模式共享
    alldirs   允许挂载任何指定的子目录
    maproot   映射为root,还是指定的用户
    password  指定客户端密码

       OK,以上两个配置文件配置完毕之后,我们还需要注意一个文件。在 Master Server 首次安装之后,会在 /usr/local/mfs/var/mfs/ 目录下生成一个名为 metadata.mfs.empty 的元数据metadata文件,该文件默认是为空的。(当你整个MooseFS配置好之后,它就有数据了)

       Master Server 的运行必须有metadata.mfs,而这个文件就是从metadata.mfs.empty更名而来的。当然,这个更名操作需要我们自己手动来完成。操作如下:

1
[root@mfs-master-1 mfs]# cp /usr/local/mfs/var/mfs/metadata.mfs.empty /usr/local/mfs/var/mfs/metadata.mfs


4、启动 Master Server

       在 MooseFS 的架构中,Master Server 是不依附于其它几个组件的,它可以单独启动。但是需要注意,其它组件必须要等 Master Server 起来之后才能启动!切记!!!

       在通过上面的简单配置之后,我们就可以启动 Master Server 了!

      下面列出启动和检查过程。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@mfs-master-1 mfs]# /usr/local/mfs/sbin/mfsmaster start    # 启动mfs主服务器
working directory: /usr/local/mfs-1.6.27/var/mfs 
lockfile created and locked 
initializing mfsmaster modules ... 
loading sessions ... file not found 
if it is not fresh installation then you have to restart all active mounts !!! 
exports file has been loaded 
mfstopology configuration file (/usr/local/mfs-1.6.27/etc/mfstopology.cfg) not found - using defaults 
loading metadata ... 
create new empty filesystemmetadata 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

下面进行检查,针对 Master Server 的启动检查主要有3个方面,第一看进程,第二看端口,第三看日志

1
2
3
4
5
6
7
[root@mfs-master-1 ~]# ps -ef|grep mfs                            # 查看进程是否正常
mfs 28867 1 0 19:44 ? 00:00:00 /etc/ha.d/resource.d/mfsmaster start 
root 29087 26249 0 19:48 pts/1 00:00:00 grep mfs
[root@mfs-master-1 ~]# netstat -lnt |grep 94                    # 查看端口看是否起来
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN

开启 master 的日志情况

1
2
3
4
5
6
7
8
9
10
11
[root@mfs-master-1 ~]# tailf /var/log/messages     # 观察 Master Server 启动时的日志变化
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: set gid to 1000
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: set uid to 1000
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: sessions have been loaded
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: exports file has been loaded
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: mfstopology configuration file (/usr/local/mfs-1.6.27/etc/mfstopology.cfg) not found - network topology not defined
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: stats file has been loaded
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: master <-> metaloggers module: listen on *:9419
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: master <-> chunkservers module: listen on *:9420
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: main master server module: listen on *:9421
Dec 31 19:52:10 mfs-master-1 mfsmaster[29112]: open files limit: 5000


5、停止 Master Server

         Master Server 服务和其它普通服务不一样,它千万不能使用 kill -9 去强制杀掉进程。每次非正常关闭服务,都需要使用 MooseFS 自带的恢复工具进行数据恢复,非常悲剧。因此,安全的关闭 Master Server 是非常重要。

1
2
3
4
5
6
7
8
9
[root@mfs-master-1 ~]# /usr/local/mfs/sbin/mfsmaster stop 
sending SIGTERM to lock owner (pid:29112) waiting for termination ... terminated
[root@mfs-master-1 ~]# tailf /var/log/messages    # 观察 Master Server 关闭时的日志变化
Dec 31 19:53:16 mfs-master-1 mfsmaster[29113]: set gid to 1000
Dec 31 19:53:16 mfs-master-1 mfsmaster[29113]: set uid to 1000
Dec 31 19:53:16 mfs-master-1 mfsmaster[29112]: terminate signal received
Dec 31 19:53:16 mfs-master-1 mfsmaster[29112]: main master server module: closing *:9421
Dec 31 19:53:16 mfs-master-1 mfsmaster[29112]: master <-> chunkservers module: closing *:9420
Dec 31 19:53:16 mfs-master-1 mfsmaster[29112]: master <-> metaloggers module: closing *:9419


6、扫尾操作

a、配置环境变量

        为了方便操作 MooseFS,我们需要把他的sbin目录加入到系统的PATH变量中去。

1
2
3
4
[root@mfs-metalogger ~]# echo '# add moosefs to the path variable' >> /etc/profile 
[root@mfs-metalogger ~]# echo 'PATH=/usr/local/mfs/sbin/:$PATH' >> /etc/profile 
[root@mfs-metalogger ~]# tail -2 /etc/profile # add moosefs to the path variable PATH=/usr/local/mfs/sbin/:$PATH
[root@mfs-metalogger ~]# source /etc/profile

b、配置开机自启动

        开机自启动的目的,这里就不多解释了。

1
2
3
4
5
[root@mfs-metalogger ~]# echo '# Configure the mfsmaster service startup' >> /etc/rc.local 
[root@mfs-metalogger ~]# echo '/usr/local/mfs/sbin/mfsmaster start' >> /etc/rc.local 
[root@mfs-metalogger ~]# tail -2 /etc/rc.local 
# Configure the metalogger service startup 
/usr/local/mfs/sbin/mfsmetalogger start

以上,就是 Master Server 部署的全部操作。



3、部署 Metalogger Server

1、安装 Metalogger Server

       前面已经介绍了,Metalogger Server 是 Master Server 的备份服务器。因此,Metalogger Server 的安装步骤和 Master Server 的安装步骤相同。并且,最好使用和 Master Server 配置一样的服务器来做 Metalogger Server。这样,一旦主服务器master宕机失效,我们只要导入备份信息changelogs到元数据文件,备份服务器可直接接替故障的master继续提供服务。

       这里仅列出安装步骤:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@mfs-metalogger-1 ~]# yum install zlib-devel -y
[root@mfs-metalogger-1 ~]# groupadd -g 1000 mfs
[root@mfs-metalogger-1 ~]# useradd -u 1000 -g mfs mfs -s /sbin/nologin
[root@mfs-metalogger-1 ~]# cd /usr/local/src
[root@mfs-metalogger-1 src]# wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz
[root@mfs-metalogger-1 src]# tar zxf mfs-1.6.27-5.tar.gz
[root@mfs-metalogger-1 src]# cd mfs-1.6.27
[root@mfs-metalogger-1 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs  --disable-mfschunkserver --disable-mfsmount
[root@mfs-metalogger-1 mfs-1.6.27]# make
[root@mfs-metalogger-1 mfs-1.6.27]# make install
[root@mfs-metalogger-1 mfs-1.6.27]# ln -s /usr/local/mfs-1.6.27 /usr/local/mfs 
[root@mfs-metalogger-1 mfs-1.6.27]# ll -d /usr/local/mfs 
lrwxrwxrwx. 1 root root 21 Dec 28 23:28 /usr/local/mfs -> /usr/local/mfs-1.6.27
[root@mfs-metalogger-1 mfs-1.6.27]# cd


2、配置 Metalogger Server

       虽然,Metalogger Server 的安装步骤和 Master Server 一样,但是配置文件肯定是有所差别的。这里将介绍,如何配置Metalogger Server。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@mfs-metalogger ~]# cd /usr/local/mfs/etc/mfs/ 
[root@mfs-metalogger mfs]# cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
[root@mfs-metalogger mfs]# ll mfsmetalogger.cfg 
-rw-r--r--. 1 root root 423 Dec 28 23:55 mfsmetalogger.cfg
[root@mfs-metalogger mfs]# cat mfsmetalogger.cfg 
# WORKING_USER = mfs 
# WORKING_GROUP = mfs 
# 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.100.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

       这个文件中需要修改的是MASTER_HOST变量,这个变量的值是 Master Server 的 IP 地址。如果对 Master Server 做了 host 解析也可以不改任何内容。

       这里需要将它修改为如下参数:

MASTER_HOST = 172.16.100.1       # 这里是需要连接的 mfs master server 的地址


3、启动 Metalogger Server

启动 Metalogger Server 之前,一定要确保 Master server 的服务是正常启动的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[root@mfs-metalogger ~]# nc -w 2 172.16.100.2 -z 9419   # 从输出可以看到,Master Server 已经正常启动
Connection to 172.16.100.2 9419 port [tcp/*] succeeded!
[root@mfs-metalogger ~]# /usr/local/mfs/sbin/mfsmetalogger start  # 启动 Metalogger Server
working directory: /usr/local/mfs-1.6.27/var/mfs 
lockfile created and locked 
initializing mfsmetalogger modules ... 
mfsmetalogger daemon initialized properly
[root@mfs-metalogger ~]# netstat -lantp|grep metalogger     # 查看进程 
tcp 0 0 172.16.100.4:50193 172.16.100.1:9419 ESTABLISHED 17201/mfsmetalogger
[root@mfs-metalogger ~]# tailf /var/log/messages        # 开启 Metalogger Server 时的日志情况
Dec 30 16:44:25 localhost mfsmetalogger[17275]: set gid to 1000
Dec 30 16:44:25 localhost mfsmetalogger[17275]: set uid to 1000
Dec 30 16:44:26 localhost mfsmetalogger[17275]: connecting ...
Dec 30 16:44:26 localhost mfsmetalogger[17275]: open files limit: 5000
Dec 30 16:44:26 localhost mfsmetalogger[17275]: connected to Master
Dec 30 16:44:26 localhost mfsmetalogger[17275]: metadata downloaded 2461B/0.002353s (1.046 MB/s)
Dec 30 16:44:26 localhost mfsmetalogger[17275]: changelog_0 downloaded 0B/0.000001s (0.000 MB/s)
Dec 30 16:44:26 localhost mfsmetalogger[17275]: changelog_1 downloaded 0B/0.000001s (0.000 MB/s)
Dec 30 16:44:26 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.001027s (0.533 MB/s)
Dec 30 16:44:28 localhost kernel: nfs: server 172.16.100.3 not responding, timed out
去 Master Server 上进行检查:
[root@mfs-master-1 ~]# netstat -lantp|grep 9419 
tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 25665/mfsmaster 
tcp 0 0 172.16.100.1:9419 172.16.100.4:50194 ESTABLISHED 25665/mfsmaster

       我们可以看到Metalogger Server已经和Master Server的9419端口建立了长连接

       另外,在上面的日志中,我们可以看到他在下载一些文件,这些文件就是之前介绍过的Master Server上的文件,我们可以在以下目录看到这些文件。

1
2
3
4
5
6
[root@mfs-metalogger ~]# ll /usr/local/mfs/var/mfs/ 
total 8 
-rw-r-----. 1 mfs mfs 0 Dec 30 16:26 changelog_ml_back.0.mfs 
-rw-r-----. 1 mfs mfs 0 Dec 30 16:26 changelog_ml_back.1.mfs 
-rw-r-----. 1 mfs mfs 2461 Dec 30 16:26 metadata_ml.mfs.back 
-rw-r-----. 1 mfs mfs 547 Dec 30 16:27 sessions_ml.mfs

最后,在贴出 Metalogger Server 运行时的日志输出情况:

1
2
3
4
5
6
[root@mfs-metalogger ~]# tailf /var/log/messages 
Dec 30 16:45:00 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.000842s (0.650 MB/s)
Dec 30 16:46:00 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.000428s (1.278 MB/s)
Dec 30 16:47:00 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.000551s (0.993 MB/s)
Dec 30 16:48:00 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.001091s (0.501 MB/s)
Dec 30 16:49:00 localhost mfsmetalogger[17275]: sessions downloaded 547B/0.000471s (1.161 MB/s)


4、关闭 Metalogger Server

1
2
3
4
5
6
7
8
9
10
[root@mfs-metalogger ~]# /usr/local/mfs/sbin/mfsmetalogger stop 
sending SIGTERM to lock owner (pid:17201) 
waiting for termination ... terminated
[root@mfs-metalogger ~]# tailf /var/log/messages          # 停止 Metalogger Server 时的日志情况   
Dec 30 16:43:42 localhost mfsmetalogger[17272]: set gid to 1000
Dec 30 16:43:42 localhost mfsmetalogger[17272]: set uid to 1000
Dec 30 16:43:42 localhost mfsmetalogger[17271]: terminate signal received
此时 Master Server 上会有提示:
[root@mfs-master-1 ~]# tailf /var/log/messages
Dec 31 10:56:28 mfs-master-1 mfsmaster[25665]: connection with ML(172.16.100.4) has been closed by peer


5、扫尾操作

a、配置全局变量

1
2
3
4
5
6
[root@mfs-metalogger ~]# echo '# add moosefs to the path variable' >> /etc/profile 
[root@mfs-metalogger ~]# echo 'PATH=/usr/local/mfs/sbin/:$PATH' >> /etc/profile 
[root@mfs-metalogger ~]# tail -2 /etc/profile 
# add moosefs to the path variable 
PATH=/usr/local/mfs/sbin/:$PATH
[root@mfs-metalogger ~]# source /etc/profile

b、配置开机自启动

1
2
3
4
5
[root@mfs-metalogger ~]# echo '# Configure the metalogger service startup' >> /etc/rc.local 
[root@mfs-metalogger ~]# echo '/usr/local/mfs/sbin/mfsmetalogger start' >> /etc/rc.local 
[root@mfs-metalogger ~]# tail -2 /etc/rc.local 
# Configure the metalogger service startup 
/usr/local/mfs/sbin/mfsmetalogger start


4、部署 Chunk Servers

1、安装 Chunk Servers

       数据存储服务器也被称为 Chunk Server。在 MooseFS 文件系统中,每个 Chunk Server 的配置是完全相同的。因此,这里我们仅以一台 Chunk Server 的安装为例进行演示,其它两台的安装步骤这里不再复述。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@mfs-chunkserver-1 ~]# yum install zlib-devel -y
[root@mfs-chunkserver-1 ~]# groupadd -g 1000 mfs
[root@mfs-chunkserver-1 ~]# useradd -u 1000 -g mfs mfs -s /sbin/nologin
[root@mfs-chunkserver-1 ~]# cd /usr/local/src
[root@mfs-chunkserver-1 src]# wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz
[root@mfs-chunkserver-1 src]# tar zxf mfs-1.6.27-5.tar.gz
[root@mfs-chunkserver-1 src]# cd mfs-1.6.27
[root@mfs-chunkserver-1 mfs-1.6.27]# ./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs  --disable-mfsmaster --disable-mfsmount
[root@mfs-chunkserver-1 mfs-1.6.27]# make
[root@mfs-chunkserver-1 mfs-1.6.27]# make install
[root@mfs-chunkserver-1 mfs-1.6.27]# ln -s /usr/local/mfs-1.6.27 /usr/local/mfs 
[root@mfs-chunkserver-1 mfs-1.6.27]# ll -d /usr/local/mfs 
lrwxrwxrwx. 1 root root 21 Dec 28 23:28 /usr/local/mfs -> /usr/local/mfs-1.6.27
[root@mfs-chunkserver-1 mfs-1.6.27]# cd


2、配置 Chunk Servers

       配置 Chunk Server 需要两个配置文件,分别是 mfschunkserver.cfg 和 mfshdd.cfg 。其中,mfschunkserver.cfg 是主配置文件,而 mfshdd.cfg 是服务器用来分配给 MFS 使用的空间的配置文件,最好是一个单独的磁盘或者一个raid卷,最低要求是一个分区。

       在每个mfs chunk server 上的配置及操作如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@mfs-chunkserver-1 ~]# cd /usr/local/mfs/etc/mfs/ 
[root@mfs-chunkserver-1 mfs]# cp mfschunkserver.cfg.dist mfschunkserver.cfg 
[root@mfs-chunkserver-1 mfs]# cp mfshdd.cfg.dist mfshdd.cfg
[root@mfs-chunkserver-1 mfs]# grep -v '^$' mfschunkserver.cfg 
# WORKING_USER = mfs 
# WORKING_GROUP = mfs 
# 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 = mfsmaster        # 该地址为 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

       在常规的使用过程中,我们只需要修改一个 MASTER_HOST参数,将该参数设置为我们 Master Server 的IP地址或者主机名即可。

配置mfshdd.cfg主配置文件

       mfshdd.cfg该文件用来设置你将 Chunk Server 的哪个目录共享出去给 Master Server进行管理。当然,虽然这里填写的是共享的目录,但是这个目录后面最好是一个单独的分区。分区的相关操作,这里就不占篇幅了。

1
2
[root@mfs-chunkserver-1 ~]# cat /usr/local/mfs/etc/mfs/mfshdd.cfg 
/mfsdata


3、启动 Chunk Server

       和 Metalogger Server 一样,在启动 chunk servers之前,必须要先确保 Master Server 的服务是正常启动的,否则启动会报错。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@mfs-chunkserver-1 ~]# nc -w 2 172.16.100.2 -z 9420 
Connection to 172.16.100.2 9420 port [tcp/*] succeeded!
[root@mfs-chunkserver-1 ~]# /usr/local/mfs/sbin/mfschunkserver start 
working directory: /usr/local/mfs-1.6.27/var/mfs 
lockfile created and locked 
initializing mfschunkserver modules ... 
hdd space manager: path to scan: /mfsdata/ 
hdd space manager: start background hdd scanning (searching for available chunks) 
main server module: listen on *:9422 
stats file has been loaded 
mfschunkserver daemon initialized properly
[root@mfs-chunkserver-1 ~]# netstat -lantp|grep 9420 
tcp 0 0 172.16.100.5:59486 172.16.100.1:9420 ESTABLISHED 7825/mfschunkserver
[root@mfs-chunkserver-1 ~]# tailf /var/log/messages            # 启动 Chunk Server 时的日志变化
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: set gid to 1000
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: set uid to 1000
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: hdd space manager: folder /mfsdata/ will be scanned
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: main server module: listen on *:9422
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: connecting ...
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: stats file has been loaded
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: open files limit: 10000
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: connected to Master
Dec 30 19:05:34 mfs-chunkserver-1 mfschunkserver[7825]: scanning folder /mfsdata/: complete (0s)
Dec 30 19:05:43 mfs-chunkserver-1 mfschunkserver[7825]: testing chunk: /mfsdata/D0/chunk_00000000000000D0_00000001.mfs
Dec 30 19:05:53 mfs-chunkserver-1 mfschunkserver[7825]: testing chunk: /mfsdata/CD/chunk_00000000000000CD_00000001.mfs

查看 Master Server 上的变化:

1
2
3
4
5
6
7
8
[root@mfs-master-1 ~]# tailf /var/log/messages       # 启动 Chunk Server 时的Master Server 的日志变化
Dec 31 11:31:47 mfs-master-1 mfsmaster[26053]: chunkserver register begin (packet version: 5) - ip: 172.16.100.5, port: 9422
Dec 31 11:31:47 mfs-master-1 mfsmaster[26053]: chunkserver register end (packet version: 5) - ip: 172.16.100.5, port: 9422, usedspace: 0 (0.00 GiB), totalspace: 0 (0.00 GiB)
[root@mfs-master-1 ~]# netstat -lantp|grep 9420 
tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 26053/mfsmaster 
tcp 0 0 172.16.100.1:9420 172.16.100.5:59486 ESTABLISHED 26053/mfsmaster 
tcp 0 0 172.16.100.1:9420 172.16.100.7:41816 ESTABLISHED 26053/mfsmaster 
tcp 0 0 172.16.100.1:9420 172.16.100.6:39261 ESTABLISHED 26053/mfsmaster


4、关闭 Chunk Server

1
2
3
4
5
6
7
8
9
10
11
[root@mfs-chunkserver-1 ~]# /usr/local/mfs/sbin/mfschunkserver stop 
sending SIGTERM to lock owner (pid:7068) 
waiting for termination ... terminated
[root@mfs-chunkserver-1 ~]# tailf /var/log/messages
Dec 30 19:11:08 mfs-chunkserver-1 mfschunkserver[7884]: set gid to 1000
Dec 30 19:11:08 mfs-chunkserver-1 mfschunkserver[7884]: set uid to 1000
Dec 30 19:11:08 mfs-chunkserver-1 mfschunkserver[7859]: terminate signal received
Dec 30 19:11:08 mfs-chunkserver-1 mfschunkserver[7859]: closing *:9422
[root@mfs-master-1 ~]# tailf /var/log/messages
Dec 31 11:35:16 mfs-master-1 mfsmaster[26053]: connection with CS(172.16.100.5) has been closed by peer
Dec 31 11:35:16 mfs-master-1 mfsmaster[26053]: chunkserver disconnected - ip: 172.16.100.5, port: 9422, usedspace: 1186041856 (1.10 GiB), totalspace: 8022986752 (7.47 GiB)


5、扫尾操作

a、配置全局变量

1
2
3
4
5
6
[root@mfs-chunkserver-1 ~]# echo '# add moosefs to the path variable' >> /etc/profile 
[root@mfs-chunkserver-1 ~]# echo 'PATH=/usr/local/mfs/sbin/:$PATH' >> /etc/profile 
[root@mfs-chunkserver-1 ~]# tail -2 /etc/profile 
# add moosefs to the path variable 
PATH=/usr/local/mfs/sbin/:$PATH
[root@mfs-chunkserver-1 ~]# source /etc/profile

b、配置开机自启动

1
2
3
4
5
[root@mfs-chunkserver-1 ~]# echo '# Configure the metalogger service startup' >> /etc/rc.local 
[root@mfs-chunkserver-1 ~]# echo '/usr/local/mfs/sbin/mfsmetalogger start' >> /etc/rc.local 
[root@mfs-chunkserver-1 ~]#tail -2 /etc/rc.local 
# Configure the metalogger service startup 
/usr/local/mfs/sbin/mfsmetalogger start



5、部署 Client

1、安装 FUSE

       由于 MFS 文件系统客户端的挂载依赖于 FUSE 工具,因此需要先安装 FUSE 工具。

官方注解:

mfsmount requires FUSE to work; FUSE is available on several operating systems: Linux, FreeBSD, OpenSolaris and MacOS X, with the following notes:

  • In case of Linux a kernel module with API 7.8 or later is required (it can be checked with dmesgcommand - after loading kernel module there should be a line fuse init (API version 7.8)). It is available in fuse package 2.6.0 (or later) or in Linux kernel 2.6.20 (or later). Due to some minor bugs, the newer module is recommended (fuse 2.7.2 or Linux 2.6.24, although fuse 2.7.x standalone doesn't contain getattr/write race condition fix).

  • In case of FreeBSD we recommed using fuse-freebsd (https://github.com/glk/fuse-freebsd) which is a successor to fuse4bsd.

  • For MacOSX we recommend using OSXFUSE (http://osxfuse.github.com/), which is a successor to MacFUSE and has been tested on MacOSX 10.6 and 10.7.

因此,安装之前,我们需要先查看内核支持情况。如果已经支持了,并且版本也达到要求之后,就无须安装FUSE了。

1
2
[root@mfs-client ~]# lsmod|grep fuse 
fuse 73530 2

如果你的系统版本内核中没有支持FUSE或者版本不够,那么可以使用下面的方式进行安装,这里推荐使用 2.8.5 版本。

a、安装fuse

1
2
3
4
5
6
7
[root@mfs-client src]# wget http://jaist.dl.sourceforge.net/project/fuse/fuse-2.X/2.9.3/fuse-2.9.3.tar.gz
[root@mfs-client src]# tar zxf fuse-2.9.3.tar.gz 
[root@mfs-client src]# cd fuse-2.9.3 
[root@mfs-client fuse-2.9.3]# ls 
[root@mfs-client fuse-2.9.3]# ./configure 
[root@mfs-client fuse-2.9.3]# make && make install
[root@mfs-client fuse-2.9.3]#cd ..

b、调整环境变量

1
2
3
[root@mfs-client src]# echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' > /etc/profile
[root@mfs-client src]# tail -1 /etc/profile 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

c、加载fuse模块到内核并配置开机自启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@mfs-client mfs-1.6.27]# lsmod |grep fuse 
[root@mfs-client mfs-1.6.27]# modprobe fuse 
[root@mfs-client mfs-1.6.27]# lsmod |grep fuse 
fuse 73530 0 
[root@mfs-client mfs-1.6.27]# echo 'modeprobe fuse' >> /etc/sysconfig/modules/fuse.modules 
[root@mfs-client mfs-1.6.27]# cat /etc/sysconfig/modules/fuse.modules 
modeprobe fuse 
[root@mfs-client mfs-1.6.27]# chmod 755 /etc/sysconfig/modules/fuse.modules2、安装 mfsmount
[root@mfs-client ~]# yum install zlib-devel -y
[root@mfs-client ~]# groupadd -g 1000 mfs
[root@mfs-client ~]# useradd -u 1000 -g mfs mfs -s /sbin/nologin
[root@mfs-client ~]# cd /usr/local/src
[root@mfs-client src]# wget http://moosefs.org/tl_files/mfscode/mfs-1.6.27-5.tar.gz
[root@mfs-client src]# tar zxf mfs-1.6.27-5.tar.gz
[root@mfs-client src]# cd mfs-1.6.27
[root@mfs-client mfs-1.6.27]# ./configure --prefix=/usr/local/mfs-1.6.27 --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount
[root@mfs-client mfs-1.6.27]# make
[root@mfs-client mfs-1.6.27]# make install
[root@mfs-client mfs-1.6.27]# ln -s /usr/local/mfs-1.6.27 /usr/local/mfs 
[root@mfs-client mfs-1.6.27]# ll -d /usr/local/mfs 
lrwxrwxrwx. 1 root root 21 Dec 28 23:28 /usr/local/mfs -> /usr/local/mfs-1.6.27
[root@mfs-client mfs-1.6.27]# ll /usr/local/mfs/ 
total 20 
drwxr-xr-x. 2 root root 4096 Dec 28 16:41 bin            # bin 目录下是客户端的命令
drwxr-xr-x. 3 root root 4096 Dec 28 16:41 etc 
drwxr-xr-x. 2 root root 4096 Dec 28 16:41 sbin 
drwxr-xr-x. 4 root root 4096 Dec 28 16:41 share 
drwxr-xr-x. 3 root root 4096 Dec 28 16:41 var



3、从客户端上挂载mfs文件系统

a、创建数据目录挂载点

1
2
3
4
[root@mfs-client mfs-1.6.27]# mkdir /mfsdata 
[root@mfs-client mfs-1.6.27]# chown -R mfs.mfs /mfsdata 
[root@mfs-client mfs-1.6.27]# ll -d /mfsdata 
drwxr-xr-x. 2 mfs mfs 4096 Dec 28 16:44 /mfsdata

b、挂载mfs文件系统

由于我们之前设置了需要密码验证才能挂载成功,因此这里会提示我们需要输入密码

1
2
3
4
5
6
7
8
9
10
11
[root@mfs-client mfs-1.6.27]# /usr/local/mfs/bin/mfsmount /mfsdata -H 172.16.100.2 
mfsmaster register error: Password is needed
[root@mfs-client mfs-1.6.27]# /usr/local/mfs/bin/mfsmount /mfsdata -H 172.16.100.2 -p       # 使用 -p 后面,下面会提示输入密码 
MFS Password: 
mfsmaster accepted connection with parameters: read-write,restricted_ip,map_all ; root mapped to mfs:mfs ; users mapped to root:root 
[root@mfs-client mfs-1.6.27]# df -h 
Filesystem Size Used Avail Use% Mounted on 
/dev/sda3 18G 949M 16G 6% / 
tmpfs 491M 0 491M 0% /dev/shm 
/dev/sda1 194M 28M 157M 15% /boot 
172.16.100.1:9421 22G 0 22G 0% /mfsdata


4、挂载后本地写入文件测试

写入测试前,我们查看下主和备服务器的元数据文件及变化日志文件。

1
2
3
4
5
6
7
[root@mfs-client mfs-1.6.27]# cd /mfsdata/
[root@mfs-client mfsdata]# touch a 
[root@mfs-client mfsdata]# echo redhat > a 
[root@mfs-client mfsdata]# cat a 
redhat 
[root@mfs-client mfsdata]# rm -rf a 
[root@mfs-client mfsdata]# ls

在客户端写入完成之后,我们可以来观察一下 Master Server 端的变化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@mfs-master-1 mfs]# cat changelog.0.mfs 
1: 1419799640|SESSION():2 
2: 1419799701|SESSION():3 
3: 1419799756|CREATE(1,a,f,420,1000,1000,0):2 
4: 1419799756|ACQUIRE(2,3) 
5: 1419799756|ATTR(2,420,1000,1000,1419803408,1419803408) 
6: 1419799759|LENGTH(2,0) 
7: 1419799759|WRITE(2,0,1):1 
8: 1419799759|LENGTH(2,7) 
9: 1419799759|UNLOCK(1) 
10: 1419799760|ACCESS(2) 
11: 1419799761|RELEASE(2,3) 
12: 1419799762|UNLINK(1,a):2 
13: 1419799763|ACCESS(1)

我们再来查看一下,Metalogger Server 端的变化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@mfs-metalogger ~]# cd /usr/local/mfs/var/mfs/
[root@mfs-metalogger mfs]# cat changelog_ml.1.mfs 
0: 1419799516|SESSION():1 
1: 1419799640|SESSION():2 
2: 1419799701|SESSION():3 
3: 1419799756|CREATE(1,a,f,420,1000,1000,0):2 
4: 1419799756|ACQUIRE(2,3) 
5: 1419799756|ATTR(2,420,1000,1000,1419803408,1419803408) 
6: 1419799759|LENGTH(2,0) 
7: 1419799759|WRITE(2,0,1):1 
8: 1419799759|LENGTH(2,7) 
9: 1419799759|UNLOCK(1) 
10: 1419799760|ACCESS(2) 
11: 1419799761|RELEASE(2,3) 
12: 1419799762|UNLINK(1,a):2 
13: 1419799763|ACCESS(1)


5、扫尾操作

a、配置环境变量

1
2
3
4
5
6
[root@mfs-metalogger ~]# echo '# add moosefs to the path variable' >> /etc/profile 
[root@mfs-metalogger ~]# echo 'PATH=/usr/local/mfs/bin/:$PATH' >> /etc/profile 
[root@mfs-metalogger ~]# tail -2 /etc/profile 
# add moosefs to the path variable 
PATH=/usr/local/mfs/bin/:$PATH
[root@mfs-metalogger ~]# source /etc/profile

b、配置客户端开机自动挂载

       如果需要Client能够在开机的时候自动挂载,我们就需要自动把密码传递进去。mfsmount自带了-o参数,我们可以把密码配置在其后来实现开机自动挂载。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@mfs-client mfs-1.6.27]# umount /mfsdata/ 
[root@mfs-client mfs-1.6.27]# /usr/local/mfs/bin/mfsmount /mfsdata -H 172.16.100.2 -o mfspassword=redhat 
mfsmaster accepted connection with parameters: read-write,restricted_ip,map_all ; root mapped to mfs:mfs ; users mapped to root:root 
[root@mfs-client mfs-1.6.27]# df -h 
Filesystem Size Used Avail Use% Mounted on 
/dev/sda3 18G 949M 16G 6% / 
tmpfs 491M 0 491M 0% /dev/shm 
/dev/sda1 194M 28M 157M 15% /boot 
172.16.100.1:9421 22G 0 22G 0% /mfsdata
[root@mfs-client mfs-1.6.27]# echo 'Moosefs boot automatically mount' >> /etc/rc.local
[root@mfs-client mfs-1.6.27]# echo '/usr/local/mfs/bin/mfsmount /mfsdata -H 172.16.100.2 -o mfspassword=redhat' >> /etc/rc.local
[root@mfs-client mfs-1.6.27]# tailf -2 /etc/rc.local
Moosefs boot automatically mount
/usr/local/mfs/bin/mfsmount /mfsdata -H 172.16.100.2 -o mfspassword=redhat


OK!

       以上就是 MooseFS 的部署流程,希望能对51博友有所帮助。针对 MooseFS 更深一步的研究,比如 MooseFS的特性,MooseFS 的日常管理维护以及 MooseFS 的监控和灾难恢复等等,我将会放在下一篇博文中去说。











本文转自 aaao 51CTO博客,原文链接:http://blog.51cto.com/nolinux/1601385,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注