MooseFS的简介、部署及应用

MooseFS正式的推出是在2008-05-30,到2009-10-12为止,最新的版本是1.5.12。

mooseFS是一款网络分布式文件系统。它把数据分散在多台服务器上,但对于用户来讲,看到的只是一个源。MFS也像其他类unix文件系统一样,包含了层级结构(目录树),存储着文件属性(权限,最后访问和修改时间),可以创建特殊的文件(块设备,字符设备,管道,套接字),符号链接,硬链接。

mooseFS系统的组成

1.master(元数据服务器

master负责在整个系统中管理数据。是整个系统的维护者。但是它有个弱点就是master只有一个!也就是说如果master坏掉,整个系统将停止工作!不过这算不上致命弱点,因为我们做好数据备份以后,恢复master是很简单的事。

2.chunkserver(数据存储服务器)

chunkserver是mfs系统中的数据存储者。真正的用户数据按照算法被分成chunk,并分发到各个chunkserver上。这样就保证了数据的安全性。

3.client

凡是使用mfs文件系统的机器都可以被称为client。client是mfs系统的使用者。当client把mfs文件系统挂载到本机以后,它可以像使用一个普通的磁盘分区一样,来使用mfs。

试验环境

本文只介绍moosefs的部署与应用,出于试验的目的,并没有考虑性能因素,因此所有的服务器均使用虚拟机来实现。以后有机会做单独的物理服务器,然后对其性能进行测试。

MooseFS的简介、部署及应用

拓扑图

MooseFS的简介、部署及应用

备注:

(1) chunkserver1-4 均添加了一块虚拟的磁盘sda(磁盘空间一定要大于1G,我这里设置了4G),挂载到系统的/data下。所有服务器均升级内核为2.6.18-164本版,为什么要升级内核,下文会有介绍。

(2) 所有服务器均安装了完整版的mfs组件

安装与配置

安装mfs的前提条件

由于mfs的客户端程序也就是加载mfs磁盘系统的命令是使用fuse编写的,因此只要是想挂载mfs的服务器,必要的前提条件就是先安装fuse,这样编译mfs的时候才能顺利通过。另外一点需要注意:linux 2.6.18-164.e15 版本的linux内核中已经内置了fuse模块。但在该版本之前的linux内核中是不包含这个模块的。另fuse 从2.8.0-pre1 版本的源码包中去掉了fuse系统模块的源码部分,原因就是上一点提到的。这样我们在编译安装当前最新版本的fuse(2.8以上版本) 且正在使用的linux内核版本低于2.6.18-164.e15版本,则系统中是不包含fuse模块的。

解决的方法:

1、升级系统内核为2.6.18-164版本

为了方便起见直接利用yum升级系统内核即可。yum install kernel

安装成功后需重启系统

2、使用fuse 2.7x版本编译安装

该版本的fuse中包含了linux内核需要的fuse模块,配置编译选项时指定 –enable-kernel-module 选项,make的时候就会编译相应的fuse模块,make intall会将fuse.ko复制到 /lib/modules/`uname -r`/kernel/fs/fuse/ 目录下 安装后利用

# modprobe -l | grep fuse

/lib/modules/2.6.18-128.el5xen/kernel/fs/fuse/fuse.ko

查看是否正常安装

3、利用yum安装当前内核版本的fuse模块

yum install -y dkms-fuse dkms

安装fuse

如果只编译元数据服务端或数据存储服务端的话是没有必要安装fuse的。只有mfsmount需要fuse支持(编译时需要fuse的开发包,使用mfsmount挂载时需要fuse.ko系统模块)。可以使用源码或yum两种方式安装fuse

1、源码安装

# wget

# tar -xvzf fuse-2.8.1.tar.gz

# cd fuse-2.8.1

# ./configure –prefix=/usr/ –libdir=/usr/lib64

# make && make install

由于我系统为64位,因此在编译fuse时将lib目录定为/usr/lib64。这样在下面编译安装mfs时就不会因为找不到fuse的lib文件报错了。

2、yum安装

# yum install -y fuse fuse-devel

安装mfs

# useradd mfs -s /sbin/nologin

# ./configure –prefix=/usr/local/mfs –with-default-user=mfswith-default-group=mfs –enable-mfsmount

# make && make install

查看安装后目录结构

# ll /usr/local/mfs/

total 20

drwxr-xr-x 2 root root 4096 Oct 14 15:14 bin

drwxr-xr-x 2 root root 4096 Oct 14 12:13 etc

drwxr-xr-x 2 root root 4096 Oct 14 15:14 sbin

drwxr-xr-x 3 root root 4096 Oct 14 12:13 share

drwxr-xr-x 3 root root 4096 Oct 14 12:13 var

bin – 客户端工具

etc – 元数据服务器,数据存储服务器的配置文件都放在该目录中

sbin – 元数据服务器端程序mfsmaster、数据存储服务器端服务程序mfschunkserver

share – 文档

var – 元数据目录(可在配置文件中自定义到其他目录)

配置master(元数据服务器)

IP:192.168.108.108

[root@master~]#vi/usr/local/mfs/etc/mfsmaster.cfg

#WORKING_USER=mfs

#WORKING_GROUP=mfs

#LOCK_FILE=/var/run/mfs/mfsmaster.pid

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

#SYSLOG_IDENT=mfsmaster

#BACK_LOGS=50

#REPLICATIONS_DELAY_INIT=300

#REPLICATIONS_DELAY_DISCONNECT=3600

MATOCS_LISTEN_HOST=192.168.108.108

#MATOCS_LISTEN_PORT=9420

#MATOCU_LISTEN_HOST=*

#MATOCU_LISTEN_PORT=9421

#CHUNKS_LOOP_TIME=300

#CHUNKS_DEL_LIMIT=100

#CHUNKS_REP_LIMIT=15

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/93eb010aba42b105cb19e6c332253e8a.html