mfs权威指南(moosefs)分布式文件系统一站式解决方案(部署,性能测试)#!/bin/tony0.欢迎加入qq群(1)26147116,qq群(2)已满员102082446,分布式文件系统专业群(不求人多,只求专业)通关密码:ilovecuer!1.我在性能测试中间遇到些问题,因为我时间有限,所以希望大家一起来测试解决,群策群力。有什么问题请大家及时指出来,因为我也处在一个不断摸索的阶段。2.mfs不多做介绍,具体细节请参考本版mfs实践文章,或者baidu,google关键字田逸。3.希望大家能提供更好的存储/文件系统的测试模型,来一起完善本文档。(热烈欢迎大家奉献测试脚本,测试用例等)。4.希望大家提供生产环境的实际案例,配置环境,脚本,监控机制等等。5.希望熟悉代码的朋友去看看mfs内部实现的机制。6.特别感谢田逸的文档。7.特别感谢qq群战友:tt,灵犀,流云风,hzqbbc在qq群内对广大爱好者分享宝贵经验。8.特别感谢存储专家-《大话存储》的作者:冬瓜头,在我进行性能测试的时候,对我进行的指导。9.特别感谢qq群战友:高性能架构,CUID:leo_ss_pku,制作更专业更精美的pdf版本:MooseFS权威指南.pdf(3.32MB),大家也可以他的blog上浏览在线版本:优势:-1.Free(GPL)0.通用文件系统,不需要修改上层应用就可以使用(那些需要专门api的dfs好麻烦哦!)。1.可以在线扩容,体系架构可伸缩性极强。(官方的case可以扩到70台了!)2.部署简单。(sa们特别高兴,领导们特别happy!)3.体系架构高可用,所有组件无单点故障。(您还等什么?)4.文件对象高可用,可设置任意的文件冗余程度(提供比raid1+0更高的冗余级别),而绝对不会影响读或者写的性能,只会加速哦!)5.提供Windows回收站的功能.(不怕误操作了,提供类似oralce的闪回等高级dbms的即时回滚特性,oralce这些特性可是收费的哦!)6.提供类似Java语言的GC(垃圾回收).7.提供netapp,emc,ibm等商业存储的snapshot特性。8.googlefilesystem的一个c实现。(google在前面开路哦!)9.提供webgui监控接口。10.提高随机读或写的效率(有待进一步证明)。11.提高海量小文件的读写效率(有待进一步证明)。可能的瓶颈:0.master本身的性能瓶颈。(不太恰当的比方:类似mysql主从复制,从的可以扩展,主的不容易扩展)。(qq群战友:hzqbbc)短期对策:按业务切分1.体系架构存储文件总数的可遇见的上限。(mfs把文件系统的结构缓存到master的内存中,个人认为文件越多,master的内存消耗越大,8g对应2500kw的文件数,2亿文件就得64GB内存)。(qq群战友:hzqbbc)短期对策:按业务切分2.单点故障解决方案的健壮性。(qq群战友:tt,hzqbbc)架构图——————————————————index1.mfsmaster2.mfschunkserver3.mfsclient4.系统管理5.性能测试6.参考文献6.1测试数据测试模型1测试模型27.感谢8.附录9.实际操作案例10.生产环境案例11.webgui监控12.官方关于1.6.x版本的介绍(中文翻译:QQ群战友Cuatre)13.mfs官方英文FAQ(TC版)(提供者:QQ群战友灵犀)14.mfsmaster热备方案15.mfsnagios监控程序(提供者:QQ群战友流云风)————————————————环境:master1台chunkserver3台client1台os:centos5.3x641mfsmaster1.1安装mfsmasterwget=/usr/local/mfs--with-default-user=mfs--with-default-group=mfsmakemakeinstallcd/usr/local/mfs/etc/cpmfsmaster.cfg.distmfsmaster.cfgcpmfsexports.cfg.distmfsexports.cfgvimmfsmaster.cfgvimmfsexports.cfgcd..cdvar/mfs/cpmetadata.mfs.emptymetadata.mfscatmetadata.mfs/usr/local/mfs/sbin/mfsmasterstartpsaxu|grepmfsmasterlsof-itail-f/var/log/messages1.2启动master服务/usr/local/mfs/sbin/mfsmasterstartworkingdirectory:/usr/local/mfs/var/mfslockfilecreatedandlockedinitializingmfsmastermodules...loadingsessions...oksessionsfilehasbeenloadedexportsfilehasbeenloadedloadingmetadata...createnewemptyfilesystemmetadatafilehasbeenloadednochartsdatafile-initializingemptychartsmaster-metaloggersmodule:listenon*:9419master-chunkserversmodule:listenon*:9420mainmasterservermodule:listenon*:9421mfsmasterdaemoninitializedproperly1.3.停止master服务/usr/local/mfs/sbin/mfsmaster-s1.4启动和停止webgui启动:/usr/local/mfs/sbin/mfscgiserv停止:kill/usr/local/mfs/sbin/mfscgiserv1.5相关配置文件vimmfsexports.cfg192.168.28.0/24.rw192.168.28.0/24/rw2.mfschunkserver2.1从块设备创建本地文件系统fdisk-lmkfs.ext3/dev/sdbmkdir/datachownmfs:mfs/datamount-text3/dev/sdb/datadf-ah/dev/sdb133G188M126G1%/data2.2创建50G的loopdevice文件df-ahddif=/dev/zeroof=/opt/mfs.imgbs=1Mcount=50000losetup/dev/loop0mfs.imgmkfs.ext3/dev/loop0mkdir/datachownmfs:mfs/datamount-oloop/dev/loop0/datadf-ah2.3安装chunkserverwget=/usr/local/mfs--with-default-user=mfs--with-default-group=mfsmakemakeinstallcd/usr/local/mfs/etc/cpmfschunkserver.cfg.distmfschunkserver.cfgcpmfshdd.cfg.distmfshdd.cfg2.4启动chunkvserver/usr/local/mfs/sbin/mfschunkserverstartpsaxu|grepmfstail-f/var/log/messages2.5停止chunksever/usr/local/mfs/sbin/mfschunkserverstop3.mfsclient3.1安装fuseyuminstallkernel.x86_64kernel-devel.x86_64kernel-headers.x86_64###rebootserver####yuminstallfuse.x86_64fuse-devel.x86_64fuse-libs.x86_64modprobefuse3.2安装mfsclientwget=/usr/local/mfs--with-default-user=mfs--with-default-group=mfs--enable-mfsmountmakemakeinstall3.3挂载文件系统cd/mnt/mkdirmfs/usr/local/mfs/bin/mfsmount/mnt/mfs/-H192.168.28.242mkdirmfsmeta/usr/local/mfs/bin/mfsmount-m/mnt/mfsmeta/-H192.168.28.242df-ah4.系统管理4.1管理命令设置副本的份数,推荐3份/usr/local/mfs/bin/mfssetgoal-r3/mnt/mfs查看某文件/usr/local/mfs/bin/mfsgetgoal/mnt/mfs查看目录信息/usr/local/mfs/bin/mfsdirinfo-H/mnt/mfs5.性能测试5.1mfs1.大文件(block=1Mbyte)ddif=/dev/zeroof=1.imgbs=1Mcount=50005242880000bytes(5.2GB)copied,48.8481seconds,107MB/s2.小文件(50byte*100w个*1client)(1000*1000)写入real83m41.343suser4m17.993ssys16m58.939s列表timefind./-typef|nl|tail999999./0/11000000./0/0real0m39.418suser0m0.721ssys0m0.225s删除timerm-fr*real6m35.273suser0m0.394ssys0m23.546s3.小文件(1Kbyte*100w个*100client){1000*1000)写入(100client)time../../p_touch_file.shreal22m51.159suser4m42.850ssys18m41.437s列表(1client)timefind./|nl|tailreal0m35.910suser0m0.628ssys0m0.204s删除(1client)timerm-fr*real6m36.530suser0m0.697ssys0m21.682s4.小文件(1kbyte*100w个