一、MooseFS是什么前端
一个类MooseFS是一个具有冗余容错功能的分布式网络文件系统,它将数据分别存放在多个物理服务器或单独磁盘或分区上,确保一份数据有多个备份副本,然而对于访问MFS的客户端或者用户来讲,整个分布式网络文件系统集群看起来就像一个资源同样,从其对文件系统的状况看MooseFS就至关于UNIX的文件系统(ext三、ext四、nfs):mysql
a.mfs是一个分层的目录树结构linux
b.存储支持POSIX标准的文件属性(权限,最后访问和修改时间)web
c.支持特殊的文件。如:块设备,字符设备,管道、套接字、连接文件(符合连接、硬连接)算法
二、MooseFS的特性sql
a.高可靠性,每一份数据能够设置多个备份(多分数据),并能够存储在不一样的主机上mongodb
b.高可扩展性,能够很轻松的经过增长主机的磁盘容量或增长主机数量来动态扩展整个文件系统的存储量centos
c.高可容错性,咱们能够经过对mfs进行系统设置,实现当数据文件被删除后的一段时间内,依旧存放于主机的回收站中,以备误删除恢复数据浏览器
d.高数据一致性,即便文件被写入、访问时,咱们依然能够轻松完成对文件的一致性快照安全
三、MooseFS的优势
a.轻量、易配置、易维护
b.易于扩展,支持在线扩容。不影响业务
c.开发活跃,社区也活跃,资料丰富
d.以文件系统方式展现:如存图片,虽然存储在chunkserver上的数据是二进制文件,可是在挂载mfs的client端仍旧以图片文件形式展现,便于数据备份
e.硬盘利用率高。测试须要较大磁盘空间
f.可设置删除的空间回收时间,避免误删除文件丢失就恢复不及时影响业务
g.系统负载,即数据读写分配到全部的服务器上
h.可设置文件备份的副本数量,通常建议3份,将来硬盘容量也要是存储单份的容量的三倍
四、MooseFS的缺点
a.master目前是单点(虽然会把数据信息同步到备份服务器,可是恢复须要时间,所以,会影响上线,针对这个问题,能够经过drbd+heartbeat方案或者drbd+inotify方案解决),master和backup之间的同步,相似mysql的主从不一样。可是如今master的单点已经修复了
b.master服务器对主机的内存要求略高
c.默认metalogger复制元数据时间较长(可调整)
五、MooseFS系统应用场所
1.大规模高并发的线上数据存储及访问(小文件,大文件都适合)
2.大规模的数据处理,如日志分析,小文件强调性能不用HDFS。
有大多的应用不适合分布式文件系统,不建议你们为了使用而使用。
尽可能在前端加cache应用,而不是一味的 扩充文件系统
六、MooseFS结构及原理
MFS组件
管理服务器managing server简称(master):
这个组件的角色是管理整个mfs文件系统的主服务器,除了分发用户请求外,还用来存储整个文件系统中每一个数据文件的metadata信息,metadate(元数据)信息包括文件(也能够是目录,socket,管道,块设备等)的大小,属性,文件的位置路径等,很相似lvs负载均衡的主服务器,不一样的是lvs仅仅根据算法分发请求,而master根据内存里的metadata信息来分发请求,内存的信息会被实时写入到磁盘,这个master只能由一台处于激活的状态
云数据备份服务器Metadata backup servers(简称metalogger或backup):
这个组件的做用是备份管理服务器master的变化的metadata信息日志文件,文件类型为changelog_ml.*.mfs。以便于在管理服务器出问题时,能够通过简单的操做便可让新的主服务器进行工做。这相似mysql主从同步,只不过它不像mysql从库那样在本地应用数据,而只是接受主服务器上文写入时记录的文件相关的metadata信息,这个backup,能够有一台或多台,它很相似lvs从负载均衡服务器
数据存储服务器组data servers(chunk servers)简称data:
这个组件就是真正存放数据文件实体的服务器了,这个角色能够有多台不一样的物理服务器或不一样的磁盘及分区来充当,当配置数据的副本多于一份时,据写入到一个数据服务器后,会根据算法在其余数据服务器上进行同步备份。这有点相似lvs集群的RS节点
客户机服务器组(client servers)简称client:
这个组件就是挂载并使用mfs文件系统的客户端,当读写文件时,客户端首先会链接主管理服务器获取数据的metadata信息,而后根据获得的metadata信息,访问数据服务器读取或写入文件实体,mfs客户端经过fuse mechanism实现挂载mfs文件系统的,所以,只有系统支持fuse,就能够做为客户端访问mfs整个文件系统,所谓的客户端并非网站的用户,而是前端访问文件系统的应用服务器,如web
========================================
管理服务器——MASTER SERVER
元数据日志服务器——Metalogger
数据存储服务器——CHUNK SERVER
客户端——CLIENT
4种角色做用以下:
管理服务器:有时也称为元数据服务器,负责管理各个数据存储服务器,调度文件读写,回收文件空间以及恢复多节点拷贝。
元数据日志服务器:负责备份管理服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在管理服务器出问题时接替其进行工做。元数据日志服务器是mfsl.6之后版本新增的服务,能够把元数据日志保留在管理服务器中,也能够单独存储在一台服务器中。为保证数据的安全性和可靠性,建议单独用一台服务器来存放元 数据日志。须要注意的是,元数据日志守护进程跟管理服务器在同一个服务器上,备份元数据日志服务器做为它的客户端,从管理服务器取得日志文件进行备份。
数据存储服务器是真正存储用户数据的服务器。在存储文件时,首先把文件分红块,而后将这些块在数据存储服务器之间互相复制。同时,数据存储服务器还负责链接管理服务器,遵从管理服务器调度,并为客户提供数据传输。数据存储服务器能够有多个,而且数量越多,可靠性越高,MFS可用的磁盘空间也越大。
客户端经过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,使共享的文件系统和使用本地Linux文件系统的效果看起来是同样的。
========================================
七、MooseFS版本选择
a、高稳定性要求
根据前面mfs的原理流程,咱们知道管理服务器(master)是MooseFS的最主要的角色,并且是单点,所以master服务器的配置应该尽量的稳定,例如:
双电源分别接A、B两路电,机柜的的,尽可能不要放在一个机柜上。
多块磁盘使用raid1或raid10,进行冗余,也可选择raid5
b、资源性要求
====================================
MooseFS ,master设备配置建议
内存
对于master服务器来讲,资源型要求就是内存大小,为了整个系统访问更快,mfs会把因此访问的元数据metadada信息放在内存中提供用户访问,所以,当文件数量增长时,内存使用量就会增长,根据官方说法,处理一百万个文件chunkserver,大概须要300M的内存空间
据此,推算若是将来要出来1个亿的文件chunkserver,大概须要30G内存空间
硬盘:
硬盘驱动器所需的大小,取决于所用的文件和数据块的数目(主元数据文件)上的文件(源数据更改日志)做出的操做上的数量,例如20G的空间,用于存储信息2500万的文件变动记录保存长达50小时
====================================
MooseFS backup设备配置建议
MooseFS Metalogger只是收集MooseFS主服务器的源数据(文件更改的信息的变化)备份,所以对硬件的要求不该该高于主服务器的配置,从硬盘上须要大约和主服务器相同的磁盘空间。
若是肯定在主服务器失败后,要启动Metalogger顶替主服务器的话,那么Metalogger服务器至少应该有相同数量的内存和硬盘做为主要主服务器。在生产中咱们能够用其余的,如drbd或inotify的同步工具来替代器内部log同步
====================================
MooseFS dataserver 设备配置建议
MooseFS dataserver是存储数据的真正载体,所以,硬盘的性能较为关键,对于普通的业务,能够选择多块raid5,也能够选择raid10或raid0,建议因此的dataserver的硬盘大小一致比较好,虽然dataserver能够和其余业务公用同一台server,但不建议这样混搭
====================================
虚拟环境搭建准备重点
内存能够给256M。若是能够建议给512
能够增大磁盘分区设备,也能够不增长,咱们每一个服务器增长一个单独的2G大小的虚拟磁盘,用于数据存储,其中,主服务器和备份服务器虚拟磁盘用于drbd及inotify数据同步
mfs数据服务器的存储地点,能够是单独的服务器、磁盘、分区、目录。至少建议以分区为单位
操做系统的硬盘空间10G,单独磁盘2G,数据存储
##################################################################
操做系统:centos6.5 支持fuse
两块硬盘 10G + 2G
mfs master eth0 10.0.0.3 mfs主服务器
mfs backup eth0 10.0.0.4 mfs备份服务器
data server01 eth0 10.0.0.5mfs数据存放服务器
data server01 eth0 10.0.0.6mfs数据存放服务器
data server01 eth0 10.0.0.7mfs数据存放服务器
mfs clienteth010.0.0.8mfs客户端服务器
mfs vip eth0:0 10.0.0.100VIP初始化绑定在mfs主服务器上面
资源不够,能够把master 和data一、backup和data2.client和data3.绑定在一块儿
##################################################################
环境准备:
grep keepcache /etc/yum.conf sed -i 's/keepcache=0/keepcache=1/g' /etc/yum.conf 、grep keepcache /etc/yum.conf #关闭selinux: setenforce 0 #临时生效 sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #永久生效 ##关闭防火墙 /etc/init.d/iptables stop chkconfig iptables off chkconfig --list iptables #时间同步 /usr/sbin/ntpdate pool.ntp.org echo '#time sync by lvnian at 2010-2-1'>>/var/spool/cron/root echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root crontab -l #设置hosts文件 cp /etc/hosts /etc/hosts.bak sed -i '$a 10.0.0.3 MASTER' /etc/hosts sed -i '$a 10.0.0.4 BCAKUP' /etc/hosts sed -i '$a 10.0.0.5 DATA1' /etc/hosts sed -i '$a 10.0.0.6 DATA2' /etc/hosts sed -i '$a 10.0.0.7 DATA3' /etc/hosts sed -i '$a 10.0.0.8 CLIENT' /etc/hosts sed -i '$a 10.0.0.100 mfsmaster.etiantian.org' /etc/hosts cat /etc/hosts #修改主机名(根据不一样的服务器,修改不一样的主机名) hostname MASTER cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=MASTER' /etc/sysconfig/network logout ######################################################## hostname BCAKUP cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=BCAKUP' /etc/sysconfig/network logout ######################################################## hostname DATA1 cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=DATA1' /etc/sysconfig/network logout ######################################################## hostname DATA2 cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=DATA2' /etc/sysconfig/network logout ######################################################## hostname DATA3 cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=DATA3' /etc/sysconfig/network logout ######################################################## hostname CLIENT cp /etc/sysconfig/network /etc/sysconfig/network.bak sed -i -e '/HOSTNAME=/d' -e '1aHOSTNAME=CLIENT' /etc/sysconfig/network logout ######################################################## ##VIP的配置 #在工做中,能够用keepalived或者heartbeat启用vip。在这里。我先用ifconfig在master服务器中配置。 ifconfig eth0:100 10.0.0.100/24 up ifconfig eth0:100 ------------------------------------------------ [root@MASTER ~]# ifconfig eth0:100 10.0.0.100/24 up [root@MASTER ~]# ifconfig eth0:100
------------------------------------------------
到这来部署前的准备工做才算完成
###开始部署
一、安装主服务器mfs master
当咱们安装主服务器mfs master时,因为咱们的目的是安装主服务器,所以在配置的过程当中(./configure),能够选择加参数取消安装chunk server(使用--disable-mfschunkserver)以及mfs 客户端(使用--disable-mfsmount)的参数,固然了,咱们也能够不加相关的disable参数,安装了不去启动也能够的。为了统一因此服务器的安装步骤,减低安装的复杂性,咱们统一了一套安装步骤,适合master backup data服务器,但不适合client服务器。安装主控服务器master的具体步骤以下:
mkdir -p /home/lvnian/tools && cd /home/lvnian/tools groupadd mfs useradd -g mfs mfs -s /sbin/nologin rz -y yum install zlib-devel -y #yum install fuse* #若是不做为mfs的客户端,能够不用这个参数,只是mfs客户端须要fuse模块,其余的都不须要 tar xf mfs-1.6.27-1.tar.gz cd mfs-1.6.27 ./configure --prefix=/application/mfs-1.6.27 --with-default-user=mfs \ --with-default-group=mfs make && make install ln -s /application/mfs-1.6.27 /application/mfs ll /application/
====================================================
安装成功最后的页面: make[2]: Leaving directory `/home/lvnian/tools/mfs-1.6.27' make[1]: Leaving directory `/home/lvnian/tools/mfs-1.6.27' [root@MASTER mfs-1.6.27]# ln -s /application/mfs-1.6.27 /application/mfs [root@MASTER mfs-1.6.27]# ll /application/ total 4 lrwxrwxrwx. 1 root root 23 Nov 11 10:13 mfs -> /application/mfs-1.6.27 drwxr-xr-x. 6 root root 4096 Nov 11 10:12 mfs-1.6.27==================================================== configure出现下面问题: checking for FUSE... no ******************************** mfsmount disabled ******************************** * fuse library is too old or not installed - mfsmount needs version 2.6 or higher * *********************************************************************************** checking for fuse_version in -lfuse... no checking for zlibVersion in -lz... no configure: error: zlib development library not found [root@MASTER mfs-1.6.27]# 问题解决: yum install zlib-devel -y
编译参数说明:
选项 做用 --disable-mfsmaster 不建立成管理服务器(用于纯节点的安装) --disable-mfschunkserver不建立成数据存储服务器 --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=GROUP运行守护进程的用户组,若是配置文件中没有设定用户组,默认为nobody的用户组
mfs目录结构说明:
etc ##这是mfs的配置文件目录
sbin ##这是mfs的命令路径,若是你还有bin目录,证实你激活了mfs 客户端的功能。
share ##mfs的帮助文件目录
var ##mfs数据及日志目录,如:metadata的数据
提示: etc和var须要备份
##############################################################################
配置主服务器mfs master
主服务器mfs master的配置文件位于安装目录/application/mfs下的etc目录。全部的模板文件都是以dist为扩展名结尾,若是咱们须要使用则把.dist取得便可。
###启用master的两个配置文件
和master相关的配置文件有俩。分别是mfsexports.cfg和mfsmaster.cfg。故启用
cd /application/mfs/etc/mfs
cp mfsexports.cfg.dist mfsexports.cfg
cp mfsmaster.cfg.dist mfsmaster.cfg
###主配置文件 mfsmaster 暂时不须要改
###配置 mfsexports
cat >mfsexports.cfg<<EOF
#Allow "meta".
* .rw
# Allow everything but "meta".
10.0.0.0/24 / rw,alldirs,mapall=mfs:mfs,password=111111
EOF
cat mfsexports.cfg
上面配置文件的说明
配置文件mfsexpors.cfg指定哪些客户端主机能够远程挂载MFS文件系统,以及授予挂载客户端什么访问权限。例如,咱们指定只有10.0.0.X网段的主句能够读写模式访问mfs的整个共享结构资源(/)。在配置文件mfsexpors.cfg文件的第一行,先取消注销而后把星号改成10.0.0.0/24
10.0.0.0/24 / rw,alldirs,mapall=mfs:mfs,password=111111
第一部分:mfs客户端IP地址或地址范围
地址能够指定的集中表现形式
# * = 因此IP地址 (same as 0.0.0.0/0)
# A.B.C.D = given ip address 具体的单个IP地址
# A.B.C.D-E.F.G.H = range of ip addresses IP地址范围
# A.B.C.D/BITS = A.B.C.D network with BITS ones in netmask 网络地址/多少位掩码
# A.B.C.D/E.F.G.H = A.B.C.D network with E.F.G.H netmask 网络地址/子网掩码
第二部分:被挂载的目录
目录部分须要注意两点
/ 表示MFS的根
.表示MFSmeta 文件系统
第三部分:这种mfs客户端能够拥有的访问权限
权限部分
ro ##只读方式共享
rw ##读写的方式共享
alldirs #容许挂载任何指定的子目录
maproot #映射为root,仍是指定的用户(相似nfs的匿名用户)
password #指定客户端密码
master启动
cd /application/mfs/var/mfs cp metadata.mfs.empty metadata.mfs /application/mfs/sbin/mfsmaster start netstat -lntup |grep mfs ============================================== ### 启动报错解决 [root@MASTER mfs]# /application/mfs/sbin/mfsmaster start working directory: /application/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 (/application/mfs-1.6.27/etc/mfstopology.cfg) not found - using defaults 《=====报错 loading metadata ... can't open metadata file if this is new instalation then rename /application/mfs-1.6.27/var/mfs/metadata.mfs.empty as /application/mfs-1.6.27/var/mfs/metadata.mfs 《=====报错 init: file system manager failed !!! error occured during initialization - exiting [root@MASTER mfs]# #######启动报错解决,修改源数据文件为metadata.mfs ,启动以后这个metadata.mfs 会变成metadata.mfs.back cd /application/mfs/var/mfs cp metadata.mfs.empty metadata.mfs ============================================== [root@MASTER mfs]# cp metadata.mfs.empty metadata.mfs [root@MASTER mfs]# pwd /application/mfs/var/mfs [root@MASTER mfs]# ls metadata.mfs metadata.mfs.empty sessions.mfs [root@MASTER mfs]# /application/mfs/sbin/mfsmaster start working directory: /application/mfs-1.6.27/var/mfs lockfile created and locked initializing mfsmaster modules ... loading sessions ... ok sessions file has been loaded exports file has been loaded mfstopology configuration file (/application/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 [root@MASTER mfs]# [root@MASTER mfs]# ll total 12 -rw-r----- 1 mfs mfs 95 Sep 9 12:56 metadata.mfs.back -rw-r--r-- 1 root root 8 Sep 9 11:53 metadata.mfs.empty -rw-r----- 1 mfs mfs 10 Sep 9 12:52 sessions.mfs [root@MASTER mfs]# [root@MASTER mfs]# netstat -lntup|grep mfs tcp 0 0 0.0.0.0:9419 0.0.0.0:* LISTEN 10905/mfsmaster tcp 0 0 0.0.0.0:9420 0.0.0.0:* LISTEN 10905/mfsmaster tcp 0 0 0.0.0.0:9421 0.0.0.0:* LISTEN 10905/mfsmaster [root@MASTER mfs]# ###若是还报错,注意权限问题 chown -R mfs.mfs /application/mfs/var/mfs
###master关闭
/application/mfs/sbin/mfsmaster stop
/application/mfs/sbin/mfsmaster –s
#安全定制master server是很是必要的,必定不要用kill -9 mongodb 。
可使用 mfsmaster -s 或者 mfsmaster stop来安全中止master进程,固然一旦是用来kill 也有解决的办法,那就是经过mfsmaster修复
###配置主服务器的图像监控
主服务器mfs master的图像监控mfscgiserv,这是一个用Python编写的一个web服务器,它的监控端口是9425.
能够用:/application/mfs/sbin/mfscgiserv start 启动。启动后咱们就能够用浏览器就即刻能够比肩全面的监控master、backup及全部客户端挂载的情况信息及相关操做等
#不须要配置,直接启动
/application/mfs/sbin/mfscgiserv start
lsof -i :9425
#在web打开下面网站
http://10.0.0.3:9425/mfs.cgi
下面是master的端口图解
master《=====》backup:9419 也就是master和backup之间通讯用9419端口通讯 master《=====》chunk:9420 也就是master和data之间通讯用9420端口 master sever module:listen on:9421 也就是提供服务给client的端口 master web port:9425也就是master的web管理端口
###backup元数据日志服务器部署
MFS主服务器的备份服务器,也称为backup server或者元数据日志服务器(Metalogger server)。这里我统一称为 backup server,即备份服务器。
用来安装backup server的服务器,性能不该该低于master,一旦主服务器master宕机,咱们只要导入备份信息changelogs到元数据文件,备份服务器可直接替换故障的master继续提供服务
安装backup server和master安装都同样,只是使用的配置文件不同。用不同的配置文件区分不一样的服务器
###启用mfsmetalogger的配置文件
===============================================
cd /application/mfs/etc/mfs
cp mfsmetalogger.cfg.dist mfsmetalogger.cfg
===============================================
####修改mster_host 对于的主机名,若是准备用域名,能够改用域名,也能够是IP。对着的一个位置
sed -i 's/# MASTER_HOST = mfsmaster/MASTER_HOST = mfsmaster.etiantian.org/g' /application/mfs/etc/mfs/mfsmetalogger.cfg
#主要这个mfsmaster.etiantian.org和对于的IP要写到/etc/hosts里面,
===============================================
##启动mfsmetalogger
/application/mfs/sbin/mfsmetalogger start
ps -ef|grep mfs
netstat -an|grep -i 9419
##这个端口是master的端口,backup须要和master保持这个长连接
===============================================
若是 netstat -an|grep -i 9419 没有,注意防火墙问题
##日志文件路径
[root@BCAKUP mfs]# ll /application/mfs/var/mfs
total 12
-rw-r-----. 1 mfs mfs 0 Nov 11 11:59 changelog_ml_back.0.mfs
-rw-r-----. 1 mfs mfs 0 Nov 11 11:59 changelog_ml_back.1.mfs
-rw-r--r--. 1 root root 8 Nov 11 10:24 metadata.mfs.empty
-rw-r-----. 1 mfs mfs 255 Nov 11 11:59 metadata_ml.mfs.back
-rw-r-----. 1 mfs mfs 10 Nov 11 12:01 sessions_ml.mfs
到时候若是须要恢复数据的时候,咱们须要用到的是metadat* 和changelog*这两种文件
===============================================
###/mfsmetalogger关闭
/application/mfs/sbin/mfsmetalogger stop
/application/mfs/sbin/mfsmetalogger -s
===============================================
#安全定制master server是很是必要的,必定不要用kill -9 mongodb 。可使用 mfsmaster -s
或者 mfsmaster stop来安全中止master进程,固然一旦是用来kill 也有解决的办法,那就是经过mfsmaster修复
### 数据存储服务器data servers (chunkservers)
负责链接管理服务器,遵从管理服务器调度,提供存储空间,并为客户提供数据传输.
三台data服务器都要才用双磁盘,也就是多加一个2G的磁盘
###三个服务器都要多挂载一个磁盘
挂载/dev/sdb1
mkdir -p /mfsdata
mount /dev/sdb1 /mfsdata
mkfs -t ext4 /dev/sdb1
mount /dev/sdb1 /mfsdata
df
###先卸载/mfsdata,再用mount -a 自动挂载,若是成功就好了
===============================================
###修改mfschunkserver.cfg配置文件
cd /application/mfs/etc/mfs/
cp mfschunkserver.cfg.dist mfschunkserver.cfg
cat mfschunkserver.cfg
cp mfshdd.cfg.dist mfshdd.cfg
cat mfshdd.cfg
===============================================
sed -i 's/# MASTER_HOST = mfsmaster/MASTER_HOST = mfsmaster.etiantian.org/g' /application/mfs/etc/mfs/mfschunkserver.cfg
echo "/mfsdata" >>/application/mfs/etc/mfs/mfshdd.cfg
MASTER_HOST = mfsmaster.etiantian.org ##若是让它仍是解析到10.0.0.3,而不是vip,能够不改
/mfsdata ##本地分区的挂载点。真正存放数据的地方,若是有多个,能够写多行
===============================================
#受权/mfsdata
chown -R mfs.mfs /mfsdata
##启动/mfschunkserver
/application/mfs/sbin/mfschunkserver start
ps -ef|grep mfs
netstat -lnt |grep 94
netstat -an|grep -i est
===============================================
##启动以后,看/mfsdata目录的内容
[root@DATA1 ~]# ls /mfsdata/
00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87 90 99 A2 AB B4 BD C6 CF D8 E1 EA F3 FC
01 0A 13 1C 25 2E 37 40 49 52 5B 64 6D 76 7F 88 91 9A A3 AC B5 BE C7 D0 D9 E2 EB F4 FD
02 0B 14 1D 26 2F 38 41 4A 53 5C 65 6E 77 80 89 92 9B A4 AD B6 BF C8 D1 DA E3 EC F5 FE
03 0C 15 1E 27 30 39 42 4B 54 5D 66 6F 78 81 8A 93 9C A5 AE B7 C0 C9 D2 DB E4 ED F6 FF
04 0D 16 1F 28 31 3A 43 4C 55 5E 67 70 79 82 8B 94 9D A6 AF B8 C1 CA D3 DC E5 EE F7 lost+found
05 0E 17 20 29 32 3B 44 4D 56 5F 68 71 7A 83 8C 95 9E A7 B0 B9 C2 CB D4 DD E6 EF F8
06 0F 18 21 2A 33 3C 45 4E 57 60 69 72 7B 84 8D 96 9F A8 B1 BA C3 CC D5 DE E7 F0 F9
07 10 19 22 2B 34 3D 46 4F 58 61 6A 73 7C 85 8E 97 A0 A9 B2 BB C4 CD D6 DF E8 F1 FA
08 11 1A 23 2C 35 3E 47 50 59 62 6B 74 7D 86 8F 98 A1 AA B3 BC C5 CE D7 E0 E9 F2 FB
===============================================
####/mfsmetalogger关闭
/application/mfs/sbin/mfschunkserver stop
/application/mfs/sbin/mfschunkserver –s
##打开下面网页
http://10.0.0.3:9425/mfs.cgi?sections=CS
[root@DATA2 mfsdata]# df -h
为何df -h的大小和master管理界面的大小有区别:274-19=155M
由于master向data服务器申请空间是按照最小256M申请的,低于256M就不申请空间了
#################################################################################
配置client server
因为MFS文件系统客户端的挂载依赖于fuse工具,因此要先安装工具。若是所在的系统已经安装了fuse,则能够跳过这个步骤,高版本的linux内核已经支持了
mfs的客户端,通常是web等须要存储功能的应用服务器
###安装,能够yum安装,也能够编译安装,下面采用yum安装的方案
###查看是否存在fuse模块。没有的再安装完fuse后挂载这个模块
lsmod |grep fuse
modprobe fuse
lsmod |grep fuse
###编译若是不肯定默认编译是否存在--enable-mfsmount这个参数,能够加上这个参数,若是默认编译加了,就不须要加了
===============================================
[root@CLIENT mfs-1.6.27]# ll /application/mfs/bin/
total 704
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsappendchunks -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfscheckfile -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsdeleattr -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsdirinfo -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsfileinfo -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsfilerepair -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsgeteattr -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsgetgoal -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsgettrashtime -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsmakesnapshot -> mfstools
-rwxr-xr-x. 1 root root 510650 Sep 9 16:04 mfsmount
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsrgetgoal -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsrgettrashtime -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsrsetgoal -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsrsettrashtime -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfsseteattr -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfssetgoal -> mfstools
lrwxrwxrwx. 1 root root 8 Sep 9 16:04 mfssettrashtime -> mfstools
-rwxr-xr-x. 1 root root 137 Sep 9 16:04 mfssnapshot
-rwxr-xr-x. 1 root root 204078 Sep 9 16:04 mfstools
===============================================
最重要的命令时 mfsmount 这个参数
###建立数据目录挂载点
mkdir -p /mnt/mfs
chown -R mfs.mfs /mnt/mfs
##设置fuse开机自动挂载
echo "modprobe fuse" >>/etc/rc.local
echo "modprobe fuse" >>/etc/modprobe.d/fuse
cat /etc/modprobe.d/fuse
===============================================
#客户端挂载mfs
/application/mfs/bin/mfsmount /mnt/mfs -H mfsmaster.etiantian.org -O mfs password 111111
/application/mfs/bin/mfsmount /mnt/mfs -H mfsmaster.etiantian.org -p # 交互式输入密码
============================================================
测试
进入client刚刚挂载的/mnt/mfs 目录建立文件,添加内容
============================================================
[root@CLIENT bin]# cd /mnt/mfs/
[root@CLIENT mfs]# echo 12121221313241 >lvnian.txt
[root@CLIENT mfs]# for n in `seq 10 `;do cp /bin/cat $n ;done
============================================================
分别看maste端和backup的changelog.0.mfs 在添加内容先后的变化
cat /application/mfs/var/mfs/changelog.0.mfs
cat /application/mfs/var/mfs/changelog_ml.0.mfs
同时分别看三个data的下面内容在添加内容先后的变化
find /mfsdata/ -type f
####这样就完成部
往后用的时候就器多个客户端,都挂载好,须要写数据,读数据就往这里读和写就能够了