mfs java_mfs分布式文件系统部署过程

mfs分布式文件系统

fd554efaec0623242c62ee3bd27a5382.png

前言:为什么要使用mfs

1.1nfs已经满足不了业务频繁的请求,之前是三台nginx公用一台nfs服务器,这样读写频繁直接导致了io瓶颈,但是已经是线上业务,不能通过更换设备来解决当前io问题,所以选择一套新的文件系统就提上了日程,构建高可用MFS分布式文件存储架构成了当务之急

06ac7d354fde7b8788a80b338d8ebc34.png

5c3a0786d18d1ad18683ec9ee3570d9b.png

角色角色作用

管理服务器

managingserver (master)

负责各个数据存储服务器的管理,文件读写调

度,文件空间回收以及恢复.多节点拷贝

元数据日志服务器

Metaloggerserver(Metalogger)

负责备份master服务器的变化日志文件,文

件类型为changelog_ml.*.mfs,以便于在

master server出问题的时候接替其进行工作

数据存储服务器

dataservers (chunkservers)

负责连接管理服务器,听从管理服务器调度,

提供存储空间,并为客户提供数据传输.

客户机挂载使用

client computers

通过fuse内核接口挂接远程管理服务器上所

管理的数据存储服务器,.看起来共享的文件

系统和本地unix文件系统使用一样的效果.

1.4mfs之所以优于nfs

1.4 MooseFS优点

i. Free(GPL)

ii.通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs好麻烦哦!)。

iii.可以在线扩容,体系架构可伸缩性极强。(官方的case可以扩到70台了!)

iv.部署简单。(sa们特别高兴,领导们特别happy!)

v.体系架构高可用,所有组件无单点故障。 (您还等什么?)

vi.文件对象高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别),而绝对不会影响读或者写

的性能,只会加速哦!)

vii.提供Windows回收站的功能.(不怕误操作了,提供类似oralce的闪回等高级dbms的即时回滚特性,

oralce这些特性可是收费的哦!)

viii.提供类似Java语言的GC(垃圾回收)。

ix.提供netapp,emc,ibm等商业存储的snapshot特性。

x. google filesystem的一个c实现。(google在前面开路哦!)

xi.提供web gui监控接口。

xii.提高随机读或写的效率

xiii.提高海量小文件的读写效率

2部署mfs分布式文件系统

2.1部署mfs-master管理服务器

2.1.1mfs-master安装

tar zxvf mfs-1.6.11.tar.gz(解压安装包)

cd mfs-1.6.11

useradd mfs -s /sbin/nologin(新建mfs用户,用于编译安装)

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs(编译安装)

make

make install

cd /usr/local/mfs/etc/(进入mfs配置文件目录)

cp mfsmaster.cfg.distmfsmaster.cfg(复制主配置文件)

cpmfsexports.cfg.dist mfsexports.cfg

vim mfsmaster.cfg

vim mfsexports.cfg

cd ..

cd var/

mfs/

cp metadata.mfs.emptymetadata.mfs

cat metadata.mfs

ln –s /usr/local/mfs/sbin/mfsmaster/etc/init.d/ mfsmaster

/usr/local/mfs/sbin/mfsmaster start

ps axu | grep mfsmaster

lsof -i

tail -f /var/log/messages

2.1.2启动Master服务

/usr/local/mfs/sbin/mfsmaster start

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfsmaster modules ...

loading sessions ... ok

sessions file has been loaded

exports file has been loaded

loading metadata ...

create new empty filesystemmetadata filehas been loaded

no charts data file - initializing emptycharts

master metaloggers module: listenon *:9419

master chunkservers module:listen on *:9420

main master server module: listen on *:9421

mfsmaster daemon initialized properly

2.1.3停止Master服务

/usr/local/mfs/sbin/mfsmaster -s

2.1.4启动和停止Web GUI

启动:/usr/local/mfs/sbin/mfscgiserv

停止:kill/usr/local/mfs/sbin/mfscgiserv

2.1.5访问Web GUI方式

mfs-master IP:9425

http://192.168.17.139:9425

059390ac0a80e0516714798e022f2d0d.png

d4da76aea850acd9409cd628bde70765.png

701ebd58196f30122b2c4f508181a10e.png

2.1.6相关配置文件

vim mfsexports.cfg

192.168.200.0/24 . rw(允许192.168.200.0访问所有)

192.168.17.0/24 / rw(允许192.168.17.0访问/目录)

63edeb0408cb49b7e93714f3c7e5f335.png

2.1.7添加/usr/local/mfs/sbin/mfsmaster软链接

ln -s /usr/local/mfs/sbin/mfsmaster/etc/init.d/mfsmaster

4d6918536d49e8b7f912965e3419c555.png

/etc/init.d/mfsmaster restart  (启动mfs-master)

94e2200a34a75dc90e9f00fb1a9aa5ff.png

/etc/init.d/mfsmaster stop    (关闭mfs-master)

e66a1992095626b0b162d0294a96e8bc.png

2.2部署mfs-chunk存储服务器

2.2.1从块设备创建本地文件系统

fdisk -l

mkfs.ext3 /dev/sdb

mkdir /data

chown mfs:mfs /data

mount -t ext3 /dev/sdb /data

df -ah

/dev/sdb 133G 188M 126G 1% /data

2.2.2创建1个10G的LoopDevice文件

/dev/sdb1挂载到/data1在data1目录下生成文件10G mfs.img

fdisk /dev/sdb (磁盘分区)

mkdir /mfs

mount /dev/sdb1  /mfs(挂载/dev/sdb1分区给/mfs)

cd  /mfs

dd if=/dev/zero of=mfs.img bs=1M count=10000(创建mfs.img镜像)

mkfs.ext3 mfs.img (格式化镜像mfs.img文件)

losetup /dev/loop2 mfs.img(把mfs.img镜像分配给/dev/loop2虚拟分区)

mkfs.ext3 /dev/loop2(格式化虚拟分区)

mkdir –p /opt/mfs (创建分区挂载目录)

chown mfs:mfs /opt/mfs(目录权限修改)

mount –o loop /dev/loop2 /opt/mfs(把虚拟分区分配给/opt/mfs)

2.2.3安装Chunk Server

wgethttp://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

tar zxvf mfs-1.6.11.tar.gz

cd mfs-1.6.11

useradd mfs -s /sbin/nologin

./configure --prefix=/usr/local/mfs--with-default-user=mfs --with-default-group=mfs

make

make install

cd /usr/local/mfs/etc/

cp mfschunkserver.cfg.distmfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

修改配置文件

cd /usr/local/mfs/etc/

2.2.4修改配置文件

vi mfsadd.cfg(添加分区挂载目录)

aa3040de2798d63c61d648a15f7db702.png

vi mfschunkserver.cfg (修改chunk主配置文件指向服务器IP和端口)

d3f2442d813796a8ee43d3d21eb1de89.png

2.2.5启动Chunk Server

启动方法一#/usr/local/mfs/sbin/mfschunkserverstart

#ln –s /usr/local/mfs/sbin/mfschunkserve/etc/init.d/mfschunkserver

启动方法二#/etc/init.d/mfschunkserverrestart

53c9fc47007abdbc69e99283971f3d35.png

ps axu |grep mfs

tail -f /var/log/messages

登录Web GUIhttp://192.168.17.138:9425发现disk+设备

f7bb347dd72d17838740fb60dec6c832.png

2.2.6停止Chunk Server

/usr/local/mfs/sbin/mfschunkserver stop

270ae57c5e2fa229571332146a275516.png

2.2.7添加/usr/local/mfs/sbin/mfschunkserver软链接

ln -s /usr/local/mfs/sbin/mfschunkserver/etc/init.d/mfschunkserver

/etc/init.d/mfschunkserverrestart

2.3部署Metaloggerserver元日志服务器

安装和配置元数据日志服务器(metalogger)

2.3.1安装元数据日志服务

mfsmetalogger.cfg的配置

该服务只有一个配置文件,那就是mfsmetalogger.cfg。

[root@nas etc]# ps -ef|grep mfs

mfs 12327 1 0 08:38 ? 00:00:00/usr/local/mfs/sbin/mfsmaster start

创建用户

useradd mfs–s /sbin/nolog in

安装

wgethttp://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

tar zxvf mfs-1.6.11.tar.gz

./configure–prefix=/usr/local/mfs–with-default-user=mfs–with-default-group=mfs

make ; make install

文中的大多数变量不难理解,类似于mfsmaster.cfg中的变量,其中:

这个文件中需要修改的是MASTER_HOST变量,这个变量的值是master server的IP地址。

2.3.2启动metalogger服务

这说明metalogger服务正常启动了。利用命令检查:

通过进程:

通过检查端口:

[root@mail etc]#vi mfsmetalogger.cfg(修改配置文件MASTER_HOST)

#WORKING_USER=mfs

#WORKING_GROUP= mfs

#SYSLOG_IDENT=mfsmetalogger

#LOCK_MEMORY= 0

#NICE_LEVEL= -19

#DATA_PATH= /usr/local/mfs/var/mfs

#BACK_LOGS= 50

#META_DOWNLOAD_FREQ= 24元数据备份文件下载请求频率。默认为24小时,即每隔一天从元数据服务器

(MASTER)下载一个metadata.mfs.back文件。当元数据服务器关闭或者出故障时,matedata.mfs.back文件将消失,那么

要恢复整个mfs,则需从metalogger服务器取得该文件。请特别注意这个文件,它与日志文件一起,才能够恢复整个被

损坏的分布式文件系统。

#MASTER_RECONNECTION_DELAY= 5

MASTER_HOST = 192.168.17.139

#MASTER_PORT= 9419

#MASTER_TIMEOUT= 60

# deprecated, to be removed in MooseFS 1.7

#LOCK_FILE= /var/run/mfs/mfsmetalogger.lock

[root@mail sbin]#./mfsmetalogger start(启动mstalogger元日志服务器)

working directory: /usr/local/mfs/var/mfs

lockfile created and locked

initializing mfsmetalogger modules ...

mfsmetalogger daemon initialized properly

[root@mail sbin]#ps -ef |grepmfs

mfs 12254 1 0 15:25 ? 00:00:00 ./mfschunkserver start

[root@mail sbin]#lsof -i:9419

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

mfsmetalo 12292 mfs 7u IPv4 1395372 TCPmail.tt.com:52456->192.168.3.34:9419 (ESTABLISHED)

查看日志服务器的工作目录

这是运行18小时后:

2.3.3停止metalogger服务

如果没有启动metalogger服务,在master server则会有如下提示信息产生:

[root@mail mfs]#pwd

/usr/local/mfs/var/mfs

[root@mail mfs]#ll

total 8

-rw-r----- 1 mfs mfs 249 Jan 13 15:39 changelog_ml.1.mfs

-rw-r----- 1 mfs mfs 519 Jan 13 15:40 sessions_ml.mfs

[root@mail mfs]#ll

total 1808

-rw-r----- 1 mfs mfs 0 Jan 14 08:40 changelog_ml.0.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 23:39 changelog_ml.10.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 22:39 changelog_ml.11.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 21:39 changelog_ml.12.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 20:39 changelog_ml.13.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 19:39 changelog_ml.14.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 18:39 changelog_ml.15.mfs

-rw-r----- 1 mfs mfs 4692 Jan 13 17:39 changelog_ml.16.mfs

-rw-r----- 1 mfs mfs 4722 Jan 13 16:39 changelog_ml.17.mfs

-rw-r----- 1 mfs mfs 249 Jan 13 15:39 changelog_ml.18.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 08:39 changelog_ml.1.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 07:39 changelog_ml.2.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 06:39 changelog_ml.3.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 05:39 changelog_ml.4.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 04:39 changelog_ml.5.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 03:39 changelog_ml.6.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 02:39 changelog_ml.7.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 01:39 changelog_ml.8.mfs

-rw-r----- 1 mfs mfs 4692 Jan 14 00:39 changelog_ml.9.mfs

-rw-r----- 1 mfs mfs 915016 Jan 14 09:00 csstats.mfs

-rw-r----- 1 mfs mfs 777640 Jan 14 08:10 metadata_ml.mfs.back

-rw-r----- 1 mfs mfs 519 Jan 14 09:16 sessions_ml.mfs

[root@mail sbin]#./mfsmetalogger –s(停止mstalogger元日志服务器)

working directory: /usr/local/mfs/var/mfs

sending SIGTERM to lock owner (pid:12284)

waiting for termination ... terminated

安装配置数据存储服务器(chunkserver)

安装数据存储服务

配置文件位于安装目录/usr/local/mfs/etc,需要的配置文件有两个:mfschunkserver.cfg和

mfshdd.cfg,mfschunkserver.cf是主配置文件,mfshdd.cfg是服务器用来分配给MFS使用的空间,最

好是一个单独的硬盘或者一个raid卷,最低要求是一个分区。

mfschunkserver.cfg的配置

文中的大多数变量不难理解,类似于mfsmaster.cfg中的变量

tail -f /var/log/messages

Dec 30 16:53:00 nas mfsmaster[14291]: no meta loggers connected !!!

2.4mfs- Client的安装

2.4.1安装fuse

yuminstall kernel.x86_64 kernel-devel.x86_64 kernel-headers.x86_64

###rebootserver####

yuminstall fuse.x86_64 fuse-devel.x86_64 fuse-libs.x86_64

modprobefuse

2.3.2安装MooseFS Client

wgethttp://ncu.dl.sourceforge.net/project/moosefs/moosefs/1.6.11/mfs-1.6.11.tar.gz

tarzxvf mfs-1.6.11.tar.gz

cdmfs-1.6.11

useraddmfs -s /sbin/nologin

./configure--prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs

--enable-mfsmount

make

makeinstall

2.4.2挂载文件系统

cd/mnt/

mkdirmfs

/usr/local/mfs/bin/mfsmount/mnt/mfs/ -H 192.168.17.138

mkdirmfsmeta

/usr/local/mfs/bin/mfsmount-m /mnt/mfsmeta/ -H 192.168.17.138

df-ah

875326ff14b140d3a5477ca35266fa9e.png

MFS特性(根据官方网站翻译) ★ 高可靠性(数据能被分成几个副本存储在不同的计算机里) ★ 通过增加计算机或增加新的硬盘动态扩充可用磁盘空间 ★ 可以设置删除文件的空间回收时间 [root@mysql-bk serydir]# mfsgettrashtime bind-9.4.0.tar.gz bind-9.4.0.tar.gz: 600 文件被删除10 分钟后(600 秒),才真正删除文件,回收磁盘空间。 ★ 为文件创建快照 MFS文件系统的组成 1、 元数据服务器。在整个体系中负责管理管理文件系统,目前MFS 只支持一个元数据服 务器master,这是一个单点故障,需要一个性能稳定的服务器来充当。希望今后MFS 能支持多个master 服务器,进一步提高系统的可靠性。 2、 元数据日志服务器。备份master 服务器的变化日志文件,文件类型为changelog_ml.*.mfs。 当元数据服务器数据丢失或者损毁,可从日志服务器取得文件进行恢复。 3、 数据存储服务器chunkserver。真正存储用户数据的服务器。存储文件时,首先把文件分 成块,然后这些块在数据服务器chunkserver 之间复制(复制份数可以手工指定,建议 设置副本数为3)。数据服务器可以是多个,并且数量越多,可使用的“磁盘空间”越大, 可靠性也越高。 4、 客户端。使用MFS 文件系统来存储和访问的主机称为MFS 的客户端,成功挂接MFS 文件系统以后,就可以像以前使用NFS 一样共享这个虚拟性的存储了。 元数据服务器安装和配置 元数据服务器可以是linux,也可以是unix,你可以根据自己的使用习惯选择操作系统,在我的 环境里,我是用freebsd 做为MFS 元数据的运行平台。GNU 源码,在各种类unix 平台的安装 都基本一致。 有两个pdf文档 mfs文件系统使用手册.pdf moosefs分布文件系统.pdf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值