moosefs java_MooseFS(MFS)安装手记(一)

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文件系统使用一样的效果.

一般架构如下:

298497cbcbb55861aca9feb8d177b255.png

MFS的读数据过程:

ae512e6544cb32ca395d7607472ed841.png

MFS的写数据过程:

f4159480c75aa78f4a79fab53916f9dc.png

实验环境如下:

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目录:

2f8c88fe96e3bf5d0ee5a8e969fa1018.png

启动之后查看master进程:

cced5cdf9962225645e0ace9ef283af1.png

注意:在关闭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 即可。

3c6743aabd68334a52bd76698a574eef.png

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即可

5e3205374b9623d034284a75671a57a7.png

6d1bf5071de2e35b55ac30a739255018.png

客户端的安装:

为了挂载基于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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值