【推荐】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
来源:oschina
链接:https://my.oschina.net/u/123777/blog/40604