moosefs php,moosefs实战(含测试数据)

基于moosefs的系统架构,开源界已经有了很多成熟的案例。我们的mfs系统已经运行了一段时间,在这里给出架构图以及相关测试数据。对于moosefs不要奢求其读写速度有多快,更应该看中其设计原理带给我们安全上的便利。有很多同学喜欢提及mfs的master不具备热备功能,我想说的是,任何一个应用软件其设计自身都有一定的狭义性,就如同squid与varnish,apache与nginx一样,我们要做的是如何扩展以及如何组合它们,用以达到我们系统运维的目的。

一.概述

硬件环境:2台hp 380g6(48G内存,460G sas15K硬盘6块),11台dell r710(8G内存,sata 7.2K 1T磁盘共40t),5台dellr610(6g内存,sas15k硬盘共15块)

软件环境:centos 5.4 64bit,varnish2.0.6,nginx0.8.34,moosefs 1.6.0

总体架构图:

832a594d64dc903dcd62f5362aa8d9b1.png

简要说明:

lvs将请求转发到varnish群集上面,由varnish轮询位于moosefs client上面的nginx群集,如果出现404,500等出错页面则下面的nginx自动启用,其实就是备份机的功能。client通过fuse与master通信以获取位于chunk server上面的数据。

二.安装

1.安装varnish

下载2.0.6版本

groupadd www -g 48 && useradd -u 48 -g www www

mkdir /varnishcache

chmod +w /varnishcache/

chown -R www:www /varnishcache/

mkdir /var/varnishlog

chmod +w /var/varnishlog/

chown  -R www:www /var/varnishlog/

tar zxvf varnish-2.0.6.tar.gz

cd varnish-2.0.6

./configure --prefix=/usr/local/varnish

make;make install

修改配置文件,这里给出我的样版(多谢kevin兄指点):

2b886770d829f66748104367c057eab3.gif

2.在client上面安装nginx

useradd www

mkdir /var/nginxlog

chmod +w /var/nginxlog

chown -R www:www /var/nginxlog

tar zxvf pcre-8.01.tar.gz

cd pcre-8.01/

./configure

make && make install

cd ../

tar zxvf nginx-0.8.34.tar.gz

cd nginx-0.8.34/

./configure --prefix=/usr/local/nginx --user=www --group=www  --with-http_stub_status_module --with-http_ssl_module --with-http_p_w_picpath_filter_module

make;make install

cd ../

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

echo  > /usr/local/nginx/conf/nginx.conf

修改配置文件,可以暂时不把虚拟主机的root指向到mfs的挂载点

c279715a31ebb2e2971f2c4cbecee409.gif

几点说明:

涂黑部分是我们自己写的module,在没有决定开源之前,请大家见谅。

关于nginx配置文件的解释,这里就不多说了

3.安装moosefs

moosefs安装过程大同小异,注意fuse不要安装目前的最新版,因为我遇到无法加载fuse模块的错误,不建议yum安装fuse模块。这里引用两篇篇安装mfs的教程,地址为:http://bbs1.chinaunix.net/viewthread.php?tid=1644309

大家可以去详细了解情况

安装:

3.1 安装mfs master

wget http://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 mfsmaster.cfg.dist mfsmaster.cfg

cp mfsexports.cfg.dist mfsexports.cfg

vim mfsmaster.cfg

vim mfsexports.cfg

cd ..

cd var/

mfs/

cp metadata.mfs.empty metadata.mfs

cat metadata.mfs

/usr/local/mfs/sbin/mfsmaster start

ps axu | grep mfsmaster

lsof -i

tail -f /var/log/messages

3.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 file has been loaded

no charts data file - initializing empty charts

master metaloggers module: listen on *:9419

master chunkservers module: listen on *:9420

main master server module: listen on *:9421

mfsmaster daemon initialized properly

3.3. 停止master服务

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

3.4  启动和停止web gui

启动: /usr/local/mfs/sbin/mfscgiserv

停止: kill /usr/local/mfs/sbin/mfscgiserv

3.5  相关配置文件

vim  mfsexports.cfg

192.168.28.0/24  . rw

192.168.28.0/24  /       rw

3.6 安装chunkserver

wget http://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.dist mfschunkserver.cfg

cp mfshdd.cfg.dist mfshdd.cfg

3.8 启动chunkvserver

/usr/local/mfs/sbin/mfschunkserver start

ps axu |grep mfs

tail -f /var/log/messages

3.9 停止chunksever

/usr/local/mfs/sbin/mfschunkserver stop

3.10 安装fuse

Mfsmount需要依赖FUSE,因此需要先安装好fuse,这里我选用 fuse-2.7.4.tar.gz。

1、解包 tar zxvf fuse-2.7.4.tar.gz

2、切换目录 cd fuse-2.7.4.

3、配置 ./configure

4、编译安装 make;make install

1、修改环境变量文件/etc/profile ,追加下面的行,然后再执行命令source /etc/profile使修改生效。

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

3.11 安装mfsclient

wget http://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 --enable-mfsmount

make

make install

3.12 挂载文件系统

cd /mnt/

mkdir mfs

/usr/local/mfs/bin/mfsmount /mnt/mfs/ -H 192.168.28.242

mkdir mfsmeta

/usr/local/mfs/bin/mfsmount -m /mnt/mfsmeta/ -H 192.168.28.242

mount 查看是否挂载成功

3.13 管理命令

设置副本 的份数,推荐3份(我们实际使用了2份)

/usr/local/mfs/bin/mfssetgoal -r 3 /mnt/mfs

查看某文件

/usr/local/mfs/bin/mfsgetgoal  /mnt/mfs

查看目录信息

/usr/local/mfs/bin/mfsdirinfo -H /mnt/mfs

GUI查看mfs状态

在master上面启动mfscgisrv,如果出现错误则查看端口是否被占用以及升级python版本尝试解决

四.我们的测试数据

1.我们的使用数据

940d8b92b50ec4cb0f1c8f7f47b6f606.gif

57c19056f80e2782d068fb668aaa4bb7.gif

2.测试数据对比

2.1 单client读性能

a5c75e99e5c568acb60648394ca2b0b7.png

2.2 单client写性能与本机对比

15c3e240b18bc24cc03b0776dbdf1315.png

2.3 单client写性能与本机对比2

16f7ee829642401add23889da0bda58f.png

2.4 两台client读性能

4ddedc818737646d5cec2356a7849ebf.png

2.5 两台client写性能

93c8c5430d64776ace44fefadb1ee180.png

2.6 四台client写性能

08782cb27fbe8649797b042ad352f5c1.png

3.小结

我们可以看到mfs的读写性能与本机对比有很大差距,随着client数目的增加,读写性能都呈现很快的下降趋势。我们现在是5台client同时工作,读写性能并不高,满足搜索业务的需求尚可。

另外,我这不还有一些测试数据就不一一粘上来了,有需要查看的联系我好了

hdparm,sar,iostat,iozone结果截图

79fc1a753a1f4c723151680e01f68b06.gif

6c3cd04b29e4920ab7f0f171c63f9d20.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值