热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

moosefs实战(含测试数据)

基于moosefs的系统架构,开源界已经有了很多成熟的案例。我们的mfs系统已经运行了一段时间,在这里给出架构图以及相关测试数据。对于moosefs不要奢求其读写速度有多快,更应该看中其设
基于moosefs的系统架构,开源界已经有了很多成熟的案例。我们的mfs系统已经运行了一段时间,在这里给出架构图以及相关测试数据。对于moosefs不要奢求其读写速度有多快,更应该看中其设计原理带给我们安全上的便利。有很多同学喜欢提及mfs的master不具备热备功能,我想说的是,任何一个应用软件其设计自身都有一定的狭义性,就如同squid与varnish,apache与nginx一样,我们要做的是如何扩展以及如何组合它们,用以达到我们系统运维的目的。
一.概述
硬件环境:2hp 380g648G内存,460G sas15K硬盘6块),11dell r7108G内存,sata 7.2K 1T磁盘共40t),5dellr6106g内存,sas15k硬盘共15块)软件环境:centos 5.4 64bit,varnish2.0.6,nginx0.8.34,moosefs 1.6.0总体架构图:简要说明: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兄指点):2.在client上面安装nginxuseradd www
mkdir /var/nginxlog
chmod +w /var/nginxlog
chown -R www:www /var/nginxlog
wget http://blog.s135.com/soft/linux/nginx_php/pcre/pcre-8.01.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/nginx/nginx-0.8.34.tar.gz
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_image_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的挂载点
几点说明:涂黑部分是我们自己写的module,在没有决定开源之前,请大家见谅。关于nginx配置文件的解释,这里就不多说了 3.安装moosefsmoosefs安装过程大同小异,注意fuse不要安装目前的最新版,因为我遇到无法加载fuse模块的错误,不建议yum安装fuse模块。这里引用两篇篇安装mfs的教程,地址为:http://bbs1.chinaunix.net/viewthread.php?tid=1644309http://sery.blog.51cto.com/10037/263515/ 田逸大家可以去详细了解情况 安装: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.gz2、切换目录 cd fuse-2.7.4.3、配置 ./configure4、编译安装 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版本尝试解决在浏览器中输入http://masterip:9452 查看汇总状况
 四.我们的测试数据1.我们的使用数据 2.测试数据对比2.1 单client读性能2.2 单client写性能与本机对比2.3 单client写性能与本机对比22.4 两台client读性能2.5 两台client写性能2.6 四台client写性能3.小结我们可以看到mfs的读写性能与本机对比有很大差距,随着client数目的增加,读写性能都呈现很快的下降趋势。我们现在是5台client同时工作,读写性能并不高,满足搜索业务的需求尚可。另外,我这不还有一些测试数据就不一一粘上来了,有需要查看的联系我好了hdparm,sar,iostat,iozone结果截图 

本文出自 “山岳不知” 博客,请务必保留此出处http://alice.blog.51cto.com/707092/324390


推荐阅读
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文详细介绍了如何在 Windows Server 2008 R2 64位操作系统上配置 BugFree 3.0.3 的服务器环境,包括所需软件的安装与配置步骤。 ... [详细]
  • 本文详细介绍了在XAMPP环境中如何修改Apache和MySQL的默认端口号,并确保WordPress能够正常访问。同时,提供了针对Go语言社区和Golang开发者的相关建议。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • Google排名优化-面向Google(Search Engine Friendly)的URL设计 ... [详细]
  • 深入解析:OpenShift Origin环境下的Kubernetes Spark Operator
    本文探讨了如何在OpenShift Origin平台上利用Kubernetes Spark Operator来管理和部署Apache Spark集群与应用。作为Radanalytics.io项目的一部分,这一开源工具为大数据处理提供了强大的支持。 ... [详细]
  • EasyMock实战指南
    本文介绍了如何使用EasyMock进行单元测试,特别是当测试对象的合作者依赖于外部资源或尚未实现时。通过具体的示例,展示了EasyMock在模拟对象行为方面的强大功能。 ... [详细]
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
author-avatar
Simon_Diego
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有