MooseFS(MFS)安装手记(一)

Deadly 提交于 2019-12-27 03:47:04

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

        MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:

       1 管理服务器managing server (master)

              负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝

       2 元数据日志服务器Metalogger server(Metalogger)

               负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server出问题的时候接替其进行工作

      3 数据存储服务器data servers (chunkservers)

               负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输.

     4 客户机挂载使用client computers(需要FUSE支持)

              通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,.看起来共享的文件系统和本地unix文件系统使用一样的效果.

 一般架构如下


 MFS的读数据过程


MFS的写数据过程

 实验环境如下

       master:10.1.1.175

       metalogger:10.1.1.40

       chunkserver:10.1.1.173/10.1.1.176

       client:10.1.1.174

       mfs版本:mfs-1.6.19.tar.gz

 master server 的安装

      在安装maste server服务器时我们可以取消安装chunkserver和客户端安装,具体步骤如下:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmount --disable-mfschunkserver

make&&make install

     安装成功后在/etc/mfs目录下会有以.dist结尾的文件,由于我们这台机器做master所以需要两个文件mfsexports.cfg和 mfsmaster.cfg,所有配置文件的值都是被注释掉的,他们是默认生效的,如果要修改去掉注释修改即可。

    mfsmaster.cfg是主配置文件

vi mfsmaster.cfg

#运行master的用户
# WORKING_USER = mfs

#运行master的组
# WORKING_GROUP = mfs

#master server在syslog中的标示,表示是由master产生
# SYSLOG_IDENT = mfsmaster

#是否执行mlockall,以避免master进程溢出
# LOCK_MEMORY = 0

#进程优先级,默认是-19时必须以root启动
# NICE_LEVEL = -19

#被挂载目录配置文件的位置
# EXPORTS_FILENAME = /etc/mfs/mfsexports.cfg

#数据存放路径,有sessions,stats,metadata,changelog等日志
# DATA_PATH = /var/lib/mfs

#metadata更改的log文件数目
# BACK_LOGS = 50

#延迟复制时间
# REPLICATIONS_DELAY_INIT = 300

#chunkserver断开的复制延迟
# REPLICATIONS_DELAY_DISCONNECT = 3600

#metalog监听的ip地址和端口
# MATOML_LISTEN_HOST = *
# MATOML_LISTEN_PORT = 9419

#用于chunkserver连接的ip地址和端口
 MATOCS_LISTEN_HOST = 10.1.1.175
# MATOCS_LISTEN_PORT = 9420

#用于客户端挂载的ip地址和端口
 MATOCU_LISTEN_HOST = 10.1.1.175
# MATOCU_LISTEN_PORT = 9421

#chunk的回环频率
# CHUNKS_LOOP_TIME = 300

#chunk在loop中被删除的最大延迟时间
# CHUNKS_DEL_LIMIT = 100
# CHUNKS_WRITE_REP_LIMIT = 1
# CHUNKS_READ_REP_LIMIT = 5

# REJECT_OLD_CLIENTS = 0

# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmaster.lock

     mfsexports.cfg 对被挂载目录权限的设置

vi mfsexports.cfg

# Allow everything but "meta".
10.1.1.0/24                     /       rw,alldirs,maproot=0
# Allow "meta".
10.1.1.0/24                     .       rw
#*                      /       ro
#192.168.1.0/24         /       rw
#192.168.1.0/24         /       rw,alldirs,maproot=0,password=passcode
#10.0.0.0-10.0.0.5      /test   rw,maproot=nobody,password=test
#10.1.0.0/255.255.0.0   /public rw,mapall=1000:1000

     第一部分为客户端ip地址

            可以有多种显示方式

    第二部分为被挂载目录

              /   表示moosefs的跟

             *  表示mfsmeta文件系统

    第三部分为用户权限

             ro   只读模式

             rw  读写模式

             alldirs   允许挂载任何指定的子目录

             maproot    映射为root用户

             passwd    指定客户端密码

开始启动master server

        由于我们安装时指定了--localstatedir=/var/lib ,所以metadata和changelog都保存在/var/lib/mfs下面,在第一次安装master server时会生成一个metadata.mfs.empty文件,他是空的,master运行必须有metadata.mfs,所以只要改变metadata.mfs.empty的名字即可。

      进入/usr/local/mfs/sbin目录:


启动之后查看master进程:


    注意:在关闭master server不要使用kill命令,使用./mfsmaster -s 关闭即可。


metalogger的安装

     在安装metalogger时我们可以取消安装chunkserver和客户端安装,一旦master server故障,导入changelogs,metalogger服务器便可以替代master server,安装方法和master server方法一样:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmount --disable-mfschunkserver

make&&make install

在/etc/mfs/目录下把mfsmetalogger.cfg.dist变为mfsmetalogger.cfg即可,metalogger服务器只需要一个配置文件

vi mfsmetalogger.cfg

# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfsmetalogger
# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH = /var/lib/mfs

# BACK_LOGS = 50
# META_DOWNLOAD_FREQ = 24

# MASTER_RECONNECTION_DELAY = 5

#MASTER_HOST是master server的ip地址
 MASTER_HOST = 10.1.1.175
# MASTER_PORT = 9419

# MASTER_TIMEOUT = 60

# deprecated, to be removed in MooseFS 1.7
# LOCK_FILE = /var/run/mfs/mfsmetalogger.lock

        大部分参数和master server的参数一样,具体意思可参看master的配置,启动metalogger服务,在/usr/local/mfs/sbin目录下./mfsmetalogger start即可,关闭也是不要用kill ./mfsmetalogger  -s 即可。



chunkserver的安装

         在安装chunkserver时我们可以取消master的安装,方法如下:

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib  --disable-mfsmaster

make&&make install

在/etc/mfs目录下需要把mfschunkserver.cfg.dist  mfshdd.cfg.dist改成mfschunkserver.cfg  mfshdd.cfg即可。

mfschunkserver.cfg是主配置文件

vi mfschunkserver.cfg

# WORKING_USER = mfs
# WORKING_GROUP = mfs
# SYSLOG_IDENT = mfschunkserver
# LOCK_MEMORY = 0
# NICE_LEVEL = -19

# DATA_PATH = /var/lib/mfs

# MASTER_RECONNECTION_DELAY = 5

#本地地址,用来连接master的
 BIND_HOST = 10.1.1.173

#元数据服务器的ip地址和端口
 MASTER_HOST = 10.1.1.175
# MASTER_PORT = 9420

# MASTER_TIMEOUT = 60

#这个端口用于和其他chunkserver之间的连接,一般是复制数据
# CSSERV_LISTEN_HOST = *
# CSSERV_LISTEN_PORT = 9422
# CSSERV_TIMEOUT = 5

#分配给MFS磁盘空间的配置文件的位置
# HDD_CONF_FILENAME = /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

mfshdd.cfg是分配给MFS使用空间的配置文件

vi mfshdd.cfg
# mount points of HDD drives
#/mnt/hd1
#/mnt/hd2
#etc.
/mfs

      我们新建了一个分区直接挂载到/mfs下面,建议在chunkserver上单独划分空间给mfs使用,方便管理。启动之前确保mfs用户对/mfs可读写。

在/usr/local/mfs/sbin目录下./mfschunkserver start即可

客户端的安装:

        为了挂载基于MooseFS的分布式文件系统,需要FUSE的支持。

fuse简介

       用户空间文件系统(Filesystem in Userspace,简称FUSE)是操作系统中的概念,指完全在用户态实现的文件系统。目前Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs和lustre使用FUSE实现。Linux用于支持用户空间文件系统的内核模块名叫FUSE,FUSE一词有时特指Linux下的用户空间文件系统。文件系统是一个通用操作系统重要的组成部分。传统上操作系统在内核层面上对文件系统提供支持。而通常内核态的代码难以调试,生产率较低。Linux从2.6.14版本开始通过FUSE模块支持在用户空间实现文件系统。

       在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。上述ZFS和glusterfs都属于网络文件系统。但是,在用户态实现文件系统必然会引入额外的内核态/用户态切换带来的开销,对性能会产生一定影响。

        fuse内核模块和fuse lib库通过一个文件描述符通信,/dev/fuse 文件描述符可以被打开多次,获得的文件描述符被传递到mount系统调用,用来匹配已经挂载的文件系统。

安装fuse

tar zxvf fuse-2.8.5.tar.gz
cd fuse-2.8.5
./configure
make && make install

安装客户端

useradd -s /bin/nologin mfs
tar zxvf mfs-1.6.19.tar.gz
cd mfs-1.6.19
./configure --prefix=/usr/local/mfs --with-default-user=mfs \
--with-default-group=mfs --sysconfdir=/etc/mfs \
--localstatedir=/var/lib --disable-mfsmaster --enable-mfsmount \
--disable-mfschunkserver


make&&make install

进入/usr/local/mfs/bin目录下,./mfsmount --help 即可看到mfsmount的用法。

 MFS集群启动:

        1  启动master server

        2  启动chunk server

        3  启动metalogger

        4  启动客户端,使用mfsmount挂载相关目录

 MFS集群停止:

         1 所有客户端卸载MooseFS文件系统

         2 停止chunkserver

         3 停止metalogger

         4 停止master server













 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!