分类: 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.10,192.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.8,192.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