mfs分布式文件系统

前言:为什么要使用mfs

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

角色角色作用

管理服务器

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

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访问/目录)

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

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

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

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

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(添加分区挂载目录)

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

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

ps axu |grep mfs

tail -f /var/log/messages

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

2.2.6停止Chunk Server

/usr/local/mfs/sbin/mfschunkserver stop

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

mfs java_mfs分布式文件系统部署过程相关推荐

  1. 超详细MFS网络分布式文件系统

    -----------------------MFS---------------------- (1)分布式原理 分布式文件系统( Distributed File System)是指文件系统管理的 ...

  2. MFS分布式文件系统及监控

    MFS分布式文件系统 文件系统:ext4.xfs.ext3 mooseFS(moose 驼鹿)是一款网络分布式文件系统.它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源.MFS也像其他类U ...

  3. DFS分布式文件系统--管理篇

    DFS分布式文件系统--管理篇 参考文档: 浅谈DFS分布式文件系统 DFS 命名空间 和 DFS 复制概述 续DFS分布式文件系统--基础篇 DFS分布式文件系统--部署篇 添加命名空间服务器 (添 ...

  4. MFS分布式文件系统的部署

    目录 一.MFS分布式文件系统详述 分布式简介 MFS分布式文件系统的原理 MFS文件系统的组成 MFS文件系统的工作过程 二.MFS分布式文件系统的部署 实验环境 配置Master Server 配 ...

  5. SHELL脚本自动化部署MFS分布式文件系统

    前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...

  6. 网络分布式文件系统-MFS搭建以及部署详解

    实验环境: 主机名 功能 server1 master server server2 chunk servers server3 chunk servers foundation8.ilt.examp ...

  7. MFS分布式文件系统(一) ——MFS简介+部署+使用

    分布式文件系统简介 分布式文件系统是指文件系统管理的物理存储资源,不一定在本地节点上,而是通过网络与节点相连. 就是把一些分散的(分布在局域网内各个计算机上)共享文件夹,集合到一个文件夹内(虚拟共享文 ...

  8. 分布式文件系统MFS(moosefs)实现存储共享(一)

    分布式文件系统MFS(moosefs)实现存储共享 作者:田逸([email]sery@163.com[/email]) from: [url]http://net.it168.com/a2009/0 ...

  9. MFS分布式文件系统的搭建

    MFS分布式文件系统的搭建 一:介绍MFS ​ MFS(MooseFS)是一个具有容错性的网络分布式文件系统.它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源. MFS也像其他类的 ...

  10. mfs 分布式文件系统

    mfs权威指南(moosefs)分布式文件系统一站式解决方案(部署,性能测试)不断更新 http://bbs.chinaunix.net/thread-1644309-1-1.html 1. 我在性能 ...

最新文章

  1. lvs和keepalives
  2. 终极结束进程方法API
  3. ZOJ.3551.Bloodsucker(期望DP)
  4. 数字货币交易所_数字货币交易所开发运营的盈利模式
  5. 惊艳!28岁就任副教授,年纪轻轻已是博导、院长
  6. onenote组织知识体系_如何提升组织的安全专业知识
  7. mysql事务、视图
  8. Redis面试必看40题
  9. 必修的十堂电影课(男人篇)
  10. PDF技术(一)-Java实现Office系列文件转PDF文件
  11. 集线器(HUB)、交换机(Switch)、路由器(Router)
  12. 云原生kubernetes六:namespace和Resourcequota
  13. 基于单片机的教室照明智能控制系统设计
  14. 百子作业 —— 中国邮递员问题
  15. 关于虎牙登录算法分析
  16. Ego的JavaSE笔记
  17. 程序员吃的是青春饭么?
  18. 乐固、360加固在android 11 及以上和鸿蒙系统上报错,无法安装
  19. 计算机毕设Python+Vue医疗门诊管理系统(程序+LW+部署)
  20. 帝国、PHPCMS及织梦三款CMS比较

热门文章

  1. 如何在H3C路由器使用ACL来管理网络安全
  2. markdown语法中的空格_MarkDown语法
  3. php——三篇夯实根基第三篇
  4. wps加入全国计算机二级,WPS进入全国计算机二级考试,明年3月开考
  5. 电台、手台用语黑话集锦
  6. linux网络本地发送lo性能,LINUX网络性能之管理工具三剑客
  7. 通俗易懂的哈希算法讲解
  8. 数据库-mysql MHA集群方案测试
  9. C++实现控制台迷宫小游戏
  10. android脚本精灵开发,触动精灵脚本开发示例代码