mfs分布式管理系统

来源:互联网 发布:ae mac破解版下载 编辑:程序博客网 时间:2024/05/22 08:02

mfs分布式文件管理存储(2014.6.7)上午

(相关文档Moosefs分布式存储)

MFS 特性:

1. Free(GPL)

2. 通用文件系统,不需要修改上层应用就可以使用

3. 可以在线扩容,体系架构可伸缩性极强。

4. 部署简单。

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

写的性能,只会加速!)

6.可回收在指定时间内删除的文件(“回收站”提供的是系统级别的服务,不怕误操作了,提供类

oralce的闪回等高级dbms的即时回滚特性!)

7. 提供netapp,emc,ibm等商业存储的snapshot特性。(可以对整个文件甚至在正在写入的文

件创建文件的快照)

8. google filesystem 的一个c实现。

9. 提供web gui监控接口。

  1. 提高随机读或写的效率。

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


MFS 文件系统结构:

包含 4种角色:

管理服务器managing server (master) 242

元数据日志服务器Metalogger server(Metalogger)

数据存储服务器data servers (chunkservers)

客户机挂载使用client computers 155

各种角色作用:

1.管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复.多节点拷贝。

2. 元数据日志服务器:负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在master server 出问题的时候接替其进行工作。

3.数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输。

4. 客户端:通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地unix文件系统使用一样的效果。

MFS部署:

主机环境:RHEL6.5selinux and iptables disabled

Master:192.168.0.242

Metalogger:192.168.0.

Chunkserver:192.168.0.213 192.168.0.194

Client:192.168.0.155


master机子242

yuminstall gcc make rpm-build fuse-devel zlib-devel

rpmbuild -tb mfs-1.6.27.tar.gz

主控服务器Master server安装:

cd rpmbuild/ RPMS/x86_64/

rpm -ivhmfs-cgi-1.6.27-2.x86_64.rpm

mfs-cgiserv-1.6.27-2.x86_64.rpm

mfs-master-1.6.27-2.x86_64.rpm

cd /etc/mfs/

cp mfsexports.cfg.distmfsexports.cfg

cp mfsmaster.cfg.distmfsmaster.cfg

cd /var/lib/mfs/

cp metadata.mfs.emptymetadata.mfs

chown -R nobody .

vim /etc/hosts

192.168.2.242 mfsmaster

mfsmaster 启动(开启三个端口)


此时进入/var/lib/mfs可以看到moosefs所产生的数据:

.mfsmaster.lock

文件记录正在运行的mfsmaster的主进程metadata.mfs, metadata.mfs.back MooseFS文件系统的元数据metadata的镜像

changelog.*.mfs MooseFS文件系统元数据的改变日志(每一个小时合并到metadata.mfs中一次)


Metadata文件的大小是取决于文件数的多少(而不是他们的大小)changelog日志的大小是取决于每小时操作的数目,但是这个时间长度(默认是按小时)是可配置的。


/*启动CGI监控服务*/

cd /usr/share/mfscgi/

chmod +x *.cgi

mfscgiserv (开启CGI监控服务)


在浏览器地址栏输入http://192.168.0.242:9425即可查看master的运行情况

存储块服务器两台Chunkservers213194

两台都执行一下命令

yum install -y openssh-clients

rpm -ivhmfs-chunkserver-1.6.27-2.x86_64.rpm

mkdir /mnt/chunk1

mkdir /var/lib/mfs

在启动chunk server,需确保用户mfs有权限读写将要被挂接的分区(因为chunk server运行时要在此创建一个.lock的文件)

chown nobody /mnt/chunk1/ /var/lib/mfs/

cd /etc/mfs/

cp mfschunkserver.cfg.distmfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

vim mfshdd.cfg 定义mfs共享点

/mnt/chunk1(实际上就是/的容量)

vim /etc/hosts

192.168.2.242 mfsmaster (master机子IP)

mfschunkserver (开启服务)


现在再通过浏览器访问http://192.168.0.66:9425/应该可以看见这个MooseFS系统的全部信息,包括主控master和存储服务chunkserver

客户机Users’ computers155

scp . 192.168.2.242/rpmbuild/RPM/x86_64/mfs-clients-1.6.27-2.x86_64.rpm

yum localinstallmfs-clients-1.6.27-2.x86_64.rpm -y

cd /etc/mfs

cp mfsmount.cfg.dist mfsmount.cfg

vim mfsmount.cfg 定义客户端默认挂载

/mnt/mfs

mkdir /mnt/mfs

vim /etc/hosts

192.168.2.242 mfsmaster


mfsmount (挂载)

df (自动挂载上,客户端端口9421)

MFS测试:

MFS挂载点下创建两个目录,并设置其文件存储份数:

# cd /mnt/mfs

# mkdir dir1 dir2

# mfssetgoal -r 2 dir2/ (设置dir2目录会被备份2)

设置在dir2中文件存储份数为两个,默认是一个dir2/:

对一个目录设定“goal”,此目录下的新创建文件和子目录均会继承此目录的设定,但不会改变已经存在的文件及目录的copy份数。但使用-r选项可以更改已经存在的copy份数。

拷贝同文件到两个目录

# cp /etc/passwd dir1

cd /mnt/mfs

cp /etc/passwd dir1/

cp /etc/fstab dir2/


mfsfileinfo dir1/passwd

mfsfileinfo dir2/fstab

关闭mfschunkserver1(213)后再查看文件信息

mfsfileinfo dir1/passwd

则看不到,显示chunk0: 0000000000000001_00000001 / (id:1 ver:1) no valid copies !!!

mfssetgoal –r设定目录里文件的副本数:

mfschunkfile 用来检查给定的文件以多少副本数来存储)

启动后又重新恢复


下午

停止MooseFS

为了安全停止MooseFS集群,建议执行如下的步骤:

在所有客户端用Unmount命令先卸载文件系统(本例将是:

umount /mnt/mfs)

停止chunkserver进程:mfschunkserver stop

停止metalogger进程: mfsmetalogger stop

停止主控masterserver进程:mfsmaster stop













0 0