分布式系统三、MooseFS基础和安装
一、MooseFS简介1、介绍
MooseFS是一个具备冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器单独磁盘或分区上,确保一份数据有多个备份副本。对于访问的客户端或者用户来说,整个分布式网络文件系统集群看起来就像一个资源一样。
2、特性
从其对文件操作的情况看,MooseFS表现与其他类Unix文件系统一致。
支持的通用文件系统特性:
mfs是一个分层的目录树结构
存储支持POSIX标准的文件属性(权限,最后访问和修改时间)
支持特殊的文件,如:块设备,字符设备,管道和套接字,链接文件(符号链接和硬链接)
支持基于IP地址和密码的方式访问文件系统
独有特性:
[*]高可靠性
[*] 每一份数据可以设置多个副本(多份数据),并可以存储在不同的主机上
[*]高可扩展性
[*] 可以很轻松的通过增加主机磁盘容量或增加主机数量来动态扩展整个文件系统的存储量
[*]高可容错性
[*] 我们可以通过对mfs进行系统设置,实现当数据文件被删除后的一段时间内,依然存放于主机的回收站中,以备误删恢复数据
[*]高数据一致性
[*] 即便文件被写入/访问时,我们依然可以完成对文件的一致性快照
[*]
3、优缺点
优点:
1)由于MFS是基于GPL发布的,因此完全免费,并且开发和社区都很活跃,资料也非常丰富
2)轻量、易部署、易配置、易维护
3)通用文件系统,不需要修改上层应用就可以使用(那些需要专门 API 的DFS确实有点麻烦)
4)扩容成本低、支持在线扩容,不影响业务,体系架构可伸缩性极强(官方的case可以扩到70台了!)
5)体系架构高可用,所有组件无单点故障
6)文件对象高可用,可设置任意的文件冗余程度(提供比 Raid 10 更高的冗余级别)
7)提供系统负载,将数据读写分配到所有的服务器上,加速读写性能
8)提供诸多高级特性,比如类似Windows的回收站功能、类似JAVA语言的GC(垃圾回收、快照功能等)
9、MooseFS 是 Google Filesystem 的一个 c 实现
10、自带 Web Gui 的监控接口
11、提高随机读或写效率和海量小文件的读写效率(有待进一步证明)
4、应用场景
谈及MooseFS的应用场景,其实就是去谈分布式文件系统的应用场景。
1)大规模高并发的数据存储及访问(小文件、大文件),
2)大规模的数据处理,如日志分析
5、MFS的组件
Master:(元数据服务器)
负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝。
Metalogger:(元数据日志服务器)
负责备份Master服务器的changelog。文件类型为 changelog.*.mfs ,以便在Master出问题时接替其工作
Chunk:(数据存储服务器)
负责连接Master,听从Master调度,提供存储空间,并为客户端提供数据传输
Client:(客户端挂载)
通过FUSE内核接口挂载远程管理服务器(master)上所管理的数据存储服务器,使用起来和本地文件系统一样
MFS工作图解:
http://s5.运维网.com/wyfs02/M02/87/DF/wKiom1fjj-3TvkRWAAGpK6jZrys826.png
3、工作原理
MooseFS是一个文件系统,因此其最主要的工作就是文件的读写流程,即 MooseFS的主要的两大工作过程。
MFS的读文件流程:
http://s1.运维网.com/wyfs02/M00/87/E0/wKiom1fjkdLCb9JNAADtM7KFY3s470.png
图中 Master Server用三角形表示,Chunk Server用圆形表示,Client 用方形表示。
整个读过程有以下四个步骤:
1)首先client客户端访问主服务器master,获取文件实体的位置等相关信息
2)主服务器master查询缓存记录,把文件实体的位置等相关信息发给client客户端
3)Client客户端根据拿到的信息去访问对应的存储实体数据的服务器(data servers或者 chunk servers)
4)存储实体数据的服务器(data servers或者 chunk servers)把对应的数据返回给Client客户端
从上图,我们还可以看出,当多个MFS客户端读数据的时候,master服务器充当路由为这些客户端分发指路的作用,而数据的返回时由不同的数据服务器直接返回给请求的客户端,这样的模式可以极大的减轻主服务器的系统及网络瓶颈,增加了整个系统的吞吐,很像LVS的DR模式的负载均衡的分发和数据传输的情况。
MFS写文件流程:
http://s2.运维网.com/wyfs02/M02/87/E0/wKiom1fjkdPQkphaAACj0KwdubU103.png
整个写过程要分为下面八个步骤:
1)Client客户端访问主服务器master,请求写入数据
2)主服务器master查询缓存记录,如果是新文件,则会联系后面的数据服务器创建对应的chunk对象准备存放文件。
3)数据服务器返回创建对应的chunk对象成功给主服务器
4)主服务器master把文件实体的位置等相关信息发给client客户端。
5)Client客户端访问对应的数据服务器写数据
6)数据服务器之间进行数据同步,互相确认成功
7)数据服务器返回成功写入信息给Client客户端
8)Client客户端回报给主服务器master写入结束
二、MFS安装配置
官网:https://moosefs.com
1、环境
CentOS6.5 x86_64; 各节点时间同步,
node2192.168.10.2master
node3192.168.10.3metalogger chunk
node4192.168.10.4chunk
node1192.168.10.1client
2、配置yum源
# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6
RPM-GPG-KEY-CentOS-Debug-6RPM-GPG-KEY-CentOS-Testing-6
# curl "http://ppa.moosefs.com/RPM-GPG-KEY-MooseFS" > /etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
% Total % Received % XferdAverage Speed Time Time TimeCurrent
DloadUpload Total Spent LeftSpeed
10517961051796 0 0 1190 00:00:010:00:01 --:--:--1208
# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-CentOS-6 RPM-GPG-KEY-CentOS-Security-6RPM-GPG-KEY-MooseFS
RPM-GPG-KEY-CentOS-Debug-6RPM-GPG-KEY-CentOS-Testing-6
# curl "http://ppa.moosefs.com/MooseFS-2-el6.repo" > /etc/yum.repos.d/MooseFS.repo
% Total % Received % XferdAverage Speed Time Time TimeCurrent
DloadUpload Total Spent LeftSpeed
169 169169 169 0 0 226 0 --:--:-- --:--:-- --:--:-- 235
# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repoCentOS-Vault.repoMooseFS.repo
CentOS-Base.repo.bakCentOS-Media.repo epel-6.repo Zabbix.repo
# cat /etc/yum.repos.d/MooseFS.repo
name=MooseFS $releasever - $basearch
baseurl=http://ppa.moosefs.com/moosefs-2/yum/el6
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-MooseFS
enabled=1
# yum list|grep -i moosefs
moosefs-cgi.i686 2.0.89-1.rhsysv MooseFS
moosefs-cgi.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-cgiserv.i686 2.0.89-1.rhsysv MooseFS
moosefs-cgiserv.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-chunkserver.i686 2.0.89-1.rhsysv MooseFS
moosefs-chunkserver.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-cli.i686 2.0.89-1.rhsysv MooseFS
moosefs-cli.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-client.i686 2.0.89-1.rhsysv MooseFS
moosefs-client.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-master.i686 2.0.89-1.rhsysv MooseFS
moosefs-master.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-metalogger.i686 2.0.89-1.rhsysv MooseFS
moosefs-metalogger.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-netdump.i686 2.0.89-1.rhsysv MooseFS
moosefs-netdump.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-cgi.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-cgi.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-cgiserv.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-cgiserv.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-chunkserver.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-chunkserver.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-cli.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-cli.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-client.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-client.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-master.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-master.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-metalogger.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-metalogger.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-netdump.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-netdump.x86_64 2.0.89-1.rhsysv MooseFS
moosefs-pro-supervisor.i686 2.0.89-1.rhsysv MooseFS
moosefs-pro-supervisor.x86_64 2.0.89-1.rhsysv MooseFS 3、node2上安装master server,CGI ,CLI
# yum install moosefs-cgi #master服务
# rpm -ql moosefs-master
/etc/mfs/mfsexports.cfg.dist #mfs被挂接目录及其权限控制配置文件,
/etc/mfs/mfsmaster.cfg.dist #主配置文件,
/etc/mfs/mfstopology.cfg.dist #定义MFS网络拓扑结构的配置文件
/etc/rc.d/init.d/moosefs-master
/usr/sbin/mfsmaster
/usr/sbin/mfsmetadump
/usr/sbin/mfsmetarestore
/usr/share/doc/moosefs-master-2.0.89
/usr/share/doc/moosefs-master-2.0.89/NEWS
/usr/share/doc/moosefs-master-2.0.89/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
/var/lib/mfs
/var/lib/mfs/metadata.mfs.empty
# cd /etc/mfs/
# ls
mfsexports.cfg mfsmaster.cfg mfstopology.cfg
mfsexports.cfg.distmfsmaster.cfg.distmfstopology.cfg.dist
# yum install moosefs-cgiserv moosefs-cgi(被moosefs-cgiserv所依赖)
#CGI监视接口 被用户用来查看和分析当前MooseFS状态的web-gui
# rpm -ql moosefs-cgiserv
/etc/rc.d/init.d/moosefs-cgiserv
/usr/sbin/mfscgiserv
/usr/share/doc/moosefs-cgiserv-2.0.89
/usr/share/doc/moosefs-cgiserv-2.0.89/NEWS
/usr/share/doc/moosefs-cgiserv-2.0.89/README
/usr/share/man/man8/mfscgiserv.8.gz
/var/lib/mfs
# yum install moosefs-cli #MooseFS命令行接口工具允许你查看MooseFS状态信息
# rpm -ql moosefs-cli
/usr/bin/mfscli
/usr/share/doc/moosefs-cli-2.0.89
/usr/share/doc/moosefs-cli-2.0.89/NEWS
/usr/share/doc/moosefs-cli-2.0.89/README
/usr/share/man/man1/mfscli.1.gz 主配置文件/etc/mfs/mfsmaster.cfg详解:
注意:此配置文件是网上找编译安装后生成的,内容不完全一样,注意分辨
# vi /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)
该配置文件默认全部都为注释。mfs官方默认这样规定的,每一个注释的配置都是mfs此项配置的默认值。其实,我们linux中很多配置文件的设计风格都是这样子的,比如sshd_config.如果打算更改这些配置文件中某些项的参数,只需要取消注释,并且更改对应的参数即可。
针对master来讲,mfsmaster.cfg的默认配置无需更改即可投入使用。
配置文件/etc/mfs/mfsexports.cfg:
该配置文件制定了哪些客户端可以远程挂接MFS文件系统,以及授予挂载客户端什么样的访问权限。与NFS相似,NFS要共享一个目录时,我们会使用vim /etc/exports命令,
编写共享给谁,所要共享的目录,共享出去的属性这些内容,而mfsexports.cfg的作用与其类似其书写格式如下:
clientDirectoryProperty
* / rw,alldirs,maproot=0
client支持格式:ip、ip/netmask、ip/位数掩码、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 我们配置只有192.168.10.0/24网段的主机可以读写模式访问MFS的整个共享结构资源(/)。在配置文件mfsexports.cfg中写入如下信息即可。
192.168.10.0/24 / rw,alldirs,maproot=0:0 启动moosefs-master:
在 MooseFS 的架构中,Master Server 是不依附于其它几个组件的,它可以单独启动。但是需要注意,其它组件必须要等 Master Server 起来之后才能启动!切记!!!
在通过上面的简单配置之后,我们就可以启动 Master Server 了!
# service moosefs-master start
正在启动 mfsmaster: [确定]
# ss -ntlp|grep mfs
LISTEN 0 100 *:9419 *:* users:(("mfsmaster",6042,8))
LISTEN 0 100 *:9420 *:* users:(("mfsmaster",6042,9))
LISTEN 0 100 *:9421 *:* users:(("mfsmaster",6042,10))
LISTEN 0 50 *:9425 *:* users:(("mfscgiserv",4520,3)) mfsmaster开启三个端口:客户端连接9421端口,监听9422端口;数据节点9420端口
4、node3上安装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:
root@Node3 ~]# cd /etc/mfs
# ls
mfsmetalogger.cfgmfsmetalogger.cfg.dist
# vi 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 = mfsmaster
MASTER_HOST = 192.168.10.2启动metalogger server:
启动 Metalogger Server 之前,一定要确保 Master server 的服务是正常启动的。
# service moosefs-metalogger start
Starting mfsmetalogger:
# ps aux|grep mfs
mfs 128960.20.2176281116 ? S< 11:00 0:00 mfsmetalogger start
root 129800.00.1 103244 856 pts/1 S+ 11:04 0:00 grep mfs 我们可以看到它下载一些文件,这些文件就是之前介绍过的Master Server上的文件,我们可以在以下目录看到这些文件。
# ls /var/lib/mfs
changelog_ml_back.0.mfschangelog_ml_back.1.mfsmetadata_ml.mfs.back 5、node4上安装chunk server
数据存储服务器也被称为 Chunk Server。在 MooseFS 文件系统中,每个 Chunk Server 的配置是完全相同的。因此,这里我们仅以一台 Chunk Server 的安装为例进行演示,
# yum install moosefs-chunkserver^C
# 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 是主配置文件,而 mfshdd.cfg 是服务器用来分配给 MFS 使用的空间的配置文件,最好是一个单独的磁盘或者一个raid卷,最低要求是一个分区。
在每个mfs chunk server 上的配置及操作如下:
# vi 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进行管理。当然,虽然这里填写的是共享的目录,但是这个目录后面最好是一个单独的分区。分区的相关操作,这里就不占篇幅了。
# ls /mogstore/
dev2lost+found
# vi mfshdd.cfg #这里就使用上次mogilefs博文中创建的分区/mogstore
/mogstore
# chown mfs. -R /mogstore/
启动 Chunk Server:
和 Metalogger Server 一样,在启动 chunk servers之前,必须要先确保 Master Server 的服务是正常启动的,否则启动会报错。
# service moosefs-chunkserver restart
Stopping mfschunkserver:
Starting mfschunkserver:
# ls /mogstore/
00102030405060708090A0B0C0D0 DFEFFF
01112131415161718191A1B1C1D1 E0F0lost+found
02122232425262728292A2B2C2D2 E1F1
03132333435363738393A3B3C3D3 E2F2
04142434445464748494A4B4C4D4 E3F3
05152535455565758595A5B5C5D5 E4F4
06162636465666768696A6B6C6D6 E5F5
07172737475767778797A7B7C7D7 E6F6
08182838485868788898A8B8C8D8 E7F7
09192939495969798999A9B9C9D9 E8F8
0A1A2A3A4A5A6A7A8A9AAABACADA E9F9
0B1B2B3B4B5B6B7B8B9BABBBCBDB EAFA
0C1C2C3C4C5C6C7C8C9CACBCCCDC EBFB
0D1D2D3D4D5D6D7D8D9DADBDCDDD ECFC
0E1E2E3E4E5E6E7E8E9EAEBECEDE EDFD
0F1F2F3F4F5F6F7F8F9FAFBFCFdev2EEFE6、node1安装client
# 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文件系统:
如果我们之前设置了密码,这里会提示我们需要输入密码
root@Node1 ~]# mfsmount /mnt -H 192.168.10.2 # 使用 -p 后面,下面会提示输入密码
mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root
# df -TH
Filesystem Type SizeUsed Avail Use% Mounted on
/dev/sda2 ext4 20G2.4G 16G14% /
tmpfs tmpfs 981M 0981M 0% /dev/shm
/dev/sda1 ext4 508M 34M448M 7% /boot
192.168.10.2:9421 fuse.mfs 21G856M 20G 5% /mnt 特别需要注意的是,所有的MFS 都是挂接同一个元数据服务器master 的IP,而不是其他数据存储服务器chunkserver 的IP
挂载本地后写入文件测试:
root@Node1 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 192.168.10.2 ' >> /etc/rc.local
页:
[1]