Chinaunix首页 | 论坛 | 博客
  • 博客访问: 617082
  • 博文数量: 73
  • 博客积分: 1813
  • 博客等级: 上尉
  • 技术积分: 1213
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-27 19:59
文章分类
文章存档

2013年(1)

2012年(12)

2011年(28)

2010年(31)

2009年(1)

我的朋友

分类: LINUX

2010-12-06 14:22:40

分布式文件系统MFS(moosefs)

 

MFS可使用的平台

MooseFS 能够被应用在实现了 FUSE 的任何操作系统:

·         Linux (Linux 2.6.14 及更高,支持 FUSE 的内核 )

·         FreeBSD

·         OpenSolaris

·         MacOS

 

.客户端配置(mfsmount)

 

内核版本2.6.18-128.el5

 

1.IP=192.168.3.10192.168.2.150

安装dkms dkms-fuse  rhel5版的,目的是要让内核支持fuse(客户端mfsmount要用fuse.ko模块支持)

rpm -ivh dkms-2.0.20.2-2.el5.rf.noarch.rpm dkms-fuse-2.7.0-1.el5.rf.noarch.rpm

查看是否生成模块fuse.ko

# modprobe -l | grep fuse

/lib/modules/2.6.18-128.el5/extra/fuse.ko

 

2.安装fuse-2.8.1

 

tar zxvf fuse-2.8.1.tar.gz

cd fuse-2.8.1

./configure --prefix=/usr/ --libdir=/usr/lib

make && make install

 

3.加载fuse.ko模块

modprobe fuse

 

4.安装mfs客户端工具

useradd mfs -s /sbin/nologin

tar zxvf  mfs-1.6.17.tar.gz

cd mfs-1.6.17

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

最后一个选项--enable-mfsmount为产生客户端工具,在/usr/local/mfs/bin/下,服务端不加这个选项,不产生mfsmount等工具

make && make install

 

5.添加环境变量

 

vim /etc/profile

MFS_HOME=/usr/local/mfs/

PATH=$PATH:/usr/local/mfs/bin/

export MFS_HOME PATH

 

.服务器安装-元数据服务器:192.168.3.9

 

1.安装

tar zxvf mfs-1.6.17.tar.gz

cd mfs-1.6.17

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

这里是服务器端,不用生成mfsmount工具,所以不用加--enable-mfsmount选项

make && make install

 

安装完成后,生成四个目录

[root@localhost mfs]# ll

total 16

drwxr-xr-x 2 root root 4096 Dec  6 10:52 etc

drwxr-xr-x 2 root root 4096 Dec  3 16:20 sbin

drwxr-xr-x 4 root root 4096 Dec  3 16:20 share

drwxr-xr-x 3 root root 4096 Dec  3 16:20 var

 

2.配置

配置文件在 mfs/etc/

[root@localhost etc]# ll

total 28

-rw-r--r-- 1 root root  527 Dec  3 16:20 mfschunkserver.cfg.dist

-rw-r--r-- 1 root root 1121 Dec  3 16:20 mfsexports.cfg.dist

-rw-r--r-- 1 root root   57 Dec  3 16:20 mfshdd.cfg.dist

-rw-r--r-- 1 root root  673 Dec  3 16:20 mfsmaster.cfg.dist

-rw-r--r-- 1 root root  387 Dec  3 16:20 mfsmetalogger.cfg.dist

 

对于元数据服务器,有两个配置文件,mfsmaster.cfg mfsexports.cfg,把以要先对原文件重命名

cp mfsmaster.cfg.dist mfsmaster.cfg

cp mfsexports.cfg.dist mfsexports.cfg

在两个文件改了名就能用,所有选项都是默认的

 

mfsmaster.cfg为主配置文件

[root@localhost etc]# cat mfsmaster.cfg

# WORKING_USER = mfs

# WORKING_GROUP = mfs

# SYSLOG_IDENT = mfsmaster

# LOCK_MEMORY = 0

# NICE_LEVEL = -19

# EXPORTS_FILENAME = /usr/local/mfs/etc/mfsexports.cfg  mfsexport文件存放路径

# DATA_PATH = /usr/local/mfs/var/mfs  数据存放路径

# BACK_LOGS = 50

# REPLICATIONS_DELAY_INIT = 300

# REPLICATIONS_DELAY_DISCONNECT = 3600

# MATOML_LISTEN_HOST = *

# MATOML_LISTEN_PORT = 9419

# MATOCS_LISTEN_HOST = *

# MATOCS_LISTEN_PORT = 9420  元数据服务器使用9420这个监听端口来接受数据存储服务器chunkserver端的连接

# MATOCU_LISTEN_HOST = *

# MATOCU_LISTEN_PORT = 9421  元数据服务器在9421端口监听,用以接受客户端对MFS进行mfsmount远程挂载

# CHUNKS_LOOP_TIME = 300

# CHUNKS_DEL_LIMIT = 100

# CHUNKS_WRITE_REP_LIMIT = 1

# CHUNKS_READ_REP_LIMIT = 5

# REJECT_OLD_CLIENTS = 0

# deprecated, to be removed in MooseFS 1.7

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

 

元数据的控制文件 mfs/etc/mfsexports.cfg

此文件主要是控制哪些客户端可以挂,以哪种方式挂载,比如:rw,ro

 

3.启动与关闭

 

/usr/local/mfs/sbin/mfsmaster start

这是启动元数据服务器

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

关闭元数据服务器

 

4.查看日志

tail -f /var/log/messages

 

.数据存储服务器的安装配置192.168.3.8192.168.0.24

 

1.安装和元数据服务器一样

tar zxvf mfs-1.6.17.tar.gz

cd mfs-1.6.17

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

这里是服务器端,不用生成mfsmount工具,所以不用加--enable-mfsmount选项

make && make install

 

2.配置

两个配置文件 mfschunkserver.cfg mfshdd.cfg

 

主配置文件mfschunkserver.cfg

要改动的地方其实只有一个

MASTER_HOST = 192.168.3.9  指向元数据服务器的IP,要把注释符去掉

 

存储路径配置文件 mfshdd.cfg

首先要新建一个目录,如果有磁盘,把磁盘挂载到这个目录上,改变目录的属性

mkdir /mfs

mount /dev/sdb2 /mfs

chown -R mfs.mfs /mfs

vim /usr/local/mfs/etc/mfshdd.cfg

/mfs

 

只留这一条就行了,把其他的全清空

 

3.启动mfschunkserver

/usr/local/mfs/sbin/mfschunkserver start

启动时在元数据服务器上查看日志,发现连接成功

 

查看数据目录/mfs,发现新建了256个目录

 

.客户端挂载与工具使用

 

1.客户端上已经生成了mfsmount工具和用以支持mfsmount工具的的模块fuse.ko

 

mkdir /mnt/mfs

mfsmount /mnt/mfs/ -H 192.168.3.9

mfsmaster accepted connection with parameters: read-write,restricted_ip ; root mapped to root:root

成功挂载到/mnt/mfs

 

/mnt/mfs中存放一个文件,让多个客户端挂载元数据服务器,发现在每个客户端上都能发现存放的文件

 

2.查看与修改MFS文件删除延迟时间

# mfsgettrashtime /mnt/mfs/

/mnt/mfs/: 86400  默认为86400秒,一天时间

 

# mfsrsettrashtime 1000 /mnt/mfs/  改为1000

deprecated tool - use "mfssettrashtime -r"

/mnt/mfs/:

 inodes with trashtime changed:                        2

 inodes with trashtime not changed:                    0

 inodes with permission denied:                        0

 

3.查看与设置文件保存份数

# mfsgetgoal /mnt/mfs/

/mnt/mfs/: 3

 

# mfsrsetgoal 2 /mnt/mfs/  设置的时候最多只能为数据存储服务器的个数

deprecated tool - use "mfssetgoal -r"

/mnt/mfs/:

 inodes with goal changed:                         2

 inodes with goal not changed:                     0

 inodes with permission denied:                    0

 

4.文件信息查看

 

将一个文件放入/mnt/mfs

# cp mfs-1.6.17.tar.gz  /mnt/mfs/

# mfsfileinfo /mnt/mfs/fuse-2.8.1.tar.gz

/mnt/mfs/fuse-2.8.1.tar.gz:

        chunk 0: 0000000000000001_00000001 / (id:1 ver:1)

                copy 1: 192.168.0.24:9422

                copy 2: 192.168.3.8:9422

 

# mfscheckfile /mnt/mfs/fuse-2.8.1.tar.gz

/mnt/mfs/fuse-2.8.1.tar.gz:

2 copies: 1 chunks

 

5.查看目录信息

 

# mfsdirinfo /mnt/mfs/dir/

/mnt/mfs/dir/:

 inodes:                          4

  directories:                    1

  files:                          3

 chunks:                          3

 length:                     625918

 size:                       736256

 realsize:                  1472512

阅读(3248) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~